特定のフォーマット向けのクリエイティブマニフェストを変換・生成・取得します。3 つのモードをサポートします。
- 生成(Generation): ブリーフまたはシードアセットからマニフェストを作成する(
message + creative_manifest)
- 変換(Transformation): 既存のマニフェストを別のフォーマットに適応させる(
creative_manifest + target_format_id)
- ライブラリ取得(Library retrieval): エージェントのライブラリから
creative_id を解決し、広告配信アセット付きのマニフェストを生成します
生成および変換では、build_creative はクリエイティブマニフェストを入力として受け取り、クリエイティブマニフェストを出力します。ライブラリ取得では、list_creatives で取得した creative_id を指定すると、エージェントがライブラリから解決します。
フォーマット ID とフォーマットの参照方法については、クリエイティブフォーマット - フォーマットの参照を参照。
リクエストパラメーター
| パラメーター | 型 | 必須 | 説明 |
|---|
message | string | No | クリエイティブエージェントへの自然言語の指示。生成時はクリエイティブ方向性を提供します。変換時はクリエイティブの適応方法をガイドします。リファインメント時は変更内容を記述します。 |
creative_manifest | object | No | 変換または生成の元となるクリエイティブマニフェスト(Creative Manifest を参照)。純粋な生成では、ターゲットの format_id と必要な入力アセットを含めます。変換では適応させる完全なクリエイティブを指定します。creative_id が指定された場合、エージェントはライブラリからクリエイティブを解決し、このフィールドは無視されます。 |
creative_id | string | No | エージェントのライブラリ内のクリエイティブへの参照。クリエイティブエージェントはこれをライブラリのマニフェストに解決します。タグ生成やフォーマット変換で既存のクリエイティブを取得する場合、creative_manifest の代わりに使用します。 |
concept_id | string | No | クリエイティブを含むクリエイティブコンセプト。同じ creative_id が複数のコンセプトに存在する場合に曖昧さを解消するために使用します。 |
media_buy_id | string | No | タグ生成コンテキスト用のバイヤーのメディアバイ参照。クリエイティブエージェントが広告サーバーも兼ねる場合(CM360 など)、プレースメント固有のタグを生成するために必要なトラフィッキングコンテキストを提供します。プラットフォームがクリエイティブレベルでタグを生成する場合(Flashtalking、Celtra など)は省略します。これはバイヤーの参照であり、create_media_buy から得られるセラーが割り当てた識別子ではありません。 |
package_id | string | No | メディアバイ内のバイヤーのパッケージまたはラインアイテム参照。クリエイティブエージェントがラインアイテムレベルのコンテキストを必要とする場合に media_buy_id とともに使用します。特定のパッケージにスコープされないタグを取得する場合は省略する(広告サーバーは同じタグを返す場合があります)。 |
target_format_id | object | Conditional | 生成する単一のフォーマット ID。agent_url と id フィールドを持つオブジェクト。target_format_ids と相互に排他的であり、どちらか一方のみを指定すること。 |
target_format_ids | array | Conditional | 1 回の呼び出しで生成するフォーマット ID の配列。各要素は agent_url と id フィールドを持つオブジェクト。target_format_id と相互に排他的であり、どちらか一方のみを指定すること。フォーマットごとに 1 つのマニフェストを返します。 |
brand | object | No | domain フィールドを持つブランド参照。/.well-known/brand.json 経由でブランドアイデンティティを解決します。ブランドレベルのコンテキスト(カラー、ロゴ、トーン)を提供します。 |
quality | string | No | 品質ティア: "draft"(反復のための高速・低忠実度)または "production"(最終納品のためのフル品質)。省略した場合、クリエイティブエージェントが独自のデフォルトを使用します。 |
item_limit | integer | No | 生成時に使用するカタログアイテムの最大数。カタログ駆動フォーマットの生成コストを抑制します。 |
include_preview | boolean | No | true の場合、マニフェストと同時にプレビューレンダリングをリクエストします。これをサポートするエージェントはレスポンスに preview オブジェクトを返します。サポートしないエージェントは単純に省略します。 |
preview_inputs | array | No | include_preview が true の場合のプレビュー生成用入力セット。各エントリに name(必須)、オプションの macros、オプションの context_description を持ちます。省略した場合、エージェントは単一のデフォルトプレビューを生成します。target_format_id(シングルフォーマット)でのみサポートされ、マルチフォーマットリクエストでは無視されます。 |
preview_quality | string | No | インラインプレビューのレンダー品質: "draft" または "production"。ビルドの quality とは独立しています。ドラフトでビルドしてプロダクション品質でプレビューすることも、その逆も可能。include_preview が true の場合のみ使用されます。 |
preview_output_format | string | No | プレビューレンダリングの出力フォーマット: "url"(デフォルト)または "html"。include_preview が true の場合のみ使用されます。 |
macro_values | object | No | 出力マニフェストのアセットに事前置換するマクロ値。キーはユニバーサルマクロ名(例: CLICK_URL、CACHEBUSTER)で、値はリテラルの置換文字列。クリエイティブエージェントはユニバーサルマクロをプラットフォームのネイティブ構文に変換します。ここで指定されないマクロは、セールスエージェントが配信時に解決するための {MACRO} プレースホルダーとして残る。 |
重要: 必須の入力アセットは、個別のタスクパラメーターとしてではなく、creative_manifest.assets オブジェクトに含めること。フォーマット定義が必要なアセットを指定します。ダイナミッククリエイティブのカタログコンテキストは creative_manifest.assets マップ経由で提供すること。
生成コントロール
ジェネレーティブフォーマットでは、生成プロセスを制御する 2 つのオプションパラメーターがあります。
-
quality: 生成の忠実度を制御します。高速反復(レイアウト・コピー・構成のレビュー)には "draft" を、最終レンダーには "production" を使用します。ドラフト出力では低解像度の画像、単純化されたエフェクト、またはプレースホルダー要素が使用される場合があります。気に入ったドラフトのプロダクション版を作成するには、そのドラフトの出力マニフェストを creative_manifest として quality: "production" と共に渡します。注意: preview_creative も quality を受け取るが、レンダーの忠実度を独立して制御します。ジェネレーティブクリエイティブのプレビューを参照。
-
item_limit: カタログ駆動フォーマットで、生成時に使用するカタログアイテム数を上限設定します。カタログに 1,000 商品あっても、必要なヒーロー画像は 4 枚だけかもしれない。クリエイティブエージェントは関連性またはカタログの順序に基づいて上位アイテムを選択します。item_limit がカタログ要件の max_items(フォーマットの catalog requirements から)を超える場合、クリエイティブエージェントは小さい方を使用すること。省略した場合、クリエイティブエージェントはカタログサイズとフォーマット要件に基づいて決定します。
ユースケース
純粋な生成(スクラッチからの作成)
純粋な生成では、フォーマットで定義された必須入力アセットを含む最小限のソースマニフェストを提供します。
{
"$schema": "/schemas/media-buy/build-creative-request.json",
"message": "Create a banner promoting our winter sale with a warm, inviting feel",
"target_format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250_generative"
},
"brand": {
"domain": "mybrand.com"
},
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250_generative"
},
"assets": {
"offering_catalog": {
"type": "offering",
"items": [
{
"offering_id": "winter-sale",
"name": "Winter Sale Collection",
"description": "50% off all winter items"
}
]
}
}
}
}
変換(既存クリエイティブの適応)
変換では、完全なソースマニフェストを提供します。
{
"$schema": "/schemas/media-buy/build-creative-request.json",
"message": "Adapt this creative for mobile, making the text larger and CTA more prominent",
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250"
},
"assets": {
"banner_image": {
"asset_type": "image",
"url": "https://cdn.example.com/original-banner.png",
"width": 300,
"height": 250
},
"headline": {
"asset_type": "text",
"content": "Winter Sale - 50% Off"
}
}
},
"target_format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_mobile_320x50"
}
}
フォーマットリサイズ
既存のクリエイティブを別のサイズに変換します。
{
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_728x90"
},
"assets": { /* complete assets */ }
},
"target_format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250"
}
}
ライブラリ取得
エージェントのライブラリからクリエイティブを取得し、広告配信アセット付きのマニフェストに解決します。list_creatives で creative_id を把握していて、クリエイティブエージェントにタグ(HTML、JavaScript、VAST)付きの配信対応マニフェストを生成させたい場合に使用します。
{
"$schema": "/schemas/media-buy/build-creative-request.json",
"creative_id": "ft_88201",
"concept_id": "concept_holiday_2026",
"target_format_id": {
"agent_url": "https://creative.example.com",
"id": "display_static",
"width": 300,
"height": 250
},
"macro_values": {
"CLICK_URL": "https://publisher.example.com/click/abc123"
}
}
レスポンス — マニフェストにはマクロが解決された広告配信タグアセットが含まれます。
{
"$schema": "/schemas/media-buy/build-creative-response.json",
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.example.com",
"id": "display_static",
"width": 300,
"height": 250
},
"assets": {
"ad_tag": {
"content": "<script src=\"https://cdn.example.com/frameworks/js/sdk.js\"></script><script>AdSDK.createBanner({clickTag:'https://publisher.example.com/click/abc123',width:300,height:250,id:'ft_88201_{CACHEBUSTER}'});</script>"
},
"clickthrough_url": {
"url": "https://acmecorp.example.com/holiday-sale"
}
}
}
}
CLICK_URL マクロは指定した値に置換されました。CACHEBUSTER はセールスエージェントが配信時に解決するためのプレースホルダーとして残っています。
クロスエージェントワークフロー: クリエイティブ生成とメディアバイを異なるエージェントが処理する場合、クリエイティブエージェントの build_creative でタグ付きマニフェストを生成し、次にセールスエージェントの sync_creatives でアップロードします。セールスエージェントが両方のプロトコルを実装している場合、単一のエンドポイントで行われる。セールスエージェントのクリエイティブ機能を参照。
マルチフォーマット生成
target_format_ids を使用して 1 回の呼び出しで複数のフォーマット向けにクリエイティブを生成します。エージェントは同じソースアセットとブリーフからフォーマットごとに 1 つのマニフェストを生成します。
{
"$schema": "/schemas/media-buy/build-creative-request.json",
"message": "Create display banners for our spring campaign",
"target_format_ids": [
{
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_static",
"width": 300,
"height": 250
},
{
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_static",
"width": 728,
"height": 90
},
{
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_static",
"width": 320,
"height": 50
}
],
"brand": {
"domain": "acmecorp.com"
},
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_static"
},
"assets": {
"banner_image": {
"asset_type": "image",
"url": "https://cdn.acmecorp.com/spring-hero.png",
"width": 1200,
"height": 628
},
"headline": {
"asset_type": "text",
"content": "Spring Collection Now Available"
},
"clickthrough_url": {
"asset_type": "url",
"url": "https://acmecorp.com/spring"
}
}
}
}
レスポンスは creative_manifest(単数)の代わりに creative_manifests(配列)を使用します。各マニフェストは独自の format_id を持つ完全なクリエイティブマニフェストで、sync_creatives または preview_creative にそのまま使用できます。
{
"$schema": "/schemas/media-buy/build-creative-response.json",
"creative_manifests": [
{
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_static",
"width": 300,
"height": 250
},
"assets": {
"banner_image": {
"asset_type": "image",
"url": "https://cdn.creative-agent.com/generated/spring_300x250.png",
"width": 300,
"height": 250
},
"headline": { "asset_type": "text", "content": "Spring Collection Now Available" },
"clickthrough_url": { "asset_type": "url", "url": "https://acmecorp.com/spring" }
}
},
{
"format_id": { "agent_url": "https://creative.adcontextprotocol.org", "id": "display_static", "width": 728, "height": 90 },
"assets": { /* same structure, adapted for 728x90 */ }
},
{
"format_id": { "agent_url": "https://creative.adcontextprotocol.org", "id": "display_static", "width": 320, "height": 50 },
"assets": { /* same structure, adapted for 320x50 */ }
}
]
}
マルチフォーマットリクエストはアトミックです。いずれかのフォーマットが失敗した場合(例: FORMAT_NOT_SUPPORTED)、リクエスト全体がエラーレスポンスで失敗します。レスポンス配列の順序は target_format_ids リクエストの順序に対応します。配列の位置または各マニフェストの format_id を比較してマニフェストをリクエストされたフォーマットに対応付ける。
マルチフォーマットワークフロー
マルチフォーマットビルド後、preview_creative バッチモードを使用してすべての結果をプレビューします。ビルドレスポンスの creative_manifests の各要素が、バッチプレビューリクエストの creative_manifest となります。
{
"request_type": "batch",
"quality": "draft",
"requests": [
{ "creative_manifest": { /* 300x250 manifest from build response */ } },
{ "creative_manifest": { /* 728x90 manifest from build response */ } },
{ "creative_manifest": { /* 320x50 manifest from build response */ } }
]
}
マルチフォーマットビルドで 1 つのフォーマットをリファインするには、target_format_id(単数)で build_creative を再度呼び出し、そのフォーマットのマニフェストを渡します。すべてのフォーマットを再ビルドする必要はなく、修正が必要な 1 つだけ反復すれば良い。
include_preview: true を使ったマルチフォーマットリクエストは、フォーマットごとに 1 つのデフォルトプレビューを生成します。カスタム preview_inputs はシングルフォーマットリクエストでのみサポートされます。デバイスバリアント・異なるコンテキストなど、コンテキスト固有のプレビューが必要なマルチフォーマットビルドでは、ビルド後に別途 preview_creative バッチ呼び出しを使用すること。
レスポンスフォーマット
シングルフォーマットレスポンス
リクエストで target_format_id を使用した場合、レスポンスには単一のクリエイティブマニフェストが含まれます。
{
"$schema": "/schemas/media-buy/build-creative-response.json",
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250"
},
"assets": {
"offering_catalog": {
"type": "offering",
"catalog_id": "winter-sale"
},
"banner_image": {
"asset_type": "image",
"url": "https://cdn.example.com/generated-banner.png",
"width": 300,
"height": 250
},
"headline": {
"asset_type": "text",
"content": "50% Off Winter Sale"
},
"clickthrough_url": {
"asset_type": "url",
"url": "https://mybrand.com/winter-sale"
}
}
}
}
マルチフォーマットレスポンス
リクエストで target_format_ids を使用した場合、レスポンスにはクリエイティブマニフェストの配列が含まれます。
{
"$schema": "/schemas/media-buy/build-creative-response.json",
"creative_manifests": [
{
"format_id": { "agent_url": "https://creative.adcontextprotocol.org", "id": "display_static", "width": 300, "height": 250 },
"assets": { /* ... */ }
},
{
"format_id": { "agent_url": "https://creative.adcontextprotocol.org", "id": "display_static", "width": 728, "height": 90 },
"assets": { /* ... */ }
}
]
}
フィールド説明
- creative_manifest: (シングルフォーマット)
sync_creatives または preview_creative で使用できる完全なクリエイティブマニフェスト
- creative_manifests: (マルチフォーマット)リクエストされたフォーマットごとの完全なクリエイティブマニフェストの配列。各要素が独自の
format_id を持ちます。
- format_id: ターゲットフォーマット(リクエストされたフォーマットと一致します)
- assets: アセットキーからアセットコンテンツへのマップ — クリエイティブコンテンツ(画像・テキスト・URL)、カタログ、ブリーフ、フォーマットが必要とするその他すべてを含みます
- expires_at: オプション。マニフェスト内の生成されたアセット URL の有効期限を示す ISO 8601 タイムスタンプ。すべての生成済みアセットの中で最も早い有効期限に設定されます。この時刻を過ぎたら新しい URL を取得するためにクリエイティブを再ビルドすること。マニフェストに有効期限のある URL が含まれない場合(例: 純粋なテキスト生成やアセンブリのみの変換)は存在しません。
- preview: オプション。リクエストで
include_preview が true で、エージェントがインラインプレビューをサポートしている場合に存在します。preview_creative のシングルレスポンスと同じコンテンツフィールド(previews、interactive_url、expires_at)を含むが、response_type ディスクリミネーターは除く。クライアントが同じプレビューレンダリングロジックを再利用できます。シングルフォーマットレスポンスでは、previews[] の各エントリが preview_inputs の入力セットに対応します。マルチフォーマットレスポンスでは、各エントリに format_id が含まれ、リクエストされたフォーマットの 1 つに対応する(フォーマットごとに 1 つのデフォルトプレビュー。preview_inputs は無視されます)。
- preview_error: オプション。
include_preview が true だったがプレビュー生成が失敗した場合に存在する標準エラーオブジェクト(code、message、recovery)。recovery フィールドは失敗が transient(後でリトライ)、correctable、または terminal のいずれかを示します。「エージェントがインラインプレビューをサポートしない」(フィールドが存在しない、エラーなし)と「プレビュー生成が失敗した」(フィールドが存在し、構造化エラーあり)を区別します。
コンプライアンスエラー
マニフェストに compliance 要件を持つ brief アセットが含まれており、クリエイティブエージェントがその要件を満たせない場合、エージェントは部分的な成功ではなくエラーを返さなければなりません(MUST)。未充足のディスクロージャーはハードな失敗です。
{
"$schema": "/schemas/media-buy/build-creative-response.json",
"errors": [
{
"code": "COMPLIANCE_UNSATISFIED",
"message": "Required disclosure cannot be rendered in this format",
"field": "creative_manifest.assets.brief.compliance.required_disclosures[0]",
"details": {
"disclosure_text": "Past performance is not indicative of future results.",
"position": "footer",
"reason": "Format display_mobile_320x50 does not support footer position"
},
"suggestion": "Use a format that supports footer disclosures, or change position to 'overlay'"
}
]
}
クリエイティブエージェントはクリエイティブを生成する前に、すべての required_disclosures をターゲットフォーマットで満たせることをバリデートしなければなりません(MUST)。いずれかのディスクロージャーを指定通りに配置できない場合、リクエスト全体が失敗します。これにより、規制対象のクリエイティブが必要な法的テキストなしに配信されることを防ぐ。
非同期サポート
生成と変換には相当な時間がかかる場合がある(AI 生成クリエイティブでは 10〜30 秒以上)。クリエイティブエージェントが結果を即座に返せない場合、ポーリング用の context_id とともに status: "working" を返します。
進捗アップデート
処理中、エージェントは進捗データを提供します。
{
"percentage": 60,
"current_step": "generating_assets",
"total_steps": 3,
"step_number": 2
}
ヒューマンインザループ
エージェントは生成中に人間の入力のために一時停止する場合があります。例えば、ブランドガイドラインによるクリエイティブ承認が必要な場合や、クリエイティブ方向性の明確化が必要な場合などがあります。
{
"reason": "CREATIVE_DIRECTION_NEEDED"
}
理由コード:
APPROVAL_REQUIRED — クリエイティブを確定する前に人間の承認が必要
CREATIVE_DIRECTION_NEEDED — クリエイティブブリーフまたは方向性について明確化が必要
ASSET_SELECTION_NEEDED — アセットの選択肢の中から呼び出し元に選択させる必要があります
ライブラリ取得モード(creative_id を使用)は通常同期的です。クリエイティブがすでに存在しており、タグ生成のみが必要なためです。非同期が最も一般的なのは生成および変換モードです。
ワークフロー統合
一般的な生成ワークフロー
- ビルド:
build_creative を使用してマニフェストを生成・変換します
- プレビュー:
preview_creative を使用してレンダリングを確認する(preview_creative を参照)
- シンク:
sync_creatives を使用して確定したクリエイティブをトラフィッキングします
ビルドリクエストに include_preview: true を設定することで、ステップ 1 と 2 を組み合わせることができます。エージェントがサポートしている場合、レスポンスにはマニフェストと共に preview オブジェクトが含まれ、余分なラウンドトリップが不要になります。エージェントがインラインプレビューをサポートしない場合、フィールドは単純に省略され、別途 preview_creative 呼び出しにフォールバックします。リクエストした際に preview が存在すると仮定するのではなく、常にその存在を確認すること。
preview_quality を使用してビルド品質から独立してレンダーの忠実度を制御します。例えば、quality: "draft"(高速なコンセプト生成)でビルドしながら、preview_quality: "production"(ステークホルダーにレイアウトを見せるためのフルフィデリティレンダー)でプレビューします。preview_quality を省略した場合、エージェントが独自のデフォルトを使用します。
// Build at draft quality, but preview at production quality for stakeholder review
{
"message": "Create a display banner for our winter sale",
"target_format_id": {"agent_url": "...", "id": "display_300x250_generative"},
"brand": { "domain": "mybrand.com" },
"quality": "draft",
"include_preview": true,
"preview_quality": "production",
"creative_manifest": {
"format_id": {"agent_url": "...", "id": "display_300x250_generative"},
"assets": {
"product_catalog": {
"type": "product",
"catalog_id": "winter-products"
}
}
}
}
// Or: Build first, preview separately
// Step 1: Build
{
"message": "Create a display banner for our winter sale",
"target_format_id": {"agent_url": "...", "id": "display_300x250_generative"},
"brand": { "domain": "mybrand.com" },
"creative_manifest": {
"format_id": {"agent_url": "...", "id": "display_300x250_generative"},
"assets": {
"product_catalog": {
"type": "product",
"catalog_id": "winter-products"
}
}
}
}
// Step 2: Preview (using the output manifest from step 1)
{
"request_type": "single",
"format_id": {"agent_url": "...", "id": "display_300x250"},
"creative_manifest": {
/* output from build_creative - includes all assets */
},
"inputs": [{"name": "Desktop view"}, {"name": "Mobile view"}]
}
// Step 3: Sync (if preview looks good)
{
"creative_manifests": [{ /* approved manifest from build_creative */ }]
}
重要なポイント: マニフェストがすべてを運ぶ。ブリーフ・カタログ・画像・テキスト — すべてがアセットマップに存在し、入力から出力まで受け渡されます。各ステップで個別に渡す必要はない。
例 1: 純粋な生成(ジェネレーティブフォーマット)
ジェネレーティブフォーマットを使用してスクラッチからクリエイティブを生成します。
{
"$schema": "/schemas/media-buy/build-creative-request.json",
"message": "Create a display banner for our winter sale. Use warm colors and emphasize the 50% discount",
"target_format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250_generative"
},
"brand": {
"domain": "mybrand.com"
},
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250_generative"
},
"assets": {
"offering_catalog": {
"type": "offering",
"items": [
{
"offering_id": "winter-sale",
"name": "Winter Sale Collection",
"description": "50% off all winter items"
}
]
}
}
}
}
レスポンス:
{
"$schema": "/schemas/media-buy/build-creative-response.json",
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250"
},
"assets": {
"offering_catalog": {
"type": "offering",
"catalog_id": "winter-sale"
},
"banner_image": {
"asset_type": "image",
"url": "https://cdn.creative-agent.com/generated/banner_12345.png",
"width": 300,
"height": 250
},
"clickthrough_url": {
"asset_type": "url",
"url": "https://mybrand.com/winter-sale"
}
}
}
}
例 2: フォーマット変換
既存の 728x90 リーダーボードを 300x250 バナーに変換します。
{
"$schema": "/schemas/media-buy/build-creative-request.json",
"message": "Adapt this leaderboard creative to a 300x250 banner format",
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_728x90"
},
"assets": {
"banner_image": {
"asset_type": "image",
"url": "https://cdn.mybrand.com/leaderboard.png",
"width": 728,
"height": 90
},
"headline": {
"asset_type": "text",
"content": "Spring Sale - 30% Off Everything"
},
"clickthrough_url": {
"asset_type": "url",
"url": "https://mybrand.com/spring"
}
}
},
"target_format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250"
}
}
レスポンス:
{
"$schema": "/schemas/media-buy/build-creative-response.json",
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250"
},
"assets": {
"banner_image": {
"asset_type": "image",
"url": "https://cdn.creative-agent.com/resized/banner_67890.png",
"width": 300,
"height": 250
},
"headline": {
"asset_type": "text",
"content": "Spring Sale - 30% Off"
},
"clickthrough_url": {
"asset_type": "url",
"url": "https://mybrand.com/spring"
}
}
}
}
例 3: 特定の指示を含む変換
特定のデザイン変更を伴うモバイル向けへの変換。
{
"$schema": "/schemas/media-buy/build-creative-request.json",
"message": "Make this mobile-friendly: increase text size, simplify the layout, and make the CTA button more prominent",
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x600"
},
"assets": {
"background_image": {
"asset_type": "image",
"url": "https://cdn.mybrand.com/bg.jpg",
"width": 300,
"height": 600
},
"headline": {
"asset_type": "text",
"content": "Discover Our New Collection"
},
"body_text": {
"asset_type": "text",
"content": "Shop the latest styles with free shipping on orders over $50"
},
"cta_text": {
"asset_type": "text",
"content": "Shop Now"
}
}
},
"target_format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_mobile_320x50"
}
}
レスポンス:
{
"$schema": "/schemas/media-buy/build-creative-response.json",
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_mobile_320x50"
},
"assets": {
"banner_image": {
"asset_type": "image",
"url": "https://cdn.creative-agent.com/mobile/banner_mobile_123.png",
"width": 320,
"height": 50
},
"headline": {
"asset_type": "text",
"content": "New Collection - Shop Now"
},
"clickthrough_url": {
"asset_type": "url",
"url": "https://mybrand.com/new"
}
}
}
}
例 4: クリエイティブブリーフを使った生成
brand とマニフェストの brief アセットを通じて構造化されたキャンペーンコンテキストを使用してクリエイティブを生成します。
{
"$schema": "/schemas/media-buy/build-creative-request.json",
"message": "Create a display banner for the holiday campaign targeting gift shoppers",
"target_format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250_generative"
},
"brand": {
"domain": "acmecorp.com"
},
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250_generative"
},
"assets": {
"brief": {
"name": "Holiday Sale 2025",
"objective": "conversion",
"audience": "Holiday gift shoppers aged 25-55",
"territory": "festive savings",
"messaging": {
"headline": "Holiday Deals Are Here",
"cta": "Shop Now",
"key_messages": [
"Up to 50% off select items",
"Free shipping on orders over $50"
]
},
"reference_assets": [
{
"url": "https://cdn.acmecorp.com/holiday-mood-board.pdf",
"role": "mood_board",
"description": "Holiday campaign mood board with festive color palette"
}
]
},
"offering_catalog": {
"type": "offering",
"items": [
{
"offering_id": "holiday-sale",
"name": "Holiday Sale Collection",
"description": "Up to 50% off select holiday items"
}
]
}
}
}
}
例 5: コンプライアンス要件を含む生成
規制上のディスクロージャーと禁止クレームを含む金融サービスのクリエイティブを生成します。
{
"$schema": "/schemas/media-buy/build-creative-request.json",
"message": "Create a display banner promoting retirement planning advisory services",
"target_format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250_generative"
},
"brand": {
"domain": "pinnaclewealth.com"
},
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250_generative"
},
"assets": {
"brief": {
"name": "Retirement Advisory Q1 2026",
"objective": "consideration",
"audience": "Pre-retirees aged 50-65 with investable assets",
"territory": "trusted financial guidance",
"messaging": {
"headline": "Plan Your Retirement with Confidence",
"cta": "Schedule a Consultation",
"key_messages": [
"Personalized retirement planning",
"Tax-efficient investment strategies"
]
},
"compliance": {
"required_disclosures": [
{
"text": "Past performance is not indicative of future results.",
"position": "footer",
"jurisdictions": ["US"],
"regulation": "SEC Rule 156"
},
{
"text": "Securities offered through Pinnacle Wealth Securities, LLC. Member FINRA/SIPC.",
"position": "footer",
"jurisdictions": ["US"],
"regulation": "FINRA Rule 2210"
},
{
"text": "Capital at risk. The value of investments can go down as well as up.",
"position": "prominent",
"jurisdictions": ["GB"],
"regulation": "FCA COBS 4.5"
},
{
"text": "Pinnacle Wealth Advisors is a registered investment adviser.",
"position": "footer"
}
],
"prohibited_claims": [
"guaranteed returns",
"risk-free investment",
"outperform the market"
]
}
}
}
}
}
コンプライアンス要件は管轄によって異なります。米国では SEC が義務付けるディスクロージャーが必要で、英国では FCA が義務付けるリスク警告が必要です。3 番目のディスクロージャー(jurisdictions なし)はグローバルに適用されます。prohibited_claims 配列は、生成されたコピーで避けるべきクレームをクリエイティブエージェントに伝える。
例 6: ブリーフと商品カタログを使ったコマースメディア
キャンペーンコンテキスト・コンプライアンスディスクロージャー・同期された商品カタログを含むスポンサー商品カルーセルを生成します。
{
"$schema": "/schemas/media-buy/build-creative-request.json",
"message": "Create a product carousel highlighting the top 4 sale items",
"target_format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "sponsored_product_carousel"
},
"brand": {
"domain": "novabrands.com"
},
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "sponsored_product_carousel"
},
"assets": {
"brief": {
"name": "Spring Sale 2026",
"objective": "conversion",
"audience": "Value-conscious shoppers aged 25-45",
"messaging": {
"headline": "Spring Sale — Up to 40% Off",
"cta": "Shop Now"
},
"compliance": {
"required_disclosures": [
{
"text": "Sponsored",
"position": "prominent"
},
{
"text": "Prices may vary by location. See store for details.",
"position": "footer"
}
]
}
},
"product_catalog": {
"type": "product",
"catalog_id": "spring_sale_2026"
}
}
}
}
ブリーフと商品カタログはマニフェストの assets マップに一緒に存在します。フォーマットは brief と catalog の両方のアセットタイプを宣言します。バイイングエージェントは list_creative_formats でこれを検出し、送信前に必要なカタログを同期します。
例 7: インラインプレビュー付きビルド
クリエイティブをビルドし、同一レスポンスでプレビューレンダリングを取得します。
{
"$schema": "/schemas/media-buy/build-creative-request.json",
"message": "Create a banner for our spring campaign",
"target_format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250_generative"
},
"brand": {
"domain": "novabrands.com"
},
"include_preview": true,
"preview_inputs": [
{ "name": "Default" },
{ "name": "Dark mode", "macros": { "COLOR_SCHEME": "dark" } }
],
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250_generative"
},
"assets": {
"offering_catalog": {
"type": "offering",
"items": [
{
"offering_id": "spring-promo",
"name": "Spring Collection",
"description": "30% off new arrivals"
}
]
}
}
}
}
レスポンス(エージェントがインラインプレビューをサポートしている場合):
{
"$schema": "/schemas/media-buy/build-creative-response.json",
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250"
},
"assets": {
"offering_catalog": {
"type": "offering",
"catalog_id": "spring-promo"
},
"banner_image": {
"asset_type": "image",
"url": "https://cdn.creative-agent.com/generated/spring_abc123.png",
"width": 300,
"height": 250
},
"clickthrough_url": {
"asset_type": "url",
"url": "https://novabrands.com/spring"
}
}
},
"preview": {
"previews": [
{
"preview_id": "prev_default",
"renders": [
{
"render_id": "r1",
"output_format": "url",
"preview_url": "https://preview.creative-agent.com/abc123/default",
"role": "primary",
"dimensions": { "width": 300, "height": 250 }
}
],
"input": { "name": "Default" }
},
{
"preview_id": "prev_dark",
"renders": [
{
"render_id": "r2",
"output_format": "url",
"preview_url": "https://preview.creative-agent.com/abc123/dark",
"role": "primary",
"dimensions": { "width": 300, "height": 250 }
}
],
"input": { "name": "Dark mode", "macros": { "COLOR_SCHEME": "dark" } }
}
],
"expires_at": "2026-03-13T06:00:00Z"
},
"expires_at": "2026-03-13T06:00:00Z"
}
preview オブジェクトには preview_creative のシングルレスポンスと同じコンテンツフィールド(previews、interactive_url、expires_at)が含まれます。エージェントがインラインプレビューをサポートしない場合、このフィールドは存在しません。バイヤーエージェントは別途 preview_creative 呼び出しにフォールバックします。プレビュー生成が失敗した場合、レスポンスには標準エラーオブジェクト(code、message、recovery)を持つ preview_error が含まれます。
例 8: アイテム制限付きドラフト生成
大規模カタログからドラフト品質のクリエイティブを生成し、アイテム数を上限設定します。
{
"$schema": "/schemas/media-buy/build-creative-request.json",
"message": "Create hero images for our top sale items",
"target_format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "sponsored_product_carousel"
},
"brand": {
"domain": "novabrands.com"
},
"quality": "draft",
"item_limit": 4,
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "sponsored_product_carousel"
},
"assets": {
"product_catalog": {
"type": "product",
"catalog_id": "spring_sale_2026"
}
}
}
}
カタログには数百の商品が含まれる場合があるが、item_limit: 4 により生成されるヒーロー画像は 4 枚のみとなります。quality: "draft" はレビュー用の高速・低忠実度の出力を生成します。
レスポンス:
{
"$schema": "/schemas/media-buy/build-creative-response.json",
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "sponsored_product_carousel"
},
"assets": {
"product_catalog": {
"type": "product",
"catalog_id": "spring_sale_2026"
},
"card_1_image": {
"asset_type": "image",
"url": "https://cdn.creative-agent.com/draft/card1_abc123.jpg",
"width": 400,
"height": 400
},
"card_2_image": {
"asset_type": "image",
"url": "https://cdn.creative-agent.com/draft/card2_def456.jpg",
"width": 400,
"height": 400
},
"card_3_image": {
"asset_type": "image",
"url": "https://cdn.creative-agent.com/draft/card3_ghi789.jpg",
"width": 400,
"height": 400
},
"card_4_image": {
"asset_type": "image",
"url": "https://cdn.creative-agent.com/draft/card4_jkl012.jpg",
"width": 400,
"height": 400
}
}
},
"expires_at": "2026-03-02T06:00:00Z"
}
expires_at フィールドは生成された CDN URL の有効期限を示します。この時刻を過ぎたら新しい URL を取得するために再ビルドすること。方向性が承認されたら、最終レンダーのために出力マニフェストを quality: "production" で再送信します。
主要コンセプト
ブランドとクリエイティブブリーフの違い
| ブランド | クリエイティブブリーフ |
|---|
| スコープ | ブランドアイデンティティ | キャンペーンコンテキスト |
| ライフスパン | キャンペーンをまたいで安定 | キャンペーンまたはフライトに固有 |
| 内容 | カラー・ロゴ・フォント・トーン | オーディエンス・テリトリー・メッセージ・コンプライアンス・リファレンスアセット |
| 法的事項 | ブランドレベルの免責事項(常時適用) | キャンペーン固有の規制上のディスクロージャー(地域・製品ベース) |
| ソース | ブランドレジストリ / /.well-known/brand.json | エージェンシーまたはブランドチーム |
| 格納場所 | ドメインルックアップで解決 | マニフェストのアセットマップ(assets.brief) |
どちらもオプションです。brand はドメインの /.well-known/brand.json 経由で解決される安定したブランドアイデンティティ(カラー・ロゴ・トーン)を提供します。ブリーフはマニフェストのアセット(assets.brief)であるため、再生成・リサイズ・監査を通じてクリエイティブと共に移動します。message フィールドはリクエストごとの自然言語の指示を提供します。
優先順位: brand パラメーターはクリエイティブレンダリングコンテキスト(カラー・ロゴ・トーン)の権威あるソースです。
レイヤリング: マニフェストの brief アセットは構造化された方向性を提供し、リクエストの message はリクエストごとの自然言語のオーバーライドを提供します。両方が競合する方向性を提供する場合、message が最も具体的な指示として優先されます。
変換モデル
build_creative はマニフェストイン、マニフェストアウトのモデルに従う。
- 入力: クリエイティブマニフェスト(最小限または完全 — すべてがアセットに存在します)
- 処理:
message とマニフェストコンテンツに基づいて変換・生成します
- 出力: プレビューまたは同期に使用できるターゲットクリエイティブマニフェスト(ブリーフが引き継がれる)
純粋な生成と変換の違い
- 純粋な生成: format_id だけを持つ最小限の
creative_manifest、カタログアセット(フォーマットがカタログアイテムをレンダーする場合)、および必要なシードアセットを提供します。クリエイティブエージェントは message をガイドとして使用してスクラッチから出力アセットを生成します。
- 変換: すべての既存アセットを含む完全な
creative_manifest を提供します。クリエイティブエージェントは既存アセットをターゲットフォーマットに適応させ、オプションで message のガイダンスに従う。
他のタスクとの統合
- build_creative → マニフェストを生成する(オプションで
include_preview 経由のインラインプレビュー付き)
- preview_creative → マニフェストを個別にレンダーする(preview_creative を参照)
- sync_creatives → 確定したマニフェストをトラフィッキングします
include_preview: true を使用してビルドとプレビューを 1 回の呼び出しに組み合わせます。エージェントがサポートしない場合、レスポンスは単純に preview フィールドを省略します。別途 preview_creative 呼び出しにフォールバックします。どちらの場合も、プレビューコンテンツフィールド(previews、interactive_url、expires_at)は同一です。
この分離により以下が可能になります。
- 一度ビルドして、異なるコンテキストで複数回プレビューします
- 再同期せずにビルドを反復します
- トラフィッキングにコミットする前にプレビューします
反復的なリファインメント
build_creative はモードフラグなしでマルチターンの反復をサポートします。フィールドの存在と組み合わせがオペレーションを決定します。
- 生成:
message + 最小限の creative_manifest(空またはシードアセット)+ target_format_id
- 変換: 完全な
creative_manifest + message + target_format_id
- ライブラリ取得:
creative_id + target_format_id + オプションの macro_values
- リファインメント: 前の出力を
creative_manifest として + 変更内容を示す新しい message
リファインするには、前のレスポンスの creative_manifest を新しい message と共に入力として渡します。または、brief アセット(assets.brief)を更新してクリエイティブ方向性を変更します。ブリーフはクリエイティブがどうあるべきかについてのバイヤーが所有する信頼のソースです。
{
"$schema": "/schemas/media-buy/build-creative-request.json",
"message": "Make the headline bolder and increase the contrast on the CTA button",
"target_format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250_generative"
},
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250"
},
"assets": {
"banner_image": {
"asset_type": "image",
"url": "https://cdn.creative-agent.com/generated/banner_12345.png",
"width": 300,
"height": 250
},
"headline": {
"asset_type": "text",
"content": "50% Off Winter Sale"
},
"clickthrough_url": {
"asset_type": "url",
"url": "https://mybrand.com/winter-sale"
}
}
}
}
エラーコード
| コード | 説明 |
|---|
FORMAT_NOT_SUPPORTED | target_format_id がこのクリエイティブエージェントでサポートされていない |
INVALID_MANIFEST | creative_manifest の形式が不正か、ターゲットフォーマットに必要なアセットが不足している |
CREATIVE_NOT_FOUND | creative_id がエージェントのライブラリに存在しない(または指定した concept_id 内に存在しない) |
COMPLIANCE_UNSATISFIED | ブリーフからの必須ディスクロージャーをターゲットフォーマットでレンダーできない(例: フォーマットが必要なディスクロージャーポジションをサポートしない) |