Skip to main content
このガイドでは、配信モデル、コンパニオン広告、インタラクティブオーバーレイ、VAST タグ生成など、AdCP における CTV(コネクテッドTV)広告の表現方法を説明します。 CTV はウェブ動画と根本的に異なる: マウスやタッチ入力がなく、視聴者は画面から 6〜10 フィート離れて座り、音声は常にオンで、広告は基本的にスキップ不可です。これらの制約が、AdCP でフォーマット、アセット、インタラクションをどのように定義するかを形作る。 プロトコルレベルの操作(list_creative_formatsbuild_creativesync_creativesget_creative_delivery)は、他のフォーマットと同様に CTV でも機能します。CTV 固有の詳細は、以下で説明するフォーマット定義、アセット要件、配信モデルにある。複数のセラーへの CTV クリエイティブ配信については、マルチエージェントクリエイティブオーケストレーションを参照。

配信モデル

CTV 広告は2つの配信経路でスクリーンに届く。配信モデルは、セラーのフォーマットが要求するクリエイティブアセットの種類を決定します。

SSAI(サーバーサイド広告挿入)

SSAI では、広告サーバーがプレーヤーに届く前にビデオ広告をコンテンツストリームに直接ステッチします。視聴者のデバイスは単一の連続したビデオを受け取る — コンテンツと広告の境界を知ることはない。 SSAI フォーマットは厳格なエンコード制約を持つミックスビデオファイル(MP4/MOV)を必要とします。シームレスなスプライシングのために、広告の GOP 構造、フレームレート、オーディオ設定がコンテンツストリームと正確に一致しなければなりません。 SSAI 互換性の主要な要件:
  • クローズド GOP — キーフレーム間隔 1〜2 秒
  • コンスタントフレームレート — コンテンツと一致(通常 29.97 または 30 fps)
  • ファイル先頭の moov アトム — プログレッシブダウンロード用
  • 48 kHz ステレオオーディオ — ラウドネス -24 LUFS に正規化

CSAI(クライアントサイド広告挿入)

CSAI では、CTV デバイス上のプレーヤーがコンテンツとは別に広告をフェッチしてレンダリングします。プレーヤーは VAST タグをリクエストし、XML を解析して、内包するメディアファイルを再生するかインタラクティブ体験をロードします。 CSAI フォーマットは通常 VAST タグ URL またはインライン VAST XML を必要とします。プレーヤーがレンダリングを処理するため、コンパニオンバナー、QR コードオーバーレイ、リモコンナビゲーションなどのインタラクティブ機能が可能になります。

CTV フォーマット定義

コンパニオン付き SSAI インストリームビデオ

このフォーマットは、オプションのコンパニオンディスプレイバナーを持つ 30 秒 SSAI プリロール/ミッドロールを表します。renders 配列はプライマリビデオとコンパニオンプレースメントの両方を定義します。
{
  "format_id": {
    "agent_url": "https://sales.streamhaus.example",
    "id": "ctv_30s_ssai_companion"
  },
  "name": "CTV 30s SSAI with companion banner",
  "description": "30-second SSAI instream video with 300x250 companion display banner. Video is spliced into the content stream; companion renders alongside the player.",
  "type": "video",
  "renders": [
    {
      "role": "primary",
      "dimensions": {
        "width": 1920,
        "height": 1080,
        "aspect_ratio": "16:9"
      }
    },
    {
      "role": "companion",
      "dimensions": {
        "width": 300,
        "height": 250
      }
    }
  ],
  "assets": [
    {
      "item_type": "individual",
      "asset_id": "video_file",
      "asset_type": "video",
      "asset_role": "hero_video",
      "required": true,
      "requirements": {
        "duration_seconds": 30,
        "acceptable_formats": ["mp4"],
        "acceptable_codecs": ["h264"],
        "acceptable_resolutions": ["1920x1080"],
        "min_bitrate_mbps": 15,
        "acceptable_frame_rates": ["29.97", "30"],
        "frame_rate_type": "constant",
        "scan_type": "progressive",
        "gop_interval_seconds_min": 1,
        "gop_interval_seconds_max": 2,
        "gop_type": "closed",
        "moov_atom_position": "start",
        "audio_required": true,
        "audio_codec": ["aac"],
        "audio_sampling_rate_hz": [48000],
        "audio_channels": "stereo",
        "audio_loudness_lufs": -24,
        "audio_loudness_tolerance_db": 2,
        "audio_true_peak_dbfs": -2
      }
    },
    {
      "item_type": "individual",
      "asset_id": "companion_image",
      "asset_type": "image",
      "asset_role": "companion_banner",
      "required": false,
      "requirements": {
        "min_width": 300,
        "max_width": 300,
        "min_height": 250,
        "max_height": 250,
        "formats": ["jpg", "png"],
        "max_file_size_kb": 200
      }
    },
    {
      "item_type": "individual",
      "asset_id": "click_url",
      "asset_type": "url",
      "asset_role": "clickthrough",
      "required": false
    }
  ]
}
コンパニオンバナーがオプションなのは SSAI 環境によって異なるためだ — プレーヤーの横にコンパニオンを表示するものもあれば、コンパニオンスロットなしでビデオをフルスクリーンで表示するものもあります。クリエイティブエージェントはコンパニオンアセットが利用可能な場合に提供し、プレースメントがサポートしない場合はセラーが無視します。

インタラクティブ CTV オーバーレイ

このフォーマットは、クリック可能なオーバーレイ要素を持つ CSAI 配信をサポートします。視聴者はテレビのリモコン D パッドを使ってナビゲートし、オーバーレイにはセカンドスクリーンエンゲージメント用の QR コードを含めることができます。
{
  "format_id": {
    "agent_url": "https://sales.streamhaus.example",
    "id": "ctv_30s_interactive"
  },
  "name": "CTV 30s interactive with overlay",
  "description": "30-second CSAI video with interactive HTML overlay. Supports D-pad navigation and QR code second-screen engagement.",
  "type": "video",
  "renders": [
    {
      "role": "primary",
      "dimensions": {
        "width": 1920,
        "height": 1080,
        "aspect_ratio": "16:9"
      }
    },
    {
      "role": "overlay",
      "dimensions": {
        "width": 1920,
        "height": 1080
      }
    }
  ],
  "assets": [
    {
      "item_type": "individual",
      "asset_id": "vast_tag",
      "asset_type": "vast",
      "asset_role": "video_tag",
      "required": true,
      "requirements": {
        "vast_version": "4.2"
      }
    },
    {
      "item_type": "individual",
      "asset_id": "overlay_html",
      "asset_type": "html",
      "asset_role": "interactive_overlay",
      "required": true,
      "requirements": {
        "max_file_size_kb": 300,
        "sandbox": "iframe",
        "external_resources_allowed": true
      }
    },
    {
      "item_type": "individual",
      "asset_id": "qr_image",
      "asset_type": "image",
      "asset_role": "qr_code",
      "required": false,
      "requirements": {
        "min_width": 200,
        "min_height": 200,
        "formats": ["png", "svg"]
      }
    },
    {
      "item_type": "individual",
      "asset_id": "qr_landing_url",
      "asset_type": "url",
      "asset_role": "qr_destination",
      "required": false
    },
    {
      "item_type": "individual",
      "asset_id": "click_url",
      "asset_type": "url",
      "asset_role": "clickthrough",
      "required": true
    }
  ]
}
オーバーレイ HTML はビデオの上にレンダリングされ、D パッドのフォーカス状態を処理します。QR コード画像はオーバーレイとは別にして、オーバーレイをサポートしないプラットフォームでも静的な要素として表示できるようにしています。

VAST タグ生成

バイヤーがビデオクリエイティブを持ち、CSAI 環境向けに VAST タグとして配信する必要がある場合、build_creative を使用してタグを生成します。

リクエスト

バイヤーは既存のクリエイティブを creative_id で参照し、セラーの CTV フォーマットをターゲットにする:
{
  "creative_id": "nova_spring_ctv_30s",
  "target_format_id": {
    "agent_url": "https://sales.streamhaus.example",
    "id": "ctv_30s_interactive"
  },
  "media_buy_id": "nova-streamhaus-q2",
  "macro_values": {
    "CLICK_URL": "https://nova-brands.example/spring?src=ctv"
  },
  "include_preview": true
}

レスポンス

クリエイティブエージェントは VAST アセット付きのマニフェストを返します。ランタイムコンテキストに依存するマクロはプレースホルダーのまま残る:
{
  "creative_manifest": {
    "format_id": {
      "agent_url": "https://sales.streamhaus.example",
      "id": "ctv_30s_interactive"
    },
    "assets": {
      "vast_tag": {
        "delivery_type": "url",
        "url": "https://adserve.pinnacle-creative.example/vast?cr=nova_spring_ctv_30s&buy=nova-streamhaus-q2&cb={CACHEBUSTER}&ifa=[IFA]",
        "vast_version": "4.2",
        "duration_ms": 30000
      },
      "overlay_html": {
        "asset_type": "html",
        "content": "<div class=\"ctv-overlay\" data-nav=\"dpad\">...</div>"
      },
      "qr_image": {
        "asset_type": "image",
        "url": "https://cdn.pinnacle-creative.example/qr/nova-spring-ctv.png",
        "width": 200,
        "height": 200
      },
      "qr_landing_url": {
        "asset_type": "url",
        "url_type": "clickthrough",
        "url": "https://nova-brands.example/spring?src=qr&buy=nova-streamhaus-q2"
      },
      "click_url": {
        "asset_type": "url",
        "url_type": "clickthrough",
        "url": "https://nova-brands.example/spring?src=ctv"
      }
    }
  },
  "expires_at": "2026-03-15T12:00:00Z"
}
VAST タグ URL には AdCP マクロ({CACHEBUSTER})と IAB VAST マクロ([IFA])が混在しています。セラーの広告サーバーが配信時に IAB マクロを解決し、クリエイティブエージェントはビルド時に解決できた AdCP マクロ(CLICK_URL など)を解決しました。

コンパニオン広告

コンパニオン広告は、プライマリビデオと並んで表示されるセカンダリクリエイティブ要素です。AdCP では、コンパニオン広告はフォーマットの renders 配列に複数のエントリとしてモデル化される — 視覚的な各パーツに1つのレンダー。

レンダーのアセットへのマッピング

フォーマットがビジュアルレイアウトを定義し、マニフェストが各パーツのコンテンツを提供します。
レンダーロールディメンション対応するアセット
primary1920x1080(16:9 ビデオ)video_file または vast_tag
companion300x250(ディスプレイバナー)companion_imageclick_url
単一のフォーマットが両方のパーツを宣言できます。クリエイティブエージェントは各レンダーにアセットを提供する必要があることを把握しています。セラーのプレーヤーはレンダーロールに基づいて各パーツの配置場所を把握します。

コンパニオンマニフェストの例

{
  "format_id": {
    "agent_url": "https://sales.streamhaus.example",
    "id": "ctv_30s_ssai_companion"
  },
  "assets": {
    "video_file": {
      "asset_type": "video",
      "url": "https://cdn.nova-brands.example/ctv/spring_30s_1080p.mp4",
      "duration": 30,
      "width": 1920,
      "height": 1080,
      "format": "video/mp4",
      "codec": "H.264",
      "bitrate_kbps": 15000
    },
    "companion_image": {
      "asset_type": "image",
      "url": "https://cdn.nova-brands.example/companion/spring_300x250.jpg",
      "width": 300,
      "height": 250
    },
    "click_url": {
      "asset_type": "url",
      "url_type": "clickthrough",
      "url": "https://nova-brands.example/spring?src=companion&buy={MEDIA_BUY_ID}"
    }
  }
}

CTV 固有の考慮事項

リモコンナビゲーション

CTV デバイスは上下左右と選択ボタンを持つ D パッド(方向パッド)を使用します。マウスカーソル、タッチ、ホバー状態はない。インタラクティブ CTV クリエイティブは以下を満たす必要がある:
  • ナビゲート可能な要素の明確なフォーカス順序を定義します
  • 視覚的なフォーカスインジケーター(ハイライト、ボーダー、スケール変更)を提供します
  • ナビゲーションをシンプルに保つ — 最大 2〜4 つのフォーカス可能な要素
  • デフォルトフォーカスがプライマリ CTA に当たるようにします
オーバーレイ HTML アセットは標準的なウェブフォーカス管理(tabindex:focus-visible CSS)でこれを処理します。CTV プレーヤーは D パッド入力をキーボードナビゲーションイベントにマップします。

QR コードオーバーレイ

QR コードは CTV スクリーンから視聴者のスマートフォンへの橋渡しをします。CTV はリーン・バック、サウンドオンの環境で、視聴者が手元にスマートフォンを持っているため機能します。 CTV 広告での効果的な QR コード配置:
  • 視聴者がスマートフォンを手に取る時間を確保するため最低 8 秒表示します
  • プレーヤーコントロールとの重なりを避けるため右下の象限に配置します
  • 明確なラベルを含める: “Scan to shop”(スキャンして購入)または “Scan for offer”(スキャンでオファーを確認)
  • QR スキャンを独立してアトリビューションできるよう、メインのクリックスルーとは別のランディング URL を使用します
AdCP では、QR コード画像とその宛先 URL は別々のアセットです。これにより、クリエイティブエージェントが正確な宛先をエンコードした QR コードを生成でき、セラーはランディング URL を独立して検証できます。

共視聴コンテキスト

CTV は共有スクリーンです。複数の人が同じ広告を視聴している場合があります。これはクリエイティブ戦略に影響するだけでなく、プロトコルにも含意がある:
  • フリークエンシーは個人ではなく世帯のフリークエンシーを意味します
  • デバイス ID は個人デバイスではなくテレビの識別子です
  • パブリッシャーからのコンテンツレーティングとジャンルメタデータは、バイヤーエージェントが共有視聴コンテキストでのブランドセーフティを評価するのに役立つ

コンテンツメタデータ

CTV セラーはバイヤーがトラッキング URL で使用できるマクロを通じてコンテンツコンテキストを提供します:
  • {CONTENT_GENRE} — コメディ、ドラマ、スポーツ、ニュースなど
  • {CONTENT_RATING} — TV-G、TV-PG、TV-14、TV-MA
  • {VIDEO_TITLE} — 視聴中のコンテンツのタイトル
  • {VIDEO_CATEGORY} — IAB コンテンツカテゴリ
  • {POD_POSITION} — 広告ブレーク内の位置(1番目、2番目、3番目の広告)
  • {POD_SIZE} — ブレーク内の広告総数
これらのマクロはポストキャンペーン分析に特に有用で、バイヤーがどのコンテンツ環境がパフォーマンスを牽引したかを理解できます。

エンドツーエンドワークフロー

1. CTV フォーマットの発見

バイヤーエージェントがセラーの list_creative_formats を呼び出して利用可能な CTV プレースメントを確認します:
{
  "filter": {
    "type": "video"
  }
}
レスポンスには ctv_30s_ssai_companionctv_30s_interactive などのフォーマットと、それらの完全な renders および assets 配列が含まれます。バイヤーエージェントは要件を精査して、提供する必要があるアセットを把握します。

2. クリエイティブのビルド

バイヤーエージェントがセラーのターゲットフォーマットを指定して、ソースクリエイティブをクリエイティブエージェントに送る:
{
  "creative_id": "nova_spring_ctv_30s",
  "target_format_ids": [
    {
      "agent_url": "https://sales.streamhaus.example",
      "id": "ctv_30s_ssai_companion"
    },
    {
      "agent_url": "https://sales.streamhaus.example",
      "id": "ctv_30s_interactive"
    }
  ],
  "media_buy_id": "nova-streamhaus-q2",
  "include_preview": true
}
target_format_ids を使用すると、1回の呼び出しで SSAI と CSAI 両方の配信用マニフェストが生成されます。クリエイティブエージェントはソースビデオを各フォーマットの要件に適合させる — SSAI 向けにはミックスファイルをエンコードし、CSAI 向けには VAST タグを生成します。

3. CTV コンテキストでのプレビュー

include_preview が true の場合、build_creative レスポンスにプレビューレンダーが含まれます。コンパニオン付き CTV フォーマットでは、プレビューに複数のレンダーパーツが含まれます:
{
  "creative_manifests": [
    {
      "format_id": {
        "agent_url": "https://sales.streamhaus.example",
        "id": "ctv_30s_ssai_companion"
      },
      "assets": {
        "video_file": {
          "asset_type": "video",
          "url": "https://cdn.pinnacle-creative.example/encoded/nova-spring-ssai.mp4",
          "duration": 30,
          "width": 1920,
          "height": 1080,
          "codec": "H.264",
          "bitrate_kbps": 15000
        },
        "companion_image": {
          "asset_type": "image",
          "url": "https://cdn.pinnacle-creative.example/companions/nova-spring-300x250.jpg",
          "width": 300,
          "height": 250
        },
        "click_url": {
          "asset_type": "url",
          "url_type": "clickthrough",
          "url": "https://nova-brands.example/spring?src=companion&buy={MEDIA_BUY_ID}"
        }
      }
    },
    {
      "format_id": {
        "agent_url": "https://sales.streamhaus.example",
        "id": "ctv_30s_interactive"
      },
      "assets": {
        "vast_tag": {
          "delivery_type": "url",
          "url": "https://adserve.pinnacle-creative.example/vast?cr=nova_spring_ctv_30s&buy=nova-streamhaus-q2&cb={CACHEBUSTER}",
          "vast_version": "4.2",
          "duration_ms": 30000
        },
        "overlay_html": {
          "asset_type": "html",
          "content": "<div class=\"ctv-overlay\" data-nav=\"dpad\">...</div>"
        },
        "qr_image": {
          "asset_type": "image",
          "url": "https://cdn.pinnacle-creative.example/qr/nova-spring-ctv.png",
          "width": 200,
          "height": 200
        },
        "qr_landing_url": {
          "asset_type": "url",
          "url_type": "clickthrough",
          "url": "https://nova-brands.example/spring?src=qr&buy=nova-streamhaus-q2"
        },
        "click_url": {
          "asset_type": "url",
          "url_type": "clickthrough",
          "url": "https://nova-brands.example/spring?src=ctv"
        }
      }
    }
  ],
  "expires_at": "2026-03-15T12:00:00Z",
  "preview": {
    "previews": [
      {
        "preview_id": "ssai-preview",
        "format_id": {
          "agent_url": "https://sales.streamhaus.example",
          "id": "ctv_30s_ssai_companion"
        },
        "renders": [
          {
            "role": "primary",
            "preview_url": "https://preview.pinnacle-creative.example/r/nova-spring-ssai-video"
          },
          {
            "role": "companion",
            "preview_url": "https://preview.pinnacle-creative.example/r/nova-spring-ssai-companion"
          }
        ],
        "input": {
          "name": "Default preview"
        }
      },
      {
        "preview_id": "interactive-preview",
        "format_id": {
          "agent_url": "https://sales.streamhaus.example",
          "id": "ctv_30s_interactive"
        },
        "renders": [
          {
            "role": "primary",
            "preview_url": "https://preview.pinnacle-creative.example/r/nova-spring-interactive"
          },
          {
            "role": "overlay",
            "preview_url": "https://preview.pinnacle-creative.example/r/nova-spring-overlay"
          }
        ],
        "input": {
          "name": "Default preview"
        }
      }
    ],
    "expires_at": "2026-03-15T12:00:00Z"
  }
}

4. メディアバイの作成

クリエイティブが問題なければ、バイヤーエージェントはクリエイティブマニフェストを参照してセラーとのメディアバイを作成する:
{
  "packages": [
    {
      "product_id": "streamhaus-premium-ctv",
      "creatives": [
        {
          "creative_id": "nova_spring_ctv_30s",
          "format_id": {
            "agent_url": "https://sales.streamhaus.example",
            "id": "ctv_30s_ssai_companion"
          }
        },
        {
          "creative_id": "nova_spring_ctv_30s",
          "format_id": {
            "agent_url": "https://sales.streamhaus.example",
            "id": "ctv_30s_interactive"
          }
        }
      ]
    }
  ]
}
同一のソースクリエイティブ(nova_spring_ctv_30s)が SSAI と CSAI の両フォーマットで添付されています。セラーは配信時の環境に基づいて適切なバージョンを選択します。

5. 配信バリアントのレビュー

キャンペーン実施後、バイヤーエージェントは配信データをレビューして、どのフォーマットとコンテキストの組み合わせがパフォーマンスを発揮したかを理解できます。CTV 固有の注目すべき指標:
  • 完了率 — スキップ不可 CTV では 95%+ であるべき。それより低い場合はクリエイティブの問題ではなく、技術的な配信問題を示します。
  • コンパニオンクリックスルー率 — コンパニオンバナーへのエンゲージメントを測定します。
  • QR スキャン率 — QR ランディング URL がトラッキング可能である必要があります。低い一桁台のパーセントが通常。
  • コンテンツジャンル別内訳 — どのコンテンツ環境が最も多くの完了とコンパニオンクリックを牽引したか。

6. 配信データのレビュー

セラーの get_creative_delivery を呼び出してバリアントレベルの CTV パフォーマンスを確認します:
{
  "media_buy_ids": ["nova-streamhaus-q2"],
  "creative_ids": ["nova_spring_ctv_30s"],
  "max_variants": 10
}
レスポンスにはフォーマット別の内訳が含まれます。SSAI と CSAI の両方を使用する CTV キャンペーンでは、各配信経路の指標が別々に表示されます:
{
  "creatives": [
    {
      "creative_id": "nova_spring_ctv_30s",
      "format_id": {
        "agent_url": "https://sales.streamhaus.example",
        "id": "ctv_30s_ssai_companion"
      },
      "totals": {
        "impressions": 250000,
        "spend": 12500,
        "completion_rate": 0.97
      },
      "variants": [{
        "variant_id": "ssai_default",
        "impressions": 250000,
        "completion_rate": 0.97
      }]
    },
    {
      "creative_id": "nova_spring_ctv_30s",
      "format_id": {
        "agent_url": "https://sales.streamhaus.example",
        "id": "ctv_30s_interactive"
      },
      "totals": {
        "impressions": 85000,
        "spend": 5100,
        "completion_rate": 0.95,
        "clicks": 2550
      },
      "variants": [{
        "variant_id": "interactive_default",
        "impressions": 85000,
        "completion_rate": 0.95,
        "clicks": 2550
      }]
    }
  ]
}
SSAI は広告がストリームにステッチされるため、通常より高い完了率(97%+)を示します。CSAI の完了率は若干低いが、インタラクティブ要素からのクリックデータを含みます。

関連ドキュメント