ダイナミック広告挿入の VOD API

ダイナミック広告挿入 API を使用すると、DAI ビデオ オンデマンド(VOD)ストリームをリクエストして追跡できます。HLS ストリームと DASH ストリームがサポートされています。

サービス: dai.google.com

stream メソッドのパスは https://dai.google.com を基準とする相対パスです。

メソッド: stream

メソッド
stream POST /ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream

指定されたコンテンツ ソースと動画 ID の HLS DAI ストリームを作成します。

POST /ondemand/v1/dash/content/{content-source}/vid/{video-id}/stream

指定されたコンテンツ ソースと動画 ID の DASH DAI ストリームを作成します。

HTTP リクエスト

POST https://dai.google.com/ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream

POST https://dai.google.com/ondemand/v1/dash/content/{content-source}/vid/{video-id}/stream

リクエスト ヘッダー

パラメータ
api‑key string

ストリームの作成時に指定された API キーは、パブリッシャーのネットワークで有効である必要があります。

API キーは、リクエストの本文で指定する代わりに、次の形式で HTTP Authorization ヘッダーで渡すことができます。

Authorization: DCLKDAI key="<api-key>"

パスパラメータ

パラメータ
content-source string

ストリームの CMS ID。

video-id string

ストリームの動画 ID。

リクエストの本文

リクエスト本文は application/x-www-form-urlencoded 型で、次のパラメータが含まれます。

パラメータ
dai-ssb 省略可

サーバーサイド ビーコン ストリームを作成するには、true に設定します。デフォルトは false です。デフォルトのストリームのトラッキングはクライアント側で開始され、サーバー側で ping されます。

DFP ターゲティング パラメータ 省略可 追加のターゲット設定パラメータ。
ストリーム パラメータをオーバーライドする 省略可 ストリーム作成パラメータのデフォルト値をオーバーライドします。
HMAC 認証 省略可 HMAC ベースのトークンを使用して認証します。

レスポンスの本文

成功した場合、レスポンスの本文には新しい Stream が含まれます。サーバーサイド ビーコン ストリームの場合、この Stream には stream_id フィールドと stream_manifest フィールドのみが含まれます。

Open Measurement

Verifications フィールドには、サーバーサイド ビーコン以外のストリームの Open Measurement 検証に関する情報が含まれます。Verifications には、第三者測定コードでクリエイティブの再生を検証するために必要なリソースとメタデータのリストを含む 1 つ以上の Verification 要素が含まれます。JavaScriptResource のみがサポートされています。詳しくは、IAB Tech LabVAST 4.1 の仕様をご覧ください。

方法: メディアの確認

再生中に広告メディア識別子を検出したら、stream エンドポイントの media_verification_url を使用してすぐにリクエストを行います。media_verification_url は絶対パスです。サーバーサイド ビーコン ストリームでは、サーバーがメディア検証を開始するため、メディア検証リクエストは必要ありません。

media verification エンドポイントへのリクエストはべき等です。

メソッド
media verification GET {media_verification_url}/{ad_media_id}

メディア検証イベントを API に通知します。

HTTP リクエスト

GET {media-verification-url}/{ad-media-id}

レスポンスの本文

media verification は次のレスポンスを返します。

  • メディアの検証が成功し、すべての ping が送信された場合は HTTP/1.1 204 No Content
  • URL の形式が正しくないか、期限切れのため、リクエストでメディアを検証できない場合は HTTP/1.1 404 Not Found
  • この ID の以前の確認リクエストが成功した場合は HTTP/1.1 404 Not Found
  • この時点で別のリクエストがすでに ping を送信している場合は HTTP/1.1 409 Conflict

広告メディア ID(HLS)

広告メディア ID は、HLS のタイムド メタデータで、ユーザー定義のテキスト情報フレーム用に予約されているキー TXXX を使用してエンコードされます。フレームの内容は暗号化されず、常にテキスト "google_" で始まります。

フレームのテキスト コンテンツ全体が、各広告検証リクエストの media_verification_url に追加される必要があります。

広告メディア ID(DASH)

広告メディア ID は、DASH の EventStream 要素を使用してマニフェストに挿入されます。

EventStream の Scheme ID URI は urn:google:dai:2018 になります。これらのイベントには、"google_" で始まる広告メディア ID を含む messageData 属性が含まれます。messageData 属性のコンテンツ全体を、各広告検証リクエストの media_verification_url に追加する必要があります。

レスポンス データ

ストリーム

Stream は、新しく作成されたストリームのすべてのリソースのリストを JSON 形式でレンダリングするために使用されます。
JSON 表現
{
  "stream_id": string,
  "total_duration": number,
  "content_duration": number,
  "valid_for": string,
  "valid_until": string,
  "subtitles": [object(Subtitle)],
  "hls_master_playlist": string,
  "stream_manifest": string,
  "media_verification_url": string,
  "apple_tv": object(AppleTV),
  "ad_breaks": [object(AdBreak)],
}
フィールド
stream_id string

ストリーム識別子。
total_duration number

ストリームの長さ(秒)。
content_duration number

広告なしのコンテンツの再生時間(秒単位)。
valid_for string

期間ストリームが有効な期間(「00h00m00s」形式)。
valid_until string

ストリームが有効な日付(RFC 3339 形式)。
subtitles [object(Subtitle)]

字幕のリスト。空の場合は省略されます。HLS のみ。
hls_master_playlist string

(非推奨)HLS マスター再生リストの URL。stream_manifest を使用します。HLS のみ。
stream_manifest string

ストリームのマニフェスト。HLS のマスター再生リストと DASH の MPD に対応します。これは、サーバーサイド ビーコン ストリームを作成するときにレスポンスに存在する「stream_id」以外の唯一のフィールドです。
media_verification_url string

メディアの確認用 URL。
apple_tv object(AppleTV)

AppleTV デバイスに固有のオプション情報。HLS のみ。
ad_breaks [object(AdBreak)]

AdBreak のリスト。空の場合は省略されます。

AppleTV

AppleTV には、Apple TV デバイスに固有の情報が含まれています。
JSON 表現
{
  "interstitials_url": string,
}
フィールド
interstitials_url string

インタースティシャル URL。

AdBreak

AdBreak は、ストリーム内の 1 つのミッドロール挿入点を表します。位置、再生時間、タイプ(mid/pre/post)、広告のリストが含まれます。
JSON 表現
{
  "type": string,
  "start": number,
  "duration": number,
  "ads": [object(Ad)],
}
フィールド
type string

有効なブレーク タイプは、mid、pre、post です。
start number

ブレークが開始されるストリーム内の位置(秒単位)。
duration number

ミッドロール挿入点の長さ(秒)。
ads [object(Ad)]

広告のリスト。空の場合は省略されます。
Ad は、ストリーム内の広告を記述します。ブレーク内の広告の位置、広告の再生時間、オプションのメタデータが含まれます。
JSON 表現
{
  "seq": number,
  "start": number,
  "duration": number,
  "title": string,
  "description": string,
  "advertiser": string,
  "ad_system": string,
  "ad_id": string,
  "creative_id": string,
  "creative_ad_id": string,
  "deal_id": string,
  "clickthrough_url": string,
  "icons": [object(Icon)],
  "wrappers": [object(Wrapper)],
  "events": [object(Event)],
  "verifications": [object(Verification)],
  "universal_ad_id": object(UniversalAdID),
  "companions": [object(Companion)],
  "interactive_file": object(InteractiveFile),
  "skip_metadata": object(SkipMetadata),
  "extensions": [],
}
フィールド
seq number

ブレーク内の広告の位置。
start number

広告が開始されるストリーム内の位置(秒単位)。
duration number

広告の長さ(秒単位)。
title string

広告の省略可能なタイトル。
description string

広告の説明(省略可)。
advertiser string

広告主 ID(省略可)。
ad_system string

省略可能な広告システム。
ad_id string

省略可能な広告 ID。
creative_id string

省略可能なクリエイティブ ID。
creative_ad_id string

省略可能なクリエイティブ広告 ID。
deal_id string

省略可能な取引 ID。
clickthrough_url string

省略可能なリンク先 URL。
icons [object(Icon)]

アイコンのリスト。空の場合は省略されます。
wrappers [object(Wrapper)]

ラッパーのリスト。空の場合は省略されます。
events [object(Event)]

広告内のイベントのリスト。
verifications [object(Verification)]

クリエイティブの再生を検証するために第三者による測定コードを実行するのに必要なリソースとメタデータをリストする、省略可能な Open Measurement 検証エントリ。
universal_ad_id object(UniversalAdID)

省略可能なユニバーサル広告 ID。
companions [object(Companion)]

この広告とともに表示される可能性がある省略可能なコンパニオン。
interactive_file object(InteractiveFile)

広告の再生中に表示されるオプションのインタラクティブ クリエイティブ(SIMID)。
skip_metadata object(SkipMetadata)

スキップ可能な広告の省略可能なメタデータ。設定されている場合、広告がスキップ可能であることを示し、スキップ UI とトラッキング イベントの処理方法の手順が含まれます。
extensions string

VAST 内のすべての <Extension> ノードの省略可能なリスト。

イベント

イベントには、イベントタイプとイベントのプレゼンテーション時間が含まれます。
JSON 表現
{
  "time": number,
  "type": string,
}
フィールド
time number

このイベントのプレゼンテーション時間。
type string

このイベントのタイプ。

サブタイトル

Subtitle は、動画ストリームのサイドカー字幕トラックを表します。TTML と WebVTT の 2 つの字幕形式を保存します。TTMLPath 属性には TTML サイドカー ファイルの URL が含まれ、WebVTTPath 属性には同様に WebVTT サイドカー ファイルの URL が含まれます。
JSON 表現
{
  "language": string,
  "language_name": string,
  "ttml": string,
  "webvtt": string,
}
フィールド
language string

「en」や「de」などの言語コード。
language_name string

言語のわかりやすい名前。同じ言語で複数の字幕セットが存在する場合、特定の字幕セットを区別します。
ttml string

TTML サイドカー ファイルの省略可能な URL。
webvtt string

WebVTT サイドカー ファイルへの省略可能な URL。

SkipMetadata

SkipMetadata は、スキップ可能な広告のスキップ イベントをクライアントが処理するために必要な情報を提供します。
JSON 表現
{
  "offset": number,
  "tracking_url": string,
}
フィールド
offset number

オフセットは、プレーヤーがスキップボタンをレンダリングするまで待機する広告の開始からの時間(秒単位)を示します。VAST で指定されていない場合は省略されます。
tracking_url string

TrackingURL には、スキップ イベントで ping を送信する URL が含まれます。

アイコン

Icon には VAST アイコンに関する情報が含まれます。
JSON 表現
{
  "click_data": object(ClickData),
  "creative_type": string,
  "click_fallback_images": [object(FallbackImage)],
  "height": int32,
  "width": int32,
  "resource": string,
  "type": string,
  "x_position": string,
  "y_position": string,
  "program": string,
  "alt_text": string,
}
フィールド
click_data object(ClickData)

creative_type string

click_fallback_images [object(FallbackImage)]

height int32

width int32

resource string

type string

x_position string

y_position string

program string

alt_text string

ClickData

ClickData には、アイコンのクリック スルーに関する情報が含まれます。
JSON 表現
{
  "url": string,
}
フィールド
url string

FallbackImage

FallbackImage には、VAST の代替画像に関する情報が含まれています。
JSON 表現
{
  "creative_type": string,
  "height": int32,
  "width": int32,
  "resource": string,
  "alt_text": string,
}
フィールド
creative_type string

height int32

width int32

resource string

alt_text string

ラッパー

ラッパーには、ラッパー広告に関する情報が含まれます。存在しない場合は、取引 ID は含まれません。
JSON 表現
{
  "system": string,
  "ad_id": string,
  "creative_id": string,
  "creative_ad_id": string,
  "deal_id": string,
}
フィールド
system string

広告システムの識別子。
ad_id string

ラッパー広告に使用される広告 ID。
creative_id string

ラッパー広告に使用されるクリエイティブ ID。
creative_ad_id string

ラッパー広告に使用されるクリエイティブ広告 ID。
deal_id string

ラッパー広告のオプションの取引 ID。

確認

Verification には、第三者による視認性と検証の測定を容易にする Open Measurement の情報が含まれています。現在、サポートされているのは JavaScript リソースのみです。https://iabtechlab.com/standards/open-measurement-sdk/ をご覧ください。
JSON 表現
{
  "vendor": string,
  "java_script_resources": [object(JavaScriptResource)],
  "tracking_events": [object(TrackingEvent)],
  "parameters": string,
}
フィールド
vendor string

検証サービス。
java_script_resources [object(JavaScriptResource)]

検証用の JavaScript リソースのリスト。
tracking_events [object(TrackingEvent)]

検証のトラッキング イベントのリスト。
parameters string

ブートストラップ確認コードに渡される不透明な文字列。

JavaScriptResource

JavaScriptResource には、JavaScript による検証の情報が含まれています。
JSON 表現
{
  "script_url": string,
  "api_framework": string,
  "browser_optional": boolean,
}
フィールド
script_url string

JavaScript ペイロードの URI。
api_framework string

APIFramework は、検証コードを実行する動画フレームワークの名前です。
browser_optional boolean

このスクリプトをブラウザの外部で実行できるかどうか。

TrackingEvent

TrackingEvent には、特定の状況でクライアントが ping を送信する必要がある URL が含まれています。
JSON 表現
{
  "event": string,
  "uri": string,
}
フィールド
event string

トラッキング イベントのタイプ。
uri string

ピンを送信するトラッキング イベント。

UniversalAdID

UniversalAdID は、広告システム全体で維持される一意のクリエイティブ識別子を提供するために使用されます。
JSON 表現
{
  "id_value": string,
  "id_registry": string,
}
フィールド
id_value string

広告用に選択されたクリエイティブのユニバーサル広告 ID。
id_registry string

選択したクリエイティブのユニバーサル広告 ID がカタログ化されているレジストリ ウェブサイトの URL を識別するために使用される文字列。

コンパニオン モード

コンパニオンには、広告とともに表示されるコンパニオン広告の情報が含まれます。
JSON 表現
{
  "click_data": object(ClickData),
  "creative_type": string,
  "height": int32,
  "width": int32,
  "resource": string,
  "type": string,
  "ad_slot_id": string,
  "api_framework": string,
  "tracking_events": [object(TrackingEvent)],
}
フィールド
click_data object(ClickData)

このコンパニオンのクリックデータ。
creative_type string

静的タイプのコンパニオンの場合、VAST の <StaticResource> ノードの CreativeType 属性。
height int32

このコンパニオンの高さ(ピクセル単位)。
width int32

このコンパニオンの幅(ピクセル単位)。
resource string

静的コンパニオンと iframe コンパニオンの場合、これは読み込まれて表示される URL になります。HTML コンパニオンの場合、これはコンパニオンとして表示される HTML スニペットになります。
type string

このコンパニオンのタイプ。静的、iframe、HTML のいずれかになります。
ad_slot_id string

このコンパニオンのスロット ID。
api_framework string

このコンパニオンの API フレームワーク。
tracking_events [object(TrackingEvent)]

このコンパニオンのトラッキング イベントのリスト。

InteractiveFile

InteractiveFile には、広告再生中に表示されるインタラクティブ クリエイティブ(SIMID など)の情報が含まれます。
JSON 表現
{
  "resource": string,
  "type": string,
  "variable_duration": boolean,
  "ad_parameters": string,
}
フィールド
resource string

インタラクティブ クリエイティブの URL。
type string

リソースとして提供されるファイルの MIME タイプ。
variable_duration boolean

このクリエイティブで再生時間の延長をリクエストできるかどうか。
ad_parameters string

VAST の <AdParameters> ノードの値。