プロダクト探索
Q: get_products では予算、日付、目標などの特定パラメーターが必須ですか?
A: 現時点で get_products のパラメーターは brief(自然言語文字列)、brand_manifest、filters(構造化フィルター)の 3 つのみです。予算、日付、目標などのキャンペーン詳細は自然言語の brief に含めてください。
将来: 会話の往復を減らすため、予算・日付・目標・ターゲティングの構造化パラメーターを検討しています。最新情報はロードマップを確認してください。
現在の回避策: これらの詳細をブリーフに含めます:
Q: get_products で特定のオーディエンスターゲティングを指定するには?
A: すべてのターゲティング指定は現在、自然言語の brief に記述します。まだ構造化されたターゲティングフィルターはありません。
例:
Q: 「no brief = 標準カタログ」とは? 標準カタログがありません。
A: バイヤーがbrief フィールドを省略すると、標準カタログの要求になります。これは、カスタムレコメンドなしで全広告主に提供するベースラインのプロダクトです。
標準カタログを提供していない場合 はエラーを返します:
Q: バイヤーは get_products の前後どちらで list_creative_formats を呼ぶべきですか?
A: get_products の後 です。推奨フローは以下の通り:
- キャンペーンブリーフ/フィルターとともに
get_productsを呼ぶ - 返されたプロダクトを確認する(
format_ids配列を含む) - 詳細が必要なフォーマット ID について
list_creative_formatsを呼ぶ - クリエイティブ要件が自社の能力と合致するか検証する
- 選択したプロダクトで
create_media_buyを呼ぶ
ポリシーコンプライアンス
Q: パブリッシャーは広告ポリシーの問題(アルコール、アダルトなど)をどう把握しますか?
A: パブリッシャーはbrand_manifest フィールドから広告主のアイデンティティを抽出します:
brand_manifest.name,brand_manifest.url, 任意のbrand_manifest.categoryから 広告主情報を抽出briefテキストから 何がプロモートされているか確認- 自社ポリシーに基づき ポリシールールを適用
- 適切なレスポンスを返す:
- Allowed: プロダクトを通常返す
- Blocked: ポリシー説明付きで products を空配列にする
- Restricted: 手動承認が必要な旨を示す
Q: 広告主名は常に共有されますか?
A: はい。brand_manifest フィールドは get_products と create_media_buy の両方で必須です。これは次のために必要な広告主の識別子を提供します:
- ポリシーコンプライアンスチェック
- ビジネス関係管理(KYC)
- 請求・レポート
category フィールド(例: "athletic_apparel", "alcohol", "pharma")は自動ポリシーフィルタリングに役立ちます。
スキーマとフィールド
Q: filters パラメーターが「オブジェクト」と呼ばれるのはなぜですか?
A: 複数の任意フィールドを持つ入れ子の JSON オブジェクトだからです:
Q: なぜ ad_units ではなく format_ids なのですか?
A: AdCP はプロトコル非依存の用語を採用しています:
format_ids: クリエイティブフォーマット仕様への構造化参照(例:{agent_url: "...", id: "video_30s_hosted"})- Ad units: 「300x250 バナー」のようなプラットフォーム固有の用語
_ids サフィックスは参照であることを示し、完全なフォーマットオブジェクトは list_creative_formats で取得します。
Q: 以前のドキュメントにあった promoted_offering フィールドはどこにありますか?
A: それは以前のバージョンのドキュメント誤りです。実際の API に このフィールドは存在しません。
正しい方法は次の通りです:
- 広告主の識別子 →
brand_manifest.nameとbrand_manifest.url(必須) - プロモーション内容 →
briefフィールドで記述(任意)
ブリーフの扱い
Q: バイヤーが不完全なブリーフを提供したらどうする?
A: 重要情報が欠けている場合、パブリッシャーは明確化を求めるべきです:Q: 常に明確化を求めるべきですか、それともそのままプロダクトを返しますか?
A: パブリッシャーの戦略によります:- ハイタッチ型: 不完全なブリーフには明確化を求め、会話的に対応する
- セルフサービス型: 利用可能な情報を基にベストなプロダクトを返す
ワークフローと統合
Q: brand_manifest を必須とする場面と任意とする場面は?
A: 現行仕様では次の通りです:
get_productsとcreate_media_buyの両方で必須
Q: バイヤーはプロダクトレスポンスをキャッシュできますか?
A: プロダクトは時間とともに変化する在庫状況を表します。推奨は次の通りです:- ブリーフベースの探索: キャッシュしない — プロダクトはブリーフに基づいてコンテキストマッチされるため
- 標準カタログ: カタログが安定していれば短時間(5〜15 分)キャッシュ可
- プロダクト詳細:
product_idのマッピングはキャッシュ可能だが、購入前に在庫を再検証する
Q: 1000 件以上の大規模プロダクトカタログはどう扱う?
A: 完全なproperties 配列の代わりに property_tags を使用します:
get_adcp_capabilities を通じてエージェントのポートフォリオ(パブリッシャードメインや主要チャネル)を把握できます。これによりレスポンスを軽量に保ちながら検証機能を維持できます。
テストとバリデーション
Q: ポリシーコンプライアンスをどうテストしますか?
A: Create test cases with known restricted categories:Q: 統合テストで何を検証すべきですか?
A: 次の主要シナリオをカバーしてください:- ブリーフなし + フィルターあり → 標準カタログ
- ブリーフあり →
brief_relevance付きで AI マッチしたプロダクト - ブロック対象広告主 → ポリシーエラー
- 不完全なブリーフ → 明確化リクエスト
- 一致するプロダクトなし → 有用な代替提案
- フォーマットフィルタリング → 一致するフォーマットのみ返却
よくある落とし穴
Q: フォーマットフィルターが機能しないのはなぜ?
A: 文字列ではなく構造化されたformat_ids を使っているか確認してください:
誤り:
Q: プロダクトに brief_relevance が含まれないのはなぜ?
A: brief_relevance は brief パラメーターが提供された場合にのみ含まれます。標準カタログ要求(ブリーフなし)ではコンテキストマッチがないためこのフィールドは含まれません。
Q: get_products で認可を検証すべきですか?
A: はい! バイヤーエージェントは購入前に営業エージェントの認可を検証する必要があります:
- プロダクトから properties を取得(または
property_tagsを解決) - 各
publisher_domainから/.well-known/adagents.jsonを取得 - 営業エージェントの URL が
authorized_agentsに含まれることを確認 - 認可されていないエージェントのプロダクトを拒否
用語
Q: 「product」と「package」の違いは?
A:- Product: パブリッシャーの販売可能な在庫単位(
get_productsが返す) - Package: 利用可能なプロダクトからバイヤーが選択したもの(
create_media_buyで送信)
Q: 「delivery」と「distribution」の違いは?
A:- Delivery type:
"guaranteed"と"non_guaranteed"(インプレッション保証の有無) - Distribution: クリエイティブが広告サーバーへ配信される方法(メディアバイではなくクリエイティブエージェントの領域)
Q: ドキュメントにある “AXE” とは?
A: Agentic eXecution Engine (AXE) ― オーケストレーターとディシジョニングプラットフォームの間にあるリアルタイム実行レイヤーです。AXE は動的オーディエンスターゲティング(バイヤー持ち込みセグメント)、ブランドセーフティ適用、フリークエンシー管理、インプレッション時の 1st パーティデータ活用を処理します。詳細は AXE documentation を参照してください。さらにサポートが必要ですか?
ここで扱われていない場合:- 詳細な API ドキュメントは Task Reference を確認
- 探索ガイダンスは Brief Expectations を参照
- プロダクトモデルの詳細は Media Products を参照
- 仕様の不明点は GitHub Issue を作成