title: テストと開発
概要
AdCP サーバーは時間シミュレーションとドライラン機能を備えており、実際の時間経過を待ったり実予算を消化したりすることなく広告ワークフローを包括的に検証できます。開発向けテストエージェント
AdCP では開発とテストのために 無償の公開テストエージェント を提供しています。 Agent URL:https://test-agent.adcontextprotocol.org
無償テスト用の認証情報:
MCP プロトコル用:
- 認証付きオペレーションの試験
- 連携パターンの練習
- リクエスト/レスポンス構造の検証
- クライアント実装の開発・デバッグ
プロトコル適合性テスト
Addie を使ったテスト
AdCP エージェントをテストする最も簡単な方法は、Slack で Addie に依頼することです。“Hey Addie, test my sales agent at https://sales.example.com”Addie は次のような包括的な E2E テストを実行できます。 標準シナリオ:
- health_check - エージェントが応答するか確認
- discovery -
get_adcp_capabilities、get_products、list_creative_formatsをテスト - create_media_buy - ディスカバリー + テストキャンペーン作成
- full_sales_flow - 作成 → 更新 → 配信のライフサイクル全体
- creative_sync -
sync_creativesフローをテスト - creative_inline -
create_media_buyでのインラインクリエイティブをテスト - pricing_models - チャネル横断で価格オプションを分析
- error_handling - 判別共用体のエラーレスポンスが適切か確認
- validation - 無効な入力(マイナス予算、無効な enum など)を拒否するかテスト
- pricing_edge_cases - オークションと固定価格、min_spend 要件、bid_price の扱いを検証
- temporal_validation - 日付/時刻の順序や ISO 8601 形式のバリデーションをテスト
- behavior_analysis - 認証要件、brand_manifest 必須要件、ブリーフの関連性フィルタ、チャネルフィルタなどエージェントの特性を分析
セールスエージェント適合チェックリスト
セールスエージェントの実装が必須機能を満たしているか、このチェックリストで確認してください。 コアディスカバリー(必須)-
get_adcp_capabilities- エージェントの能力やポートフォリオ、サポート機能を返す -
get_products- pricing_options、format_ids、delivery_type 付きで商品を返す -
list_creative_formats- サポートするフォーマットとクリエイティブエージェントを返す
-
create_media_buy- product_id、pricing_option_id、budget 付きパッケージを受け付ける -
update_media_buy- 予算、ペーシング、ターゲティングの PATCH セマンティクスに対応 -
get_media_buy_delivery- インプレッション、支出、ステータスを返す
-
sync_creatives- アイテム単位のアクション追跡付きでクリエイティブを upsert -
list_creatives- フィルタ付きでクリエイティブラリを検索 -
create_media_buyでのインラインクリエイティブ対応 - クリエイティブ参照(
creative_ids)対応
- CPM - インプレッション 1,000 件あたりのコスト
- vCPM - ビューアブル CPM(MRC 標準)
- CPCV - 完視聴あたりのコスト
- CPC - クリックあたりのコスト
- CPP - rating point あたりのコスト(TV/ラジオ)
- 定額 - 固定費のスポンサーシップ
- オークション価格 - pricing option に fixed_price がない場合 bid_price をサポート
- 静的クリエイティブ(画像・動画アセット)
- 参照クリエイティブ(既存ライブラリへの creative_ids)
- ジェネレーティブクリエイティブ(マニフェストベース)
- パラメータ化クリエイティブ(置換付き)
- 判別共用体レスポンス(success XOR errors)
- スキーマ準拠レスポンス(JSON スキーマで検証)
- 非同期オペレーションは submitted/working/completed のステータスを返す
- バッチオペレーション(例: sync_creatives)でアイテムごとのエラーを返す
-
X-Dry-Runヘッダー対応 - 並列テスト分離のための
X-Test-Session-ID - 時間シミュレーション用の
X-Mock-Time
- 予算のマイナス値を拒否
- 無効な pacing enum を拒否
- end_time が start_time より前の場合に拒否
- 無効な ISO 8601 日付形式を拒否
- 存在しない product_id に対して適切なエラーを返す
- オークション価格のとき bid_price を必須にする
- min_spend_per_package 未満の予算を拒否
- クリエイティブ weight > 100 を拒否
- 判別共用体のエラーレスポンスを返す(success と errors を同時に返さない)
テストモード
ドライランモード
実プラットフォームに影響を与えたり費用を発生させたりせずにすべての操作を実行します。- 実際のプラットフォーム API 呼び出しは行われない
- 実費は発生しない
- レスポンスにテストモードが有効であることが示される
- すべての操作はシミュレートされた現実的な結果を返す
時間シミュレーションモード
シミュレートされた時間を制御して、キャンペーンイベントを即座に進行させます。X-Mock-Time: 現在のシミュレーション時刻を設定X-Auto-Advance: 次のイベントへ自動で進めるX-Jump-To-Event: 特定のキャンペーンイベントへジャンプ
リクエストヘッダー
テスト制御ヘッダー
レスポンスヘッダー
サーバーはテストモードのレスポンスに次のヘッダーを含めます。イベント進行
ジャンプ可能なイベント
X-Jump-To-Event を使用して、特定のキャンペーンライフサイクルイベントへジャンプします。
ライフサイクルイベント:
campaign_created- 初期セットアップ完了campaign_approved- クリエイティブ提出が可能creative_approved- 配信開始の準備完了campaign_launched- ライブ配信開始campaign_50_percent- スケジュールの中間地点campaign_completed- 自然終了
creative_policy_violation- クリエイティブの拒否を強制budget_exceeded- 予算超過をシミュレートinventory_unavailable- 在庫不足をシミュレートmanual_approval_delay- HITL 承認の遅延を追加
時間の進行
期間で時間を進める:テスト例
例: クリエイティブ拒否のテスト
例: 時間進行のテスト
テストパターン
パターン 1: ハッピーパスのテスト
エラーを強制せず、成功ケースのキャンペーンフローを検証します。パターン 2: エラー復旧テスト
エラーイベントへジャンプしてエラーハンドリングを確認します。パターン 3: 時間ベースのテスト
長期キャンペーンを短時間で検証します。パターン 4: 並列テスト
分離されたセッションで複数のキャンペーンをテストします。実装要件
コア要件
すべての AdCP 実装がサポートすべき事項:-
ドライランモード
X-Dry-Runヘッダーの認識- 本番システムへの副作用なし
- レスポンスでテストモードを明示
-
テストセッション分離
- 並列テスト分離のための
X-Test-Session-ID - セッションごとに独立した状態
- セッション間の干渉なし
- 並列テスト分離のための
-
基本的な時間制御
- シミュレーション時刻設定の
X-Mock-Time - イベント進行のための
X-Jump-To-Event - 時間ジャンプ間で一貫した状態
- シミュレーション時刻設定の
推奨機能
実装が備えることを推奨する機能:-
自動進行
- 自動進行用の
X-Auto-Advance - 期間ベースのジャンプ用
X-Advance-Time
- 自動進行用の
-
エラーイベント
X-Jump-To-Eventによるエラー状態へのジャンプ- 一般的なエラーイベント(ポリシー違反、予算問題など)
- 復旧テスト
任意機能
実装がサポートしてもよい機能:-
高度なテスト
- カスタムイベント定義
- 複雑なエラー注入
- パフォーマンスシミュレーション
-
詳細メトリクス
- 現実的なパフォーマンスカーブ
- 業界ベンチマークのシミュレーション
- コストモデリング
セキュリティ考慮事項
- テストモードは本番から完全に隔離する必要がある
- テストモードの操作は別途ログに残す
- テストモードでも認証は必須
- レート制限は適用される(閾値が異なる場合あり)
まとめ
AdCP のテスト機能により次が可能になります。- 迅速な開発 - 数秒でライフサイクル全体を検証
- 包括的なテスト - すべてのシナリオを決定論的にカバー
- ゼロコスト - テストで実費が発生しない
- 分離性 - 本番から完全に分離