Skip to main content
preview_creative は、既存のクリエイティブマニフェストを閲覧可能な出力へレンダリングします。入力マニフェストを生成または変更することはありません——それには build_creative を使います。単一クリエイティブのプレビューとバッチプレビュー(複数クリエイティブで 5〜10 倍高速)の両方をサポートします。 リクエストスキーマ: /schemas/v3/creative/preview-creative-request.json レスポンススキーマ: /schemas/v3/creative/preview-creative-response.json

クイックスタート

単一クリエイティブのプレビュー

レスポンス:
プライマリレンダーを iframe に埋め込みます:

直接の HTML 埋め込み

iframe のオーバーヘッドなしのより高速なレンダリングのために、HTML を直接リクエストします:
レスポンスには生の HTML が含まれます:
output_format: "html" は信頼できるクリエイティブエージェントとのみ使ってください。直接の HTML 埋め込みは iframe のサンドボックスをバイパスします。

バッチプレビュー(複数クリエイティブ)

1 回の API 呼び出しで複数のクリエイティブをプレビューします(5〜10 倍高速):
レスポンスには結果が順序どおりに含まれます:

バリアントプレビュー(配信後)

特定のバリアントが配信されたときにどう見えたかをプレビューします。get_creative_delivery レスポンスの variant_id を使います:
レスポンス:
get_creative_delivery の各バリアントは完全な manifest を含むため、それを再レンダリングするために、そのマニフェストを標準の単一リクエストとして直接 preview_creative に渡すこともできます。

リクエストパラメータ

すべてのモードは、request_type を判別子とする単一のフラットなオブジェクトを使います。 必須列の値: Single = request_type"single" のときに必須、Batch = "batch" のとき必須、Variant = "variant" のとき必須。

入力セット

異なるコンテキストを提供することで、複数のプレビューバリアントを生成します:
利用可能なマクロ: DEVICE_TYPECOUNTRYCITYDMAGDPRUS_PRIVACYCONTENT_GENRE など。 コンテキスト記述: ホストリードの音声広告のような AI 生成コンテンツ向け。

レスポンスフォーマット

単一モードのレスポンス

バッチモードのレスポンス

プレビューの構造

マルチレンダーフォーマット: 一部のフォーマットは複数のピース(動画 + コンパニオンバナー)を生成します。それぞれが独自の render_idrole を持ちます。

生成系クリエイティブのプレビュー

生成系フォーマット——コンテキストディスプレイ、AI 生成ネイティブ、会話型広告——では、クリエイティブは配信時まで存在しません。プレビューは二つの異なる目的を果たします:

フライト前: 代表的なサンプル

キャンペーンが実行される前に、単一またはバッチモードを使って、異なるコンテキストが与えられたときにエージェントが何を生成しうるかをプレビューします。配信時の条件をシミュレートするために context_description を持つ inputs を渡します:
これらのプレビューは代表的であって決定的ではありません。実際の配信時の出力は、完全にはシミュレートできないライブシグナル(実際のページコンテンツ、ユーザーデバイス、時刻)に依存します。ブリーフとクリエイティブの方向性を高速に反復するにはドラフト品質を使い、ステークホルダーのレビューにはプロダクション品質を使います。

フライト後: 正確なリプレイ

キャンペーンが実行された後、バリアントモードを使って、正確に何が配信されたかを確認します。get_creative_delivery からの variant_id を渡します:
レスポンスには、バリアントの実際のマニフェスト——エージェントがそのコンテキスト向けに生成した特定の見出し、画像、レイアウト——が含まれます。これは再生成ではなく、忠実なリプレイです。

期待値の設定

すべてのインプレッションが異なるクリエイティブを生成する生成系フォーマット(AI チャットやリアルタイムコンテキストのような)では、フライト前プレビューは広告そのものではなく分布からのサンプルとして理解するのが最善です。ブリーフとブランドアイデンティティが分布を制約し、プレビューはエージェントがそれらの制約を正しく解釈することを検証できるようにします。

会話型とインタラクティブなフォーマット

広告がステートフルなフォーマット——AI チャット、インタラクティブな体験、会話型ネイティブ——では、プレビューは追加の意味を帯びます:
  • フライト前は、代表的な最初のインタラクションまたはシミュレートされた会話をレンダリングします。プレビューレスポンスの interactive_url フィールド(存在する場合)は、レビュアーが体験と直接やり取りできるサンドボックスを提供します。異なる会話のエントリーポイントをシミュレートするには context_description を使います。
  • フライト後のバリアントリプレイは、実際に起きたやり取りを示します。マルチターンフォーマットでは、バリアントマニフェストがエージェントが生成した完全なコンテンツ(メッセージシーケンス、レスポンス、表示されたメディアアセット)を捕捉します。詳細のレベルはエージェントに依存します——完全なトランスクリプトを提供するものもあれば、匿名化されたユーザーシグナルで要約されたコンテンツを提供するものもあります。
これらのフォーマットは、フライト前とフライト後の間のギャップが最も大きいです: フライト前プレビューは一つの可能な会話パスを近似できるだけですが、ライブ体験は各ユーザーに適応します。トーン、ガードレール、ブランドの一貫性を検証するのに十分なシナリオをプレビューしてください。

品質の不一致

要求された品質レベルがサポートされていない場合、エージェントは提供できる最善の品質でレンダリングします。プロトコルはエージェントに両方のレベルのサポートを要求しません——1 つの忠実度でしか生成しないエージェントはパラメータを無視します。実際に使われた品質をエコーバックするレスポンスフィールドはないため、ワークフローで品質の正確さが重要な場合は、目視で検証するか、list_creative_formats を通じてエージェントの機能について尋ねてください。

プレビューの有効期限とバリアントの保持

プレビューレスポンスには expires_at タイムスタンプが含まれる場合があります。存在する場合、コンシューマはその時刻を過ぎたプレビュー URL を無効として扱い、再利用の前に再生成すべきです。expires_at が省略された場合、プレビュー URL は期限切れになりません。生成系クリエイティブでは、フライト前プレビューを再生成すると異なる出力が生成される可能性があります——同じブリーフとコンテキストでも、毎回異なるクリエイティブになりえます。

プレビュー URL の耐久性

preview_url は、バイヤーと MCPUI ホストがレンダリングするプロトコルリソースです。AdCP は 3.x でプレビューレンダー用の別個の耐久性のあるアセットポインタを定義しません。クリエイティブエージェントが内部のアセットキー、リソース URI、またはストレージオブジェクト ID を必要とする場合、スキーマが将来のフィールドを追加しない限り、それはエージェント内部に留まります。 クリエイティブエージェントは、各 preview_url をレスポンスの expires_at タイムスタンプまで参照解決可能に保たなければなりません(MUST)。expires_at が省略された場合、URL はプロトコルレベルの有効期限を持たず、エージェントが帯域外で明示的に失効またはパージするまで参照解決可能でなければなりません。マルチプロセスまたはマルチポッドのデプロイでは、プレビュー URL をポッドローカルの Map/LRU の状態だけで裏付けないでください。ブラウザのフェッチ、後のリファインメント呼び出し、またはレビュアーのセッションが、プレビューを作成したのとは異なるプロセスに着地する可能性があるためです。 耐久性のあるストレージは、恒久的な公開 CDN ホスティングを必要としません。ルートが共有ストレージ(データベース行、オブジェクトストアのキー、共有キャッシュ層など)から、表明されたライフタイムにわたってレンダーを回復できる限り、プレビュー URL はクリエイティブエージェントの認証済みプレビュールートを通じて解決できます。 バリアントプレビュー(フライト後)は、エージェントがバリアントデータを保持することに依存します。エージェントはバリアントデータを無期限に保持する必要はありません。エージェントがパージしたバリアントのバリアントプレビューをリクエストした場合、標準のエラーレスポンスを期待してください。長期間実行されるキャンペーンでは、バリアントプレビューが利用可能なままだと仮定するのではなく、定期的に取得してアーカイブしてください。

デバイスバリアント

HTML 出力を伴うバッチ

グリッドレイアウト用に複数のクリエイティブをプレビューします:

AI 生成音声のプレビュー

HTTP ステータスコード

単一モード:
  • 200 OK - プレビューが正常に生成された
  • 400 Bad Request - 無効なマニフェストまたは format_id
  • 404 Not Found - フォーマットがサポートされていない
バッチモード:
  • 200 OK - バッチが処理された(個々の success フィールドを確認)
  • 400 Bad Request - 無効なバッチ構造

主なポイント

  • すべてのレンダーの preview_url は、iframe 埋め込み用の HTML ページを返す
  • 10 件以上のプレビューのグリッドには output_format: "html" を使う(iframe のオーバーヘッドなし)
  • バッチモードは個別リクエストより 5〜10 倍高速
  • プレビュー URL は expires_at が存在するときにのみ期限切れになる。expires_at の省略はプロトコルレベルの有効期限がないことを意味する
  • プレビュー URL を、URL の表明されたライフタイムを生き延びるストレージで裏付ける。プロセスローカルのマップは、単一プロセスのデモやプロセスライフタイムより短い URL にのみ適切
  • 各結果の success フィールドを確認して部分的なバッチ失敗を扱う

関連ドキュメント