自社広告プラットフォームをゼロから実装した話 — 7フェーズ全完了の記録

はじめに

\n\n

「広告プラットフォームを自前で作る」

\n\n

これは、AI駆動開発で位置情報ゲームアプリ「wagahi」を作り続けている当社にとって、これまでで最も大きな実装チャレンジでした。

\n\n

Google AdSenseの審査を待つ間に、自社で広告の配信・管理・収益化の仕組みを構築する。しかも、フェーズ0の設計調査から数えて124タスク、7つのフェーズを経て全完了させるという規模の作業です。

\n\n

本記事では、Claude Codeとの協働で自社広告プラットフォームをゼロから実装した全記録をお伝えします。

\n\n

なぜ自前で広告プラットフォームを作ったのか

\n\n

AdSense審査の壁

\n\n

wagahiは、ユーザーがスマートフォンのカメラで身の回りの物を撮影し、AIがキャラクターに擬人化する位置情報連動アプリです。収益化の柱としてGoogle AdSenseを申請していましたが、審査の結果は「有用性の低いコンテンツ」という理由で不承認が続いていました。

\n\n

自社広告という選択肢

\n\n

審査結果を待ち続けるだけではビジネスが前に進みません。そこで、AdSenseが通るまでの間、自社で広告の仕組みを構築し、将来的にはAdSenseと併用できる設計にしようと考えました。

\n\n

7フェーズ・124タスクの全体像

\n\n

フェーズ構成

\n\n

\n\n

\n\n

\n\n

\n\n

\n\n

\n\n

\n\n

\n\n

\n\n

\n\n

\n\n

\n\n

フェーズ 内容 タスク数
Phase 0 設計調査・要件定義 18
Phase 1 DB設計・マイグレーション 14
Phase 2 バックエンドAPI実装 22
Phase 3 管理画面UI実装 20
Phase 4 ユーザー側フロントエンド実装 18
Phase 5 結合試験・バグ修正 16
Phase 6 本番デプロイ・運用確認 16
合計 124

\n\n

実装した主な機能

\n\n広告配置管理API\n\n

管理者が広告の配置ポイント(画面上のどこに表示するか)を柔軟に設定できるAPIを実装しました。wagahiには複数の画面があり、画面ごとに最適な広告位置が異なります。これをDBで管理することで、コード変更なしに配置を調整できる設計としました。

\n\n広告の個別ON/OFF\n\n

広告ごとに有効・無効を切り替えられる機能です。特定の広告に問題が発生した場合、即座に非表示にできます。

\n\nバナー広告の共有スロット問題の解消\n\n

複数のバナー広告が同じ表示枠(スロット)を奪い合う問題が発生していました。これを、広告スロットの状態確認APIを新設することで解決しました。全14タスクを費やした修正ですが、広告表示の安定性が大幅に向上しました。

\n\n

トークン経済システムとの連携

\n\n

wagahiでは、キャラクターの生成や会話にトークン(ゲーム内通貨)を消費する仕組みを採用しています。広告プラットフォームの実装では、このトークン経済システムとの連携が重要なポイントでした。

\n\n

バナークリック報酬

\n\n

ユーザーがバナー広告をクリックした際に、トークンを報酬として付与する仕組みです。広告をクリックする動機を自然に提供しつつ、ゲーム体験を損なわない報酬額を設定する必要がありました。全32タスクをかけて実装・テストを行いました。

\n\n

擬人化トークン要求

\n\n

キャラクター生成時に消費するトークン量の設計です。広告視聴との連動も考慮し、18タスクで実装しました。

\n\n

MailHogからMailpitへの移行

\n\n

広告プラットフォームの実装と並行して、開発環境のメール送信テストツールをMailHogからMailpitに移行しました。MailHogは長らくメンテナンスされておらず、最新の環境との互換性に問題が出始めていたためです。

\n\n

この移行は広告プラットフォームとは直接関係ありませんが、開発環境の健全性を維持するために必要な作業でした。AI駆動開発では、こうした「今やらなければ後で苦しむ」タイプの技術的負債にも、適切なタイミングで対処していくことが重要です。

\n\n

AI駆動開発で124タスクをどう進めたか

\n\n

Claude Codeとの協働スタイル

\n\n

124タスクの実装は、すべてClaude Code(Anthropic社のAIコーディングツール)との協働で進めました。当社のAI駆動開発では、以下のような分担が定着しています。

\n\n

\n\n

\n\n

\n\n

\n\n

\n\n

\n\n

\n\n

\n\n

役割 人間(設計者) Claude Code(実装者)
設計書の作成 補助
実装コードの生成 レビュー
テストの実行 確認
デプロイ 判断

\n\n

設計書先行の原則

\n\n

当社では「プログラム設計書に書かれていないことは実装しない」という原則を守っています。124タスクの実装に先立ち、まずデータベース設計書、バックエンド詳細設計書、フロントエンド詳細設計書を改定し、それに基づいて実装を進めました。

\n\n

おわりに

\n\n

自社広告プラットフォームの実装は、wagahiの開発において大きなマイルストーンとなりました。7フェーズ・124タスクという規模でしたが、AI駆動開発の手法により、設計から本番デプロイまでを効率的に完遂することができました。

\n\n

次のステップは、AdSense審査への再挑戦と、自社広告プラットフォームとの併用環境の構築です。引き続き、開発の進捗をお伝えしていきます。

投稿者プロフィール

Mark4
Mark4