コンテキスト広告

このトピックでは、コンテキスト広告を使用して、動画およびシーンレベルのコンテンツに基づき広告向けのコンテキスト信号を生成する方法を説明します。

はじめに

コンテキスト広告は Brightcove AI スイートの機能です。動画コンテンツを解析し、IAB Content Taxonomy 3.1 に従って分類します。生成されたキー/値ペアは広告リクエストに含め、手動で動画をカテゴリにマッピングしなくてもコンテキストターゲティングを支援できます。

Video Cloud Studio では、次の 2 か所から設定および実行できます。

  • 管理モジュール – Smart Ads で、アカウント全体の既定値、広告キーのラベル、除外カテゴリを設定します。
  • メディアモジュール – 動画の詳細から 1 本の動画に対してカテゴリを生成するか、動画のコンテキストメニューから複数本をまとめて処理します。

生成方法は次の 2 つです。

  • Video-level categories – 動画全体を解析し、1 組のカテゴリを生成します。プリロールのターゲティングに使います。
  • Scene-level categories – 動画全体と各シーンを解析し、動画レベルと各キューポイントごとのカテゴリを生成します。プリロールとミッドロールのターゲティングに使います。

生成後は、提案されたカテゴリをレビューして必要に応じて調整し、保存します。カテゴリは動画およびキューポイントのメタデータにある広告用キー/値フィールドに保存されます。

管理設定

管理モジュールで、アカウントに対するコンテキスト広告の挙動を設定します。

  1. 管理モジュールを開き、Smart Ads を選択します。
  2. Contextual Advertising で、必要に応じて次を設定します。
    • Automatically apply Suggested Content Categories for Ad Targeting – オンにすると、生成されたカテゴリが手動レビューなしで、それぞれのキー/値フィールドに保存されます。
    • Edit Ad Key Label – AI が生成するコンテキスト用広告キーのプレフィックスを定義します。
      • Video-level Label – 動画レベルのカテゴリ用プレフィックス(例:bc_vid_iab31)。プレビュー形式:bc_vid_iab31={categories}
      • Scene-level Label – キューポイントごとのカテゴリ用プレフィックス(例:bc_scene_iab31)。プレビュー形式:bc_scene_iab31={categories}

    管理モジュールの Smart Ads で Contextual Advertising の設定を表示
  3. Exclude IAB Categories – アカウント内のどの動画に対しても生成されないカテゴリを選択します。

    除外ダイアログのカテゴリツリーは、IAB Content Taxonomy 3.1 と同じ階層構造です。子カテゴリを持たないカテゴリは、そのカテゴリだけを選択して除外できます。子を持つカテゴリを除外すると、配下の子カテゴリも自動的に除外され、ツリー上ではすべて選択済みとして表示されます。

    除外を管理するには、Select Categories(既に除外がある場合は Edit)をクリックします。階層ツリーを参照または検索し、除外するカテゴリを選んで Save をクリックします。

    階層でカテゴリを選ぶ Exclude IAB Categories ダイアログ

    除外カテゴリをチップで表示する Exclude IAB Categories の概要
  4. 変更は自動的に保存されます。

動画単位の生成

動画の詳細ページから、1 本の動画に対してコンテンツカテゴリを生成します。

  1. メディアモジュールで動画を開きます。
  2. プレーヤーの下にある Smart Ads をクリックし、Add Contextual Targeting を選択します。

    動画の詳細ツールバーで Smart Ads メニューから Add Contextual Targeting を選択
  3. Generate Content Categories for Ad Targetingダイアログで生成方法を選び(生成方法)、Generate をクリックします。動画または広告キューポイントに既にキー/値ペアがある場合(手動で追加した値など)は、続行する前に 既存の広告ターゲティングキー を参照してください。
  4. 処理が完了したら、広告ワークフローで使用される前に Review Ad Categoriesカテゴリのレビュー)で提案されたカテゴリを確認または編集します。

既存の広告ターゲティングキー

すでに広告ターゲティングのキー/値ペアがある動画(動画の Ad Key、広告タイプのキューポイントの Key/Value Pairs、またはその両方)で生成を開始すると、処理の前に Existing ad targeting keys found ダイアログが表示されます。

新しいカテゴリの扱いを選びます。

  • Append new key-value pairs to existing ones (recommended) – 既存のキーを残し、AI が生成したコンテキスト用のペアを追加します。
  • Replace existing key-value pairs – 対象フィールドの既存の広告ターゲティングキーを削除し、新しく生成されたカテゴリで置き換えます。

選択内容で生成を実行するには Continue を、変更せずに閉じるには Cancel をクリックします。

追記と置換を選ぶ Existing ad targeting keys found ダイアログ

生成方法

生成ダイアログでは、コンテンツの解析方法を 2 通りから選べます。

Video-level と Scene-level を表示する Generate Content Categories ダイアログ

Video-level categories

動画全体を解析し、動画用の IAB カテゴリを 1 組生成します。アセット全体に 1 つのコンテキスト信号でよいプリロール向けに適しています。動画レベルのカテゴリは、動画の Advanced Settings > AdvertisingAd Key フィールドに保存されます。

Scene-level categories

動画全体と、キューポイントに沿った各シーンを解析して、次を生成します。

  • 動画全体に適用される動画レベルのカテゴリ – Ad Key フィールドに保存
  • 各広告タイプのキューポイントごとのカテゴリ – そのキューポイントの Key/Value Pairs フィールドに保存

プリロールミッドロールの両方でコンテキスト信号が必要な場合に使います。

カテゴリのレビュー

コンテキスト広告の実行後、広告サーバーに渡す前に提案されたカテゴリをレビューして編集します。生成が完了すると、プレーヤー下の Smart Ads ボタンは Review Ad Categories に変わります。

  1. 動画の詳細ページで、プレーヤーの下にある Review Ad Categories(旧 Smart Ads)をクリックします。

    動画の詳細ツールバーに Review Ad Categories ボタンを表示
  2. Per-Cue Pointタブで、各スマートプリロールおよびミッドロールのカテゴリを確認・編集します。タグにマウスを合わせて表示される x をクリックするとカテゴリを削除できます。ドロップダウンからカテゴリを追加できます。そのキューポイントについて AI の提案に戻すには Reset をクリックします。

    Per-Cue Point タブとカテゴリタグを表示した Review Generated Ad Categories ダイアログ
  3. Video-levelタブで、動画全体に適用されるカテゴリを確認します。シーンレベルの生成を使うと、動画レベルのカテゴリは各キューポイントにも含まれます。

    Video-level タブを選択した Review Generated Ad Categories ダイアログ
  4. Save で変更を保存するか、Discard で保存せずに閉じます。

カテゴリの保存場所

レビューしたカテゴリを保存した後(または自動適用された場合)、コンテキストターゲティング用データは Video Cloud Studio の広告関連フィールドに書き込まれます。

動画レベル:Ad Key フィールド

動画の詳細ページで Advanced Settings タブを開きます。AdvertisingAd Key フィールドに、動画レベルのコンテキスト用キー/値ペアが入ります(例:IAB カテゴリ ID を含む bc_vid_iab31=52,53,55,...)。

Advanced Settings の Advertising セクションに Ad Key フィールドを表示

キューポイント:Key/Value Pairs

シーンレベルのカテゴリでは、各広告キューポイントがキューポイント編集画面に独自のキー/値ペアを保持します。タイムラインからキューポイントを開き、Key/Value Pairs フィールドを編集します(動画レベルの値と並んで bc_scene_iab31=... など)。

コンテキスト用カテゴリの Key/Value Pairs を示すキューポイント編集ダイアログ

メディアモジュール:単一および複数動画の生成

各動画を開かずに、メディアモジュールの一覧からコンテキスト広告を実行できます。

  1. メディアモジュールで、1 本以上の動画を選択します。
  2. 選択した動画の ... メニューをクリックし、Add Contextual Targeting を選択します。

    メディアモジュールの動画コンテキストメニューに Add Contextual Targeting を表示
  3. ダイアログで生成方法を選び、Generate をクリックします。選択した各動画に対して処理が実行されます。
  4. 必要に応じて各動画を開き、Review Ad Categories でカテゴリを確認します。

API アクセス

コンテキスト広告機能は Ingest API から利用できます。すべてのエンドポイントは OAuth スコープ video-cloud/video/read が必要です。

コンテキスト広告ジョブの作成・取得・削除(動画単位)

エンドポイント:

POST | GET | DELETE https://ingest.api.brightcove.com/v1/accounts/{account_id}/videos/{video_id}/ai/ad-contextual
Scope: video-cloud/video/read

POST – 新しいコンテキスト広告ジョブを開始

リクエストボディ(すべて任意):

  • skip_review: boolean — true のとき、手動レビューなしでキューポイントが更新されます。
  • replace_existing: boolean — true のとき、動画の既存のコンテキストデータを上書きします。
  • key_video_level: string — 動画レベルのコンテキストラベルを広告ターゲティングメタデータに格納する際に使うカスタムキー。
  • key_cue_level: string — キューポイントレベルのコンテキストラベルを広告ターゲティングメタデータに格納する際に使うカスタムキー。
  • analysis_scope: string — "video" は動画全体のラベルのみ生成、"both" は動画レベルとキューポイントレベルの両方を生成します。

レスポンス:job_id(string)、job_status(例:processing)。

GET – 動画のジョブステータス・結果を取得

指定したアカウントと動画のコンテキスト広告ジョブを返します。各レスポンスに含まれるフィールド:

  • account_idvideo_id: strings
  • job_id: string(ワークフロー実行 ID)
  • status: processing | finished | failed
  • output: 処理完了時のコンテキスト分析結果。含まれるフィールド:
    • video_labels: string — 動画全体の IAB ノード ID をカンマ区切りで並べた広告キー値(例:"bc_vid_iab31=52,53,61,55"
    • cue_labels: キューポイントごとのオブジェクトの配列:
      • time: float — キューポイントの位置(秒)
      • labels: string — そのシーンの IAB ノード ID をカンマ区切りで並べた値(例:"bc_scene_iab31=123,125,52,53"
    • detailed_info: 割り当てられたカテゴリの人が読める形式の内訳:
      • video: 動画全体のラベルオブジェクトの配列。各オブジェクトに idlabel(カテゴリ名)、parent_id を含みます
      • cue: キューポイントごとのオブジェクトの配列。各オブジェクトに time と、同じラベルオブジェクト形式の labels 配列を含みます
    • key_video_level: string — 動画レベル出力に使われた広告キープレフィックス(例:"bc_vid_iab31"
    • key_cue_level: string — キューポイントレベル出力に使われた広告キープレフィックス(例:"bc_scene_iab31"
  • skip_review: boolean
  • replace_existing: boolean
  • error: string(statusfailed のとき表示)

その動画のジョブが存在しない場合、レスポンスボディは空になります。

DELETE – ジョブをキャンセル

進行中のワークフローを停止してレコードを削除します。レスポンスボディは空です。

コンテキスト広告ジョブ一覧を取得(アカウント単位)

GET https://ingest.api.brightcove.com/v1/accounts/{account_id}/ai/ad-contextual/jobs
Scope: video-cloud/video/read
Response: array of job objects(動画単位の GET と同じ形式)

IAB タクソノミー

コンテキストラベリングに使われる IAB タクソノミーの参照とカスタマイズができます。

GET – IAB タクソノミーを取得

GET https://ingest.api.brightcove.com/v1/accounts/{account_id}/ai/ad-contextual/taxonomy
Scope: video-cloud/video/read

レスポンスフィールド:

  • version: タクソノミーのバージョン
  • source: ソース識別子
  • nodes: 全タクソノミーノードのフラットリスト
  • tree: 階層ツリー構造
  • using_account_override: boolean — アカウントレベルのカスタマイズが有効かどうか

PATCH – IAB タクソノミーを更新

PATCH https://ingest.api.brightcove.com/v1/accounts/{account_id}/ai/ad-contextual/taxonomy
Scope: video-cloud/video/read

リクエストボディ:

  • excluded_node_ids: string の配列 — ラベリングから除外するノード ID。
  • add_nodes: 追加するカスタムノードオブジェクトの配列。各エントリに必要なフィールド:idparent_idlabelsort_orderis_active

レスポンス:{ "message": "..." }

よくある質問

  • IAB カテゴリとは何ですか?
    IAB(Interactive Advertising Bureau)のコンテンツカテゴリは、ブランドセーフティやコンテキストターゲティングのために動画コンテンツを説明する際に、広告業界で使われる標準の分類体系です。
  • 動画レベルとシーンレベルは、どちらを使うべきですか?
    動画全体で 1 つのコンテキスト信号で足りる場合(一般的なプリロール)は video-level を使います。各ミッドロールのブレーク付近のコンテンツに合わせたコンテキストが必要な場合は scene-level を使います。
  • 除外したカテゴリは過去の動画にも反映されますか?
    いいえ。除外は、除外を保存した後にコンテキスト広告を処理した動画にのみ影響します。すでに広告キーに入っているカテゴリを削除するには、動画またはキューポイントのメタデータを手動で編集するか、除外を更新したうえでコンテキスト広告を再生成してください。