バージョン 3.1 | 2026年4月6日 | ドラフト
| バージョン | 日付 | 変更内容 |
|---|---|---|
| 1.0 | 2026-04-01 | 初版作成 |
| 2.0 | 2026-04-04 | アーキテクチャ詳細(§7)追加、サービス一覧・費用感(§9)追加、画面一覧をモックアップ反映(§8)、4/1-4/3のIA変更(台本一覧ページ追加等)を反映。4/4モックアップ改修反映: 競合設定を1UI統合、台本生成本数プルダウン化・動画尺フリー入力・追加生成機能、レポート承認フロー(入稿待ち→保存済み→公開済み)、レポート入稿アーキテクチャ追加、運営管理画面をPOC向け3メニューに簡素化、ノウハウ管理追加、テスト期間中プラン・支払い非表示、生成上限テナント単位管理 |
| 2.1 | 2026-04-05 | 技術スタック確定(Python FastAPI + Next.js)、フェーズ別アーキテクチャ(Phase 1手動入稿/Phase 2 Bedrock自動化)、SES→SendGrid変更、不整合修正11件 |
| 3.0 | 2026-04-06 | エンジニアレビュー反映。Cognito→Auth0、Lambda廃止、BE言語Go想定(TBD)、DB直入れ方式、管理画面WYSIWYG化、テナント分離をアプリケーションレベルのみに、データ保持・監査ログを将来検討に、プロンプトキャッシュ削除、Phase 2(AI自動化)を将来検討として分離 |
| 3.1 | 2026-04-06 | インフラ構成確定。セキュリティ観点でDBをprivate subnetに置く方針→フロント含め全てAWS(ECS Fargate + CloudFront)に統一。Vercel不要に。RLSは不採用(アプリケーションレベルのtenant_idフィルタで十分) |
アドコンパスは、動画広告の競合分析・自社分析・台本生成をワンストップで提供するSaaS型Webサービスである。広告代理店およびブランド企業を対象とし、AI(Claude)を活用して動画広告の分析レポートと台本を生成する。
MVPには以下を含む。
※ Stripe決済は将来フェーズで実装。Phase 1ではテスト期間として手動請求。
本サービスは「運営側(自社)」と「利用企業側(クライアント)」の2軸で構成される。
| ロール | 権限 | 用途 |
|---|---|---|
| スーパー管理者 | 全機能・全クライアントのデータにアクセス可能。プラン設定・クレジット付与・アカウント作成/停止 | 経営層・事業責任者 |
| 運営オペレーター | 全クライアントの利用状況・分析結果の閲覧。手動でのクレジット調整・レポート再実行 | 運用チーム |
| ロール | 権限 | 用途 |
|---|---|---|
| 企業管理者 | 自社の全データにアクセス可能。ユーザー招待/削除、広告アカウント接続管理、プラン・支払い管理 | クライアント企業の責任者 |
| 一般ユーザー | 分析実行・台本生成・レポート閲覧のみ。管理系機能にはアクセス不可 | クライアント企業の担当者 |
運営管理画面(全クライアント横断)
└── クライアント企業A(テナント)
│ ├── 企業管理者ユーザー × N
│ ├── 一般ユーザー × N
│ ├── 広告アカウント接続 × N
│ ├── クレジット残量
│ └── 分析結果・台本データ
└── クライアント企業B(テナント)
├── ...
MVPで以下の全てに対応する。
SSOはクライアントBのような上場企業の導入時にセキュリティ要件として必須となる想定。
tenant_idフィルタを適用)将来検討。 以下の方針は負債になりやすいため、Phase 1では厳密な保持ポリシーを定めず、運用しながら決定する。
本システムは2フェーズで構築する。Phase 1で完全なプロダクト(認証・閲覧・管理の一通り)を実装し、AI分析はローカルのClaude Codeで手動実行→DB直入れで運用する。Phase 2でAI分析の自動化を検討する。
セキュリティ上、DBはprivate subnetに配置しパブリックアクセスを禁止する。この方針によりフロントエンド(Next.js)もバックエンド(Go API)もAWS上のECS Fargateに統一し、VPC内でDBと通信する構成とする。
┌─────────────────────────────────────────────────────────┐
│ ローカル(運営チーム) │
│ Claude Code → AI分析実行 → DB直入れ(VPN or 踏み台経由) │
└────────────────┬────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ CloudFront (CDN) │
└────────────────┬────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ AWS VPC │
│ │
│ Public Subnet │
│ ┌────────────────────────────────────────────────────┐ │
│ │ ECS Fargate │ │
│ │ ├── Next.js(フロント + 管理画面 WYSIWYG) │ │
│ │ └── Go API(CRUD / SendGrid通知) │ │
│ └──────────────────────┬─────────────────────────────┘ │
│ │ Security Group │
│ Private Subnet ▼ │
│ ┌────────────────────────────────────────────────────┐ │
│ │ RDS PostgreSQL │ │
│ │ (外部からアクセス不可) │ │
│ └────────────────────────────────────────────────────┘ │
│ │
│ S3(画像・動画ストレージ) │
└─────────────────────────────────────────────────────────┘
│ │
▼ ▼
┌──────────────┐ ┌──────────────────┐
│ Auth0 │ │ SendGrid │
│ 認証基盤 │ │ メール通知 │
└──────────────┘ └──────────────────┘
Phase 1のポイント:
Phase 1の運用結果を踏まえて設計する。以下は検討候補。
検討候補:
Phase 2で決定すべきこと:
| レイヤー | 技術 | 備考 |
|---|---|---|
| フロントエンド | Next.js (React / TypeScript) | ECS Fargate + CloudFrontで配信 |
| バックエンド | Go(想定・TBD) | ECS Fargate。パイプライン(Python)とは分離。Phase 1実装開始時に最終決定 |
| AIパイプライン | Python | Phase 1: ローカルClaude Codeで手動実行。Phase 2: 自動化方式を将来検討 |
| データベース | RDS PostgreSQL | private subnetに配置。マルチテナント(tenant_idによるアプリケーションレベル分離) |
| ファイルストレージ | S3 | 動画、フレーム画像、レポート |
| 認証 | Auth0 | SSO (SAML 2.0 / OIDC) + OAuth対応。エンタープライズ対応 |
| メール通知 | SendGrid | レポート公開通知、エラー通知 |
| CDN | CloudFront | フロントエンド配信 + S3オリジン |
| コンテナ | ECS Fargate | Next.js + Go APIをホスティング |
| 決済 | Stripe | サブスクリプション + 従量課金(将来フェーズ) |
| 画像生成 | GCP Imagen | コンテ画像 |
| スクレイピング | Apify | 競合広告収集(Meta広告ライブラリ、TikTok) |
Phase 1の運用データを元に、以下を検討する。
| 工程 | モデル候補 | 備考 |
|---|---|---|
| データ取得・前処理 | コードのみ(AI不使用) | Meta API、Apify等のAPI呼び出し |
| フレーム分析 | Sonnet | 画像理解+分析判断 |
| 考察・台本生成 | Opus | 最高品質のクリエイティブ出力 |
| コンテ画像生成 | GCP Imagen | 背景画像生成 + Pillowで日本語テロップ合成 |
※ プロンプトキャッシュは問題が起きやすいため不採用。
| # | 画面名 | ファイル名 | 概要 | 備考 |
|---|---|---|---|---|
| C-01 | ログイン | index.html | メール/パスワード、Google OAuth、SSO | |
| C-02 | ダッシュボード | dashboard.html | 最新の分析結果サマリー、通知、クレジット残量、次回定期分析タイミング | |
| C-03 | レポート一覧 | reports.html | 過去のレポート一覧・検索 | |
| C-04 | レポート作成 | report-create.html | 分析対象の選択、期間指定、競合指示(フリーテキスト)、台本生成条件を統合 | 旧「競合設定」画面を統合 |
| C-05 | レポート詳細 | report-detail.html | タブ構成: 概要(訴求別配信割合)→自社分析→競合分析→台本。台本の追加生成もここから | 旧「台本一覧」画面を統合 |
| C-06 | 台本生成 | (report-create.html内) | 参照データ選択、方向性入力、本数プルダウン(1〜10本)、動画尺フリー入力 | |
| C-07 | 広告アカウント設定 | ad-accounts.html | Meta広告アカウントの接続・管理 | |
| C-08 | ユーザー管理 | users.html | ユーザーの招待・削除・ロール変更(企業管理者のみ) | |
| C-09 | 設定 | settings.html | 通知設定(メール・Slack・ダッシュボード)、Slack Webhook設定 | |
| レポート詳細の「台本」タブに統合 | ||||
| テスト期間中は非表示 |
| # | 画面名 | ファイル名 | 概要 |
|---|---|---|---|
| A-01 | レポート管理(トップ) | admin/index.html | 入稿待ち/保存済み/公開済みの3タブ。レポート承認フローのハブ |
| A-02 | テナント一覧 | admin/tenants.html | 検索・フィルタ付きのテナント一覧 |
| A-03 | テナント詳細 | admin/tenant-detail.html | ユーザー、広告アカウント、プラン、クレジット残量、生成上限設定(数値入力)、利用履歴 |
| A-11 | レポート詳細・編集 | admin/report-review.html | WYSIWYGエディタ+お客様プレビュー。「保存」「公開」ボタン |
| A-12 | ノウハウ管理 | admin/knowledge.html | Markdownエディタ風ナレッジベース。記事一覧+編集画面 |
| # | 画面名 | ファイル名 | 概要 | ステータス |
|---|---|---|---|---|
| — | 廃止(レポート管理に置換) | |||
| A-04 | プラン・価格設定 | admin/plans.html | テナントごとの月額・特別価格・初期費用の設定 | POC後 |
| テナント詳細に統合 | ||||
| A-06 | ジョブ管理 | admin/jobs.html | 分析・台本生成ジョブの一覧、ステータス、エラーログ | POC後(Coming Soon) |
| A-07 | 定期実行設定 | admin/schedules.html | 競合分析の実行スケジュール管理 | POC後 |
| A-08 | 原価レポート | admin/costs.html | テナント別・月次の原価内訳、APIトークン消費推移 | POC後 |
| A-09 | 請求管理 | admin/billing.html | Stripe連携の請求一覧、未払い検知 | POC後 |
| A-10 | 監査ログ | admin/audit.html | ログイン履歴、重要操作の記録 | POC後(Coming Soon) |
| # | サービス | 用途 | 月額費用(100アカウント時) | 登録時に必要な情報 | 優先度 |
|---|---|---|---|---|---|
| 1 | AWS | インフラ全般(ECS Fargate, RDS, S3, CloudFront) | ¥10,000〜30,000 | 法人メール、クレカ、電話番号 | Phase 1 |
| 2 | Auth0 | 認証基盤(SSO/OIDC対応) | 無料〜$23/月(Free〜Essentials) | メール、クレカ | Phase 1 |
| 3 | Apify | 競合広告スクレイピング(Meta広告ライブラリ、TikTok) | ¥7,000〜22,000($49〜149) | メール、クレカ | Phase 1 |
| 4 | GCP | Imagen画像生成(コンテ画像) | ¥3,000〜7,000 | Googleアカウント、クレカ、請求先住所 | Phase 1 |
| 5 | Stripe | クライアント向け決済基盤 | 3.6%+¥40/決済(固定費なし) | 法人情報(登記、代表者、口座)、本人確認書類 | 将来フェーズ |
| # | サービス | 用途 | 費用 | 備考 |
|---|---|---|---|---|
| 6 | Meta for Developers | 広告API(OAuth認証、データ取得) | 無料 | 法人ビジネスマネージャーに紐付け直し推奨 |
| 7 | SendGrid | メール通知(レポート公開通知等) | 無料〜$20/月(Free〜Essentials) | メール、ドメイン認証 |
| 8 | Slack App | Webhook通知 | 無料 | Incoming Webhookのみ |
| AWSサービス | 用途 | 月額費用(100アカウント時) |
|---|---|---|
| ECS Fargate | Next.js + Go APIホスティング | ¥3,000〜10,000 |
| RDS PostgreSQL | メインDB(private subnet) | ¥2,000〜15,000(db.t4g.micro〜medium) |
| S3 | フロント静的ファイル + 画像・動画ストレージ | ¥500〜3,000 |
| CloudFront | CDN(フロントエンド配信 + S3オリジン) | ¥500〜2,000 |
| VPC / Security Group | ネットワーク分離 | ほぼ無料 |
| カテゴリ | 月額 |
|---|---|
| AWSインフラ(ECS + RDS + S3 + CloudFront) | ¥10,000〜30,000 |
| Auth0 | ¥0〜3,500 |
| Apify | ¥7,000〜22,000 |
| GCP(Imagen) | ¥3,000〜7,000 |
| SendGrid | ¥0〜3,000 |
| 合計 | ¥20,000〜65,500 |
| 1アカウントあたり原価 | ¥200〜655 |
※ Phase 1ではAI分析はローカルClaude Code(MAXプラン $200/月)で実行。上記に含まず。
※ Phase 2のAI自動化コスト(E2B / ECS等)は将来検討。
※ 定価33,000円/月に対して原価率 0.6〜2.0%(AI分析コスト除く)。目標の10%以下を達成。
| リスク | 影響 | 対策 |
|---|---|---|
| Claude API料金の値上げ | 原価率の悪化 | クレジット制でユーザーへの転嫁が可能な設計。モデルルーティング等の最適化余地を残す |
| 競合サービスの出現 | シェア喪失 | 先行者優位の確立。広告運用プロのノウハウが組み込まれた品質で差別化 |
| 大量アカウント導入時のインフラ負荷 | サービス品質低下 | SQSによるジョブキューイング、スケールアウト設計 |
| Meta広告APIの仕様変更 | データ取得不能 | API変更の監視、柔軟なデータ取得層の設計 |
目的: 認証〜閲覧〜管理の一通りが動く完全なプロダクトを構築し、実顧客でPMF検証する。
実装範囲:
実装しない範囲:
運用フロー:
初期クライアント: ロットネスト社(3〜5アカウント)でのトライアル
目的: AI分析を自動化し、運営の手動オペレーションを排除する。
Phase 1の運用結果を踏まえて設計する。パイプラインの動きもPhase 1の結果次第で変わる可能性がある。
検討候補:
| 用語 | 定義 |
|---|---|
| テナント | 本サービスを契約する1つの企業単位 |
| アカウント | テナント内で接続されたMeta広告アカウント |
| ユーザー | テナント内でサービスにログインする個人 |
| クレジット | デフォルト枠を超えて分析・生成を行うための追加利用権 |
| ジョブ | 1回の分析実行または台本生成のバッチ処理単位 |
| フレーム分析 | 動画を画像に分解し、各フレームのクリエイティブ内容を分析すること |
| 訴求タイプ | 動画の主な訴求軸の分類(価格訴求、機能訴求、感情訴求等) |
| # | 項目 | 決定内容 |
|---|---|---|
| 1 | インフラ方針 | AWS統一(DBをprivate subnetに配置するセキュリティ要件のため) |
| 2 | フロントエンド | Next.js on ECS Fargate + CloudFront |
| 3 | バックエンド | Go(想定)on ECS Fargate(同一VPC内でDBと通信) |
| 4 | DB | RDS PostgreSQL(private subnet、パブリックアクセス禁止) |
| 5 | ファイルストレージ | S3 |
| 6 | CDN | CloudFront |
| 7 | 認証基盤 | Auth0(Cognitoは開発コスト・キャッチアップコストが高いため不採用) |
| 8 | メール通知 | SendGrid |
| 9 | Phase 1の範囲 | 認証〜閲覧〜管理の一通りが動く完全なプロダクト。AI分析はローカルClaude Codeで手動→DB直入れ |
| 10 | Phase 2の位置づけ | 将来検討。Phase 1の運用結果を踏まえて設計 |
| 11 | テナント分離 | アプリケーションレベルのみ(tenant_idフィルタ)。RLSは不採用 |
| 12 | Lambda | 不採用(state管理が困難) |
| 13 | プロンプトキャッシュ | 不採用(問題が起きやすい) |
| 14 | 管理画面エディタ | WYSIWYGエディタ |
| 15 | データ投入方式 | ローカルClaude Code → DB直入れ(VPNまたは踏み台経由) |
| # | 項目 | 選択肢 | 決定期限 |
|---|---|---|---|
| 1 | バックエンド言語 | Go(想定) / Next.js API Routes / Python (FastAPI) | Phase 1実装開始時 |
| 2 | Phase 1開発タイムライン | 2週間〜2ヶ月 | エンジニアレビュー後 |
| 3 | DB設計 | マルチテナントのテーブル設計(共有スキーマ+tenant_id) | Phase 1実装開始時 |
| 4 | Phase 2 AI実行基盤 | E2B / ECS+Docker / Claude Code sub-agent | Phase 1運用後 |