Skip to main content
AdCP 3.0 提案 - この仕様は AdCP 3.0 向けに開発中です。フィードバックは GitHub Discussions から歓迎します。
ステータス: コメント募集中 最終更新: 2026年3月 このドキュメントの “MUST”、“MUST NOT”、“REQUIRED”、“SHALL”、“SHALL NOT”、“SHOULD”、“SHOULD NOT”、“RECOMMENDED”、“MAY”、“OPTIONAL” というキーワードは RFC 2119 に記載の通りに解釈します。

概要

クリエイティブプロトコルは、クリエイティブフォーマット発見、マニフェスト検証、クリエイティブ生成、プレビューレンダリングのための標準インターフェースを定義します。このプロトコルにより、AI エージェントが広告プラットフォーム全体でフォーマット仕様を発見し、準拠したクリエイティブアセットをビルドし、プレビューを生成できます。

プロトコル概要

クリエイティブプロトコルが提供するもの:
  • 完全な技術仕様を持つフォーマット発見
  • フォーマット要件に対するマニフェスト検証
  • AI 搭載のクリエイティブ生成と変換
  • クリエイティブ検証のためのプレビューレンダリング
  • クロスプラットフォームトラッキング用ユニバーサルマクロ

トランスポート要件

クリエイティブエージェントは以下のトランスポートのうち少なくとも1つをサポートしなければなりません (MUST):
トランスポートプロトコル説明
MCPModel Context ProtocolJSON-RPC によるツールベースのインタラクション
A2AAgent-to-Agentメッセージベースのインタラクション
クリエイティブエージェントは優先トランスポートとして MCP をサポートすべきだ (SHOULD)。 クリエイティブエージェントは get_adcp_capabilities を通じてクリエイティブプロトコルのサポートを宣言しなければなりません (MUST):
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/protocol/get-adcp-capabilities-response.json",
  "adcp": { "major_versions": [2] },
  "supported_protocols": ["creative"],
  "creative": {
    "has_creative_library": true,
    "supports_generation": false,
    "supports_transformation": true,
    "supports_compliance": false
  }
}
creative ケイパビリティはバイヤーに対してこのエージェントがサポートするインタラクションモデルを伝える。以下のインタラクションモデルを参照。

コアコンセプト

クリエイティブエージェント

クリエイティブエージェントはクリエイティブプロトコルを実装するすべてのエージェントです。スタンドアロンサービス(広告サーバー、クリエイティブ管理プラットフォーム、ジェネレーティブツール)と、supported_protocols"creative" を宣言するセールスエージェントを含みます。クリエイティブエージェントは:
  • 自身が所有するフォーマットを定義・文書化します
  • フォーマット要件に対してマニフェストを検証します
  • クリエイティブがどのようにレンダリングされるかを示すプレビューを生成します
  • オプションで自然言語ブリーフからクリエイティブを生成または変換します
メディアバイプロトコルとクリエイティブプロトコルの両方を実装するセールスエージェントは、単一のエンドポイントから両方の役割を担う。セールスエージェントのクリエイティブ機能を参照。

インタラクションモデル

クリエイティブエージェントはケイパビリティに応じてさまざまな役割を担う。バイヤーは get_adcp_capabilities を使用してどのインタラクションモデルが適用されるかを判断する:
モデル説明ケイパビリティ
変換エージェント既存のマニフェストを新しいフォーマットにリサイズまたは適応させるsupports_transformation: trueフォーマット変換サービス
ジェネレーティブエージェント自然言語ブリーフからマニフェストを作成するsupports_generation: trueAI クリエイティブプラットフォーム
クリエイティブ広告サーバークリエイティブライブラリをホスト、広告配信タグを生成するhas_creative_library: trueFlashtalking、CM360、Celtra
これらのモデルは組み合わせ可能だ — エージェントは複数をサポートできます。supports_generation: truehas_creative_library: true を持つクリエイティブ広告サーバーは、ブリーフからクリエイティブを生成することも、ライブラリから既存のものを取得することもできます。supports_compliance フラグは直交している — どのインタラクションモデルもブリーフのコンプライアンス要件をサポートできます。 モデル別バイヤーワークフロー:
  • 変換: list_creative_formatsbuild_creativecreative_manifest + target_format_id を使用)
  • 生成: list_creative_formatsbuild_creativemessage + target_format_id を使用)
  • ライブラリ取得: list_creativesbuild_creativecreative_id + target_format_id を使用)
クリエイティブライブラリをホストするエージェントは、バイヤーがクエリ前にアクセスを確立できるよう accounts プロトコルを実装すべきだ(SHOULD)。メディアバイのために accounts を既に実装しているセールスエージェントは追加対応不要です。

フォーマットオーソリティ

各フォーマットはフォーマット ID の agent_url で識別される唯一の権威あるクリエイティブエージェントを持ちます:
{
  "format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "display_300x250_image"
  }
}
クリエイティブエージェントは自身が所有するフォーマットの権威あるフォーマット定義のみを返さなければなりません (MUST)。 クリエイティブエージェントは追加フォーマットを提供する他のクリエイティブエージェントを参照してもよい (MAY)。

フォーマット

フォーマットはアセットがどのようにアセンブルされてレンダリングされるかを定義します。フォーマットは以下を指定します:
  • メディアファミリ(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 とマクロ
クリエイティブエージェントは受け入れる前にフォーマット要件に対してマニフェストを検証しなければなりません (MUST)。

ユニバーサルマクロ

AdCP はクロスプラットフォームトラッキング用のユニバーサルマクロを定義します。クリエイティブエージェントはトラッキング URL でこれらのマクロをサポートしなければなりません (MUST):
  • {TIMESTAMP}: Unix タイムスタンプ
  • {CACHEBUSTER}: ランダムなキャッシュ無効化値
  • {CLICK_URL}: クリックトラッキング URL
  • {REDIRECT_URL}: 最終宛先 URL
セールスエージェントはユニバーサルマクロを自身の広告サーバーのネイティブ構文に変換しなければなりません (MUST)。

タスク

クリエイティブプロトコルは以下のタスクを定義します。完全なリクエスト/レスポンスのスキーマと例についてはタスクリファレンスページを参照。

list_creative_formats

リファレンス: list_creative_formats タスク クリエイティブフォーマットとその仕様を発見します。 要件:
  • クリエイティブエージェントは自身が所有するフォーマットの完全なフォーマット仕様を返さなければなりません (MUST)
  • クリエイティブエージェントは各フォーマットの権威あるエージェントを識別する agent_url を含めなければなりません (MUST)
  • クリエイティブエージェントはフォーマット定義に技術的制約(ディメンション、デュレーション、ファイルタイプ)を含めなければなりません (MUST)
  • クリエイティブエージェントは追加フォーマットを提供する他のクリエイティブエージェントへの参照を含めてもよい (MAY)
  • format_ids でフィルタリングする場合、クリエイティブエージェントはリクエストされたフォーマットのみを返さなければなりません (MUST)

build_creative

リファレンス: build_creative タスク クリエイティブマニフェストを変換、生成、または取得します。3つのモードをサポートする:
  1. 生成: ブリーフまたはシードアセットからマニフェストを作成します
  2. 変換: 既存のマニフェストを別のフォーマットに適応させる
  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_idbuild_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_idsformat_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: truecreative_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):
  1. 指定されたトランスポート(MCP または A2A)のうち少なくとも1つをサポートします
  2. フォーマット発見のための list_creative_formats を実装します
  3. 自身が所有するフォーマットの権威あるフォーマット定義のみを返す
  4. フォーマット仕様に対してマニフェストを検証します
  5. 指定されたエラーコードを使用します
適合するクリエイティブプロトコルエージェントは以下を満たすべきだ (SHOULD):
  1. クリエイティブ生成のための build_creative を実装します
  2. プレビューレンダリングのための preview_creative を実装します
  3. トラッキング URL でユニバーサルマクロをサポートします
  4. エージェントがクリエイティブライブラリをホストする場合、list_creatives を実装します
  5. エージェントがクリエイティブアップロードを受け入れる場合、sync_creatives を実装します
  6. エージェントがクリエイティブライブラリをホストする場合、build_creativecreative_id をサポートします
  7. クリエイティブライブラリをホストする場合、accounts プロトコル(sync_accounts / list_accounts)を実装します
  8. バイヤーが正しいインタラクションモデルを判断できるよう get_adcp_capabilitiessupports_generationsupports_transformationhas_creative_library を宣言します

コンシューマの適合性

適合するクリエイティブプロトコルコンシューマは以下を満たさなければなりません (MUST):
  1. フォーマット ID の agent_url を使用して権威あるクリエイティブエージェントを識別します
  2. 提出前にフォーマット仕様に対してマニフェストを検証します
  3. 検証エラーを適切に処理します
  4. 無限ループを避けるためにフォーマットを再帰的に発見する際に訪問済み URL を追跡します

実装ノート

レスポンスタイムの期待値

クリエイティブエージェントは以下のレスポンスタイムを目標とすべきだ (SHOULD):
操作タイプ目標レイテンシ
フォーマットリスティング(list_creative_formats)1秒未満
ライブラリクエリ(list_creatives)1秒未満
クリエイティブ同期(sync_creatives)5秒未満
プレビュー生成(preview_creative)5秒未満
バッチプレビュー(10クリエイティブ)10秒未満
クリエイティブ生成(build_creative)60秒未満

再帰的フォーマット発見

クリエイティブエージェントは list_creative_formats レスポンスで他のクリエイティブエージェントを参照してもよい (MAY):
{
  "creative_agents": [{
    "agent_url": "https://creative.adcontextprotocol.org",
    "agent_name": "AdCP Reference Creative Agent",
    "capabilities": ["validation", "assembly", "preview"]
  }]
}
コンシューマは参照されたエージェントを再帰的にクエリして追加フォーマットを発見してもよい (MAY)。 コンシューマは再帰的発見中の無限ループを防ぐために訪問済み URL を追跡しなければなりません (MUST)。

フォーマット対応検証

マニフェスト検証はフォーマット仕様のコンテキストで実行されなければなりません (MUST):
  1. 権威あるクリエイティブエージェントからフォーマット定義を検索します
  2. マニフェストの各アセットについて、フォーマットの assets 配列内の対応するエントリを見つける
  3. フォーマットで定義されたタイプと制約に対してアセット値を検証します
フォーマット定義が各 asset_id のタイプを決定します。アセットタイプ情報はマニフェスト自体には含まれない。

標準フォーマットとカスタムフォーマット

  • 標準フォーマット: IAB 仕様に基づき、リファレンスクリエイティブエージェント(https://creative.adcontextprotocol.org)がホスト
  • カスタムフォーマット: 特殊なインベントリのために個別のパブリッシャーやクリエイティブプラットフォームが定義
両方とも同じように機能する — agent_url フィールドが各フォーマットに対してどのエージェントが権威あるかを識別します。

スキーマリファレンス

一部のクリエイティブプロトコルスキーマ(build_creativelist_creative_formatspreview_creative)は、もともとメディアバイプロトコルの一部としてリリースされたため、media-buy/ 以下にパスがあります。スキーマパスは安定した識別子であり、タスクが属するプロトコルには影響しません。
スキーマ説明
core/format.jsonフォーマット定義
core/creative-manifest.jsonクリエイティブマニフェスト
core/creative-asset.jsonアセット定義
media-buy/list-creative-formats-request.jsonlist_creative_formats リクエスト
media-buy/list-creative-formats-response.jsonlist_creative_formats レスポンス
creative/list-creatives-request.jsonlist_creatives リクエスト
creative/list-creatives-response.jsonlist_creatives レスポンス
creative/sync-creatives-request.jsonsync_creatives リクエスト
creative/sync-creatives-response.jsonsync_creatives レスポンス