Documentation Index
Fetch the complete documentation index at: https://adcp-docs-ja.pier1.co.jp/llms.txt
Use this file to discover all available pages before exploring further.
AdCP 3.0 提案 - この仕様は AdCP 3.0 向けに開発中です。フィードバックは GitHub Discussions から歓迎します。
概要
クリエイティブプロトコルは、クリエイティブフォーマット発見、マニフェスト検証、クリエイティブ生成、プレビューレンダリングのための標準インターフェースを定義します。このプロトコルにより、AI エージェントが広告プラットフォーム全体でフォーマット仕様を発見し、準拠したクリエイティブアセットをビルドし、プレビューを生成できます。プロトコル概要
クリエイティブプロトコルが提供するもの:- 完全な技術仕様を持つフォーマット発見
- フォーマット要件に対するマニフェスト検証
- AI 搭載のクリエイティブ生成と変換
- クリエイティブ検証のためのプレビューレンダリング
- クロスプラットフォームトラッキング用ユニバーサルマクロ
トランスポート要件
クリエイティブエージェントは以下のトランスポートのうち少なくとも1つをサポートしなければなりません (MUST):| トランスポート | プロトコル | 説明 |
|---|---|---|
| MCP | Model Context Protocol | JSON-RPC によるツールベースのインタラクション |
| A2A | Agent-to-Agent | メッセージベースのインタラクション |
get_adcp_capabilities を通じてクリエイティブプロトコルのサポートを宣言しなければなりません (MUST):
creative ケイパビリティはバイヤーに対してこのエージェントがサポートするインタラクションモデルを伝える。以下のインタラクションモデルを参照。
コアコンセプト
クリエイティブエージェント
クリエイティブエージェントはクリエイティブプロトコルを実装するすべてのエージェントです。スタンドアロンサービス(広告サーバー、クリエイティブ管理プラットフォーム、ジェネレーティブツール)と、supported_protocols に "creative" を宣言するセールスエージェントを含みます。クリエイティブエージェントは:
- 自身が所有するフォーマットを定義・文書化します
- フォーマット要件に対してマニフェストを検証します
- クリエイティブがどのようにレンダリングされるかを示すプレビューを生成します
- オプションで自然言語ブリーフからクリエイティブを生成または変換します
インタラクションモデル
クリエイティブエージェントはケイパビリティに応じてさまざまな役割を担う。バイヤーはget_adcp_capabilities を使用してどのインタラクションモデルが適用されるかを判断する:
| モデル | 説明 | ケイパビリティ | 例 |
|---|---|---|---|
| 変換エージェント | 既存のマニフェストを新しいフォーマットにリサイズまたは適応させる | supports_transformation: true | フォーマット変換サービス |
| ジェネレーティブエージェント | 自然言語ブリーフからマニフェストを作成する | supports_generation: true | AI クリエイティブプラットフォーム |
| クリエイティブ広告サーバー | クリエイティブライブラリをホスト、広告配信タグを生成する | has_creative_library: true | Flashtalking、CM360、Celtra |
supports_generation: true と has_creative_library: true を持つクリエイティブ広告サーバーは、ブリーフからクリエイティブを生成することも、ライブラリから既存のものを取得することもできます。supports_compliance フラグは直交している — どのインタラクションモデルもブリーフのコンプライアンス要件をサポートできます。
モデル別バイヤーワークフロー:
- 変換:
list_creative_formats→build_creative(creative_manifest+target_format_idを使用) - 生成:
list_creative_formats→build_creative(message+target_format_idを使用) - ライブラリ取得:
list_creatives→build_creative(creative_id+target_format_idを使用)
フォーマットオーソリティ
各フォーマットはフォーマット ID のagent_url で識別される唯一の権威あるクリエイティブエージェントを持ちます:
フォーマット
フォーマットはアセットがどのようにアセンブルされてレンダリングされるかを定義します。フォーマットは以下を指定します:- メディアファミリ(display、video、audio、dooh)
- 必須および任意アセットタイプ
- 技術的制約(ディメンション、デュレーション、ファイルサイズ、コーデック)
- レンダリング動作とインタラクション期待値
アセット
アセットはクリエイティブの構成要素です。アセットタイプには以下が含まれます:- image: 静止画像(JPEG、PNG、WebP、GIF)
- video: ビデオファイル(MP4、WebM、MOV)または VAST タグ
- audio: オーディオファイル(MP3、M4A)または DAAST タグ
- text: ヘッドライン、説明文、CTA
- html: HTML5 クリエイティブまたはサードパーティタグ
- javascript: JavaScript タグ
- url: トラッキングピクセル、クリックスルー URL
マニフェスト
マニフェストはフォーマット仕様と実際のアセットコンテンツを組み合わせます。マニフェストは以下を提供します:- フォーマット参照(agent_url + id)
- フォーマットの asset_id をキーとしたアセット値
- トラッキング URL とマクロ
ユニバーサルマクロ
AdCP はクロスプラットフォームトラッキング用のユニバーサルマクロを定義します。クリエイティブエージェントはトラッキング URL でこれらのマクロをサポートしなければなりません (MUST):{TIMESTAMP}: Unix タイムスタンプ{CACHEBUSTER}: ランダムなキャッシュ無効化値{CLICK_URL}: クリックトラッキング URL{REDIRECT_URL}: 最終宛先 URL
タスク
クリエイティブプロトコルは以下のタスクを定義します。完全なリクエスト/レスポンスのスキーマと例についてはタスクリファレンスページを参照。list_creative_formats
リファレンス:list_creative_formats タスク
クリエイティブフォーマットとその仕様を発見します。
要件:
- クリエイティブエージェントは自身が所有するフォーマットの完全なフォーマット仕様を返さなければなりません (MUST)
- クリエイティブエージェントは各フォーマットの権威あるエージェントを識別する
agent_urlを含めなければなりません (MUST) - クリエイティブエージェントはフォーマット定義に技術的制約(ディメンション、デュレーション、ファイルタイプ)を含めなければなりません (MUST)
- クリエイティブエージェントは追加フォーマットを提供する他のクリエイティブエージェントへの参照を含めてもよい (MAY)
format_idsでフィルタリングする場合、クリエイティブエージェントはリクエストされたフォーマットのみを返さなければなりません (MUST)
build_creative
リファレンス:build_creative タスク
クリエイティブマニフェストを変換、生成、または取得します。3つのモードをサポートする:
- 生成: ブリーフまたはシードアセットからマニフェストを作成します
- 変換: 既存のマニフェストを別のフォーマットに適応させる
- ライブラリ取得: エージェントのライブラリから
creative_idを解決し、広告配信アセット(HTML/JavaScript/VAST タグ)を含むマニフェストを返す
- クリエイティブエージェントはフォーマット要件に対して入力マニフェストを検証しなければなりません (MUST)
- クリエイティブエージェントは成功時にターゲットフォーマットの有効なマニフェストを返さなければなりません (MUST)
- クリエイティブエージェントは変換が完了できない場合に検証エラーを返さなければなりません (MUST)
- クリエイティブエージェントは変換中にトラッキング URL とマクロを保持すべきだ (SHOULD)
- クリエイティブエージェントはジェネレーティブタスクの
qualityを尊重すべきだ (SHOULD)("draft"は高速反復、"production"は最終配信)。非ジェネレーティブ変換では無視してもよい (MAY) - クリエイティブエージェントは
item_limitが存在する場合、item_limitとフォーマットのmax_itemsの小さい方を使用すべきだ (SHOULD) - クリエイティブエージェントは生成タスクに AI/LLM 処理を使用してもよい (MAY)
creative_idが提供された場合、クリエイティブエージェントはライブラリからクリエイティブを解決しなければなりません (MUST)macro_valuesが提供された場合、クリエイティブエージェントは出力マニフェストのアセット内で指定されたマクロを代入し、未解決のマクロを{MACRO}プレースホルダーとして残すべきだ (SHOULD)- クリエイティブエージェントは
macro_valuesの未認識のマクロキーを無視しなければなりません (MUST) — 未知のマクロはエラーではありません - クリエイティブエージェントはグローバルに一意な
creative_id値を割り当てるべきだ (SHOULD)。一意性を保証できない場合、concept_idはbuild_creativeリクエストで曖昧さを解消するために REQUIRED だ build_creativeは重大な時間がかかる生成および変換タスクに対して非同期レスポンス(context_idポーリングを持つstatus: "working")をサポートします。ライブラリ取得は通常同期的です
preview_creative
リファレンス:preview_creative タスク
クリエイティブマニフェストのプレビューレンダリングを生成します。
要件:
- クリエイティブエージェントはプレビュー生成前にマニフェストを検証しなければなりません (MUST)
- クリエイティブエージェントは有効なマニフェストのプレビュー URL または HTML を返さなければなりません (MUST)
- クリエイティブエージェントはプレビュー URL に
expires_atを含めなければなりません (MUST) - クリエイティブエージェントは複数のクリエイティブのバッチプレビューをサポートすべきだ (SHOULD)
- クリエイティブエージェントは複数の出力フォーマット(URL、HTML、画像)をサポートしてもよい (MAY)
list_creatives
スキーマ:creative/list-creatives-request.json / creative/list-creatives-response.json
リファレンス: list_creatives タスク
クリエイティブライブラリ内のクリエイティブアセットを閲覧・フィルタリングします。クリエイティブライブラリをホストするすべてのエージェント — 広告サーバー、クリエイティブ管理プラットフォーム、クリエイティブを管理するセールスエージェント — が実装します。
要件:
- エージェントは認証済みアカウントからアクセス可能なクリエイティブを返さなければなりません (MUST)
- エージェントは各クリエイティブの承認ステータスを含めなければなりません (MUST)
- エージェントはフォーマット、ステータス、タグ、日付範囲によるフィルタリングをサポートすべきだ (SHOULD)
- プラットフォームがクリエイティブをコンセプトに整理する場合、エージェントは
concept_idsとformat_idsによるフィルタリングをサポートすべきだ (SHOULD) - エージェントは
include_variables=trueの場合にダイナミックコンテンツ変数定義を含めてもよい (MAY) - エージェントは
include_snapshot=trueの場合に軽量な配信スナップショットを含めてもよい (MAY)。スナップショットは「このクリエイティブはアクティブか?」「最後にいつ配信されたか?」などの運用上の質問のためにライフタイムインプレッションと最終配信日時を提供する — 詳細分析はget_creative_deliveryが担う
- ライブラリをホストするクリエイティブエージェントはバイヤーがクエリ前にアクセスを確立できるよう accounts プロトコル(
sync_accounts/list_accounts)を実装すべきだ (SHOULD) - これはセールスエージェントが使用するのと同じ accounts プロトコルだ — 別バージョンはない
- メディアバイのために accounts を既に実装しているセールスエージェントは追加対応不要です
sync_creatives
スキーマ:creative/sync-creatives-request.json / creative/sync-creatives-response.json
リファレンス: sync_creatives タスク
ライブラリにクリエイティブアセットをアップロードして同期します。クリエイティブライブラリをホストするすべてのエージェント — 広告サーバー、クリエイティブ管理プラットフォーム、クリエイティブを管理するセールスエージェント — が実装します。
要件:
- エージェントはフォーマット仕様に対してクリエイティブを検証しなければなりません (MUST)
- エージェントは非準拠クリエイティブの検証エラーを返さなければなりません (MUST)
- エージェントはクリエイティブが使用可能になる前に承認を要求してもよい (MAY)
- エージェントは変更を適用せずに検証するための
dry_runをサポートすべきだ (SHOULD) - エージェントは
delete_missing: trueとcreative_idsを組み合わせるリクエストを拒否しなければなりません (MUST) —delete_missingはライブラリ全体に適用され、フィルタされたサブセットには適用されない - メディアバイも管理するエージェントは一括クリエイティブ-パッケージマッピングのための
assignmentsフィールドをサポートすべきだ (SHOULD) - メディアバイを管理しないスタンドアロンクリエイティブエージェントは
assignmentsフィールドを無視すべきだ (SHOULD)
get_creative_delivery
リファレンス:get_creative_delivery タスク
バリアントレベルのメトリクスを含むクリエイティブ配信データを取得します。
要件:
- エージェントはリクエストされたクリエイティブの配信データを返さなければなりません (MUST)
- エージェントは利用可能な場合にバリアントレベルの内訳を含めるべきだ (SHOULD)
- クリエイティブプロトコルを実装するセールスエージェントは、自身のプロダクトがクリエイティブバリアントを生成または最適化する場合にこのタスクをサポートすべきだ (SHOULD)
エラー処理
クリエイティブエージェントは標準 AdCP エラースキーマを使用してエラーを返さなければなりません (MUST)。 一般的なエラーコード:FORMAT_NOT_FOUND: リクエストされたフォーマットが存在しませんVALIDATION_ERROR: マニフェストがフォーマット検証に失敗しましたASSET_MISSING: 必須アセットがマニフェストに提供されていませんASSET_INVALID: アセットがフォーマット制約を満たさないGENERATION_FAILED: クリエイティブ生成を完了できなかった
セキュリティの考慮事項
トランスポートセキュリティ
すべてのクリエイティブプロトコル通信は TLS 1.2 以上を使用した HTTPS を使用しなければなりません (MUST)。アセットセキュリティ
- クリエイティブエージェントはアセット URL がアクセス可能であることを検証すべきだ (SHOULD)
- クリエイティブエージェントはマルウェアと悪意あるコンテンツのためにアセットをスキャンすべきだ (SHOULD)
- クリエイティブエージェントは検証中に信頼されていない JavaScript を実行してはなりません (MUST NOT)
プレビューセキュリティ
- プレビュー URL は時間制限があるべきだ (SHOULD)(
expires_atで示されます) - クリエイティブエージェントはスクリプト実行を防ぐために HTML プレビューをサンドボックス化すべきだ (SHOULD)
output_format: "html"の消費者は信頼されたクリエイティブエージェントのみを使用しなければなりません (MUST)
適合性
クリエイティブエージェントの適合性
適合するクリエイティブプロトコルエージェントは以下を満たさなければなりません (MUST):- 指定されたトランスポート(MCP または A2A)のうち少なくとも1つをサポートします
- フォーマット発見のための
list_creative_formatsを実装します - 自身が所有するフォーマットの権威あるフォーマット定義のみを返す
- フォーマット仕様に対してマニフェストを検証します
- 指定されたエラーコードを使用します
- クリエイティブ生成のための
build_creativeを実装します - プレビューレンダリングのための
preview_creativeを実装します - トラッキング URL でユニバーサルマクロをサポートします
- エージェントがクリエイティブライブラリをホストする場合、
list_creativesを実装します - エージェントがクリエイティブアップロードを受け入れる場合、
sync_creativesを実装します - エージェントがクリエイティブライブラリをホストする場合、
build_creativeでcreative_idをサポートします - クリエイティブライブラリをホストする場合、accounts プロトコル(
sync_accounts/list_accounts)を実装します - バイヤーが正しいインタラクションモデルを判断できるよう
get_adcp_capabilitiesでsupports_generation、supports_transformation、has_creative_libraryを宣言します
コンシューマの適合性
適合するクリエイティブプロトコルコンシューマは以下を満たさなければなりません (MUST):- フォーマット ID の
agent_urlを使用して権威あるクリエイティブエージェントを識別します - 提出前にフォーマット仕様に対してマニフェストを検証します
- 検証エラーを適切に処理します
- 無限ループを避けるためにフォーマットを再帰的に発見する際に訪問済み URL を追跡します
実装ノート
レスポンスタイムの期待値
クリエイティブエージェントは以下のレスポンスタイムを目標とすべきだ (SHOULD):| 操作タイプ | 目標レイテンシ |
|---|---|
| フォーマットリスティング(list_creative_formats) | 1秒未満 |
| ライブラリクエリ(list_creatives) | 1秒未満 |
| クリエイティブ同期(sync_creatives) | 5秒未満 |
| プレビュー生成(preview_creative) | 5秒未満 |
| バッチプレビュー(10クリエイティブ) | 10秒未満 |
| クリエイティブ生成(build_creative) | 60秒未満 |
再帰的フォーマット発見
クリエイティブエージェントはlist_creative_formats レスポンスで他のクリエイティブエージェントを参照してもよい (MAY):
フォーマット対応検証
マニフェスト検証はフォーマット仕様のコンテキストで実行されなければなりません (MUST):- 権威あるクリエイティブエージェントからフォーマット定義を検索します
- マニフェストの各アセットについて、フォーマットの
assets配列内の対応するエントリを見つける - フォーマットで定義されたタイプと制約に対してアセット値を検証します
標準フォーマットとカスタムフォーマット
- 標準フォーマット: IAB 仕様に基づき、リファレンスクリエイティブエージェント(
https://creative.adcontextprotocol.org)がホスト - カスタムフォーマット: 特殊なインベントリのために個別のパブリッシャーやクリエイティブプラットフォームが定義
agent_url フィールドが各フォーマットに対してどのエージェントが権威あるかを識別します。
スキーマリファレンス
一部のクリエイティブプロトコルスキーマ(
build_creative、list_creative_formats、preview_creative)は、もともとメディアバイプロトコルの一部としてリリースされたため、media-buy/ 以下にパスがあります。スキーマパスは安定した識別子であり、タスクが属するプロトコルには影響しません。| スキーマ | 説明 |
|---|---|
core/format.json | フォーマット定義 |
core/creative-manifest.json | クリエイティブマニフェスト |
core/creative-asset.json | アセット定義 |
media-buy/list-creative-formats-request.json | list_creative_formats リクエスト |
media-buy/list-creative-formats-response.json | list_creative_formats レスポンス |
creative/list-creatives-request.json | list_creatives リクエスト |
creative/list-creatives-response.json | list_creatives レスポンス |
creative/sync-creatives-request.json | sync_creatives リクエスト |
creative/sync-creatives-response.json | sync_creatives レスポンス |