始める前に
このドキュメントでは、IMA DAI SDK を使用しない再生手順のみについて説明します。
事前に Google アド マネージャー(GAM)と VOD アセットを統合するの手順を完了していることを確認してください。
目的のプラットフォームで IMA SDK を使用できない場合は、アプリケーションで必要な API を呼び出し、広告メディアの検証自体をトリガーする必要があります。
このためには、次の情報が必要です。
ロケーション |
ライブ構成が作成された
Google Cloud リージョン
: LOCATION
|
プロジェクト番号 |
Video Stitcher API を使用する Google Cloud プロジェクトのプロジェクト番号:
PROJECT_NUMBER
|
OAuth トークン | Video Stitcher ユーザーロールを持つサービス アカウントの有効期間が短い OAuth トークン:
OAUTH_TOKEN 有効期間が短い OAuth トークンの作成の詳細を確認します。 |
ネットワーク コード |
広告をリクエストするためのアド マネージャー ネットワーク コード:
NETWORK_CODE
|
VOD 構成 ID |
Vod ストリーム イベントの作成時に指定した VOD 構成 ID:
VOD_CONFIG_ID
|
アド マネージャーにストリーム登録リクエストを送信する
ストリーム登録エンドポイントに POST リクエストを行います。返される JSON レスポンスには、マニフェスト操作サーバーと関連する Pod Serving API エンドポイントに送信するストリーム ID が含まれます。
API エンドポイント
POST: /ondemand/pods/api/v1/network/NETWORK_CODE/stream_registration
Host: dai.google.com
Content-Type: application/json
パスパラメータ
NETWORK_CODE |
お客様の Google アド マネージャー ネットワークのコード |
JSON エンコードされた本文パラメータ
targeting_parameters
- オプションの JSON エンコードのターゲティング パラメータのセット。
レスポンス JSON
media_verification_url |
再生トラッキング イベントの ping のベース URL。このベース URL に広告イベント ID が追加され、完全なメディア確認 URL が生成されます。
MEDIA_VERIFICATION_URL
|
metadata_url |
連続配信広告のメタデータをリクエストする URL。
METADATA_URL
|
stream_id |
現在のストリーム セッションの識別に使用される文字列。
STREAM_ID
|
valid_for |
現在のストリーム セッションが期限切れになるまでの残り時間。dhms (日、時間、分、秒)形式で指定します。たとえば、2h0m0.000s は 2 時間の期間を表します。 |
valid_until |
現在のストリーム セッションが期限切れになる時刻。yyyy-MM-dd'T'hh:mm:ss.sssssssss[+|-]hh:mm 形式の ISO 8601 の日時文字列で指定します。 |
リクエストの例(cURL)
curl -X POST \
-H "Content-Type: application/json" \
-d '@request.json' \
https://dai.google.com/ondemand/pods/api/v1/network/21775744923/stream_registration
request.json
{
"targeting_parameters": {
"cust_params": "sport%3Dfootball%26city%3Dnewyork"
}
}
レスポンスの例
{
"media_verification_url": "https://dai.google.com/.../media/",
"metadata_url": "https://dai.google.com/.../metadata",
"stream_id": "6e69425c-0ac5-43ef-b070-c5143ba68541:CHS",
"valid_for": "8h0m0s",
"valid_until": "2023-03-24T08:30:26.839717986-07:00"
}
エラーの場合、標準の HTTP エラーコードは JSON レスポンスの本文なしで返されます。
JSON レスポンスを解析し、関連する値を保存します。
Cloud Video Stitcher VOD セッションを生成する
VOD セッション登録エンドポイントに POST リクエストを送信します。レスポンスとして、ストリーム マニフェスト URI と、ミッドロール挿入点、広告、広告イベントに関するメタデータを含む JSON レスポンスが返されます。
API エンドポイント
POST: /v1/projects/PROJECT_NUMBER/locations/LOCATION/vodSessions/
Host: videostitcher.googleapis.com
Authorization: Bearer OAUTH_TOKEN
Content-Type: application/json
パスパラメータ
PROJECT_NUMBER |
Google Cloud プロジェクト番号。 |
LOCATION |
Google Cloud リージョン。 |
NETWORK CODE |
お客様の Google アド マネージャー 360 ネットワークのコード |
JSON エンコードされた本文パラメータ
vodConfig |
プロジェクト番号、ロケーション、VOD 構成 ID を含む文字列。形式は次のとおりです。
projects/PROJECT_NUMBER/locations/LOCATION/vodConfigs/VOD_CONFIG_ID
|
adTracking |
クライアント側トラッキングを有効にするには、"CLIENT" に設定します。 |
gamSettings |
次の形式のネットワーク コードとストリーム ID を含むオブジェクト。
{ "networkCode":"NETWORK_CODE", "streamId":"STREAM_ID" } |
レスポンス JSON
name |
セッション ID を含む VOD セッションの名前。 |
playUri |
動画プレーヤーに読み込んで再生する、ステッチされたストリーム マニフェストの URI。SESSION_PLAYBACK_URI
|
adTracking |
リクエスト本文で API に送信された同じ adTracking 値。
|
vodConfig |
リクエスト本文で API に送信されたものと同じ vodConfig 文字列。 |
gamSettings |
リクエスト本文で API に送信された gamSettings オブジェクトと同じオブジェクト。 |
リクエストの例(cURL)
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer OAUTH_TOKEN" \
-d '@request.json' \
https://videostitcher.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/vodSessions/
request.json
{
"vod_config": "projects/PROJECT_NUMBER/locations/LOCATION/vodConfigs/VOD_CONFIG_ID",
"ad_tracking": "CLIENT",
"gam_settings": {
"network_code": "NETWORK_CODE",
"stream_id": "STREAM_ID"
}
}
レスポンスの例
{
"name": "projects/.../vodSessions/4a703a1f-5f48-4147-9738-c7d4c7b70e7f",
"playUri": "https://videostitcher.googleapis.com/.../manifest.m3u8",
"sourceUri": "https://storage.googleapis.com/.../hls.m3u8",
"adTagUri": "https://pubads.g.doubleclick.net/gampad/ads?...",
"vodConfig": "projects/...",
"assetId": "63b94af2767e17e5c975f8d7d2b15c0d0b0320a17c3d7ac8a3f6d4e0c165b9e5",
"adTracking": "CLIENT",
"gam_settings": {
"network_code": "21775744923",
"stream_id": "6e69425c-0ac5-43ef-b070-c5143ba68541:CHS"
}
}
レスポンスの受信後、レスポンス オブジェクトの playUri
フィールドの URI を参照して、広告合成されたライブ ストリームを再生できます。
アド マネージャーから連続配信広告のメタデータをリクエストする
アド マネージャーでストリームを登録したときに受け取った metadata_url
に対して GET リクエストを行います。この手順は、再生 URI からステッチされたマニフェストを受け取った後に行う必要があります。
ストリームのミッドロール挿入点、広告、広告イベントを記述する JSON オブジェクトを受け取ります。
API エンドポイント
GET: METADATA_URL
Host: dai.google.com
レスポンス JSON
tags |
ストリーム内で発生する広告メディア イベントを記述する Key-Value ペアのセット。各キーは、ストリームの ID3 メタデータに表示される広告メディア ID の最初の 17 文字か、「progress」イベントの場合は広告メディア ID 全体で構成されます。各値は、次のプロパティを持つオブジェクトです。
|
ads |
ストリーム内に表示される広告を記述する Key-Value ペアのセット。各キーは広告 ID です。各値は、次のプロパティを持つオブジェクトです。
|
ad_breaks |
ストリーム内で発生するミッドロール挿入点を表す Key-Value ペアのセット。各キーはミッドロール挿入点 ID です。各値は、次のプロパティを持つオブジェクトです。
|
リクエストの例(cURL)
curl METADATA_URL
JSON レスポンスの例
{
"tags":{
"google_5555555555":{
"ad":"0000229834_ad1",
"ad_break_id":"0000229834",
"type":"firstquartile"
},
"google_1234567890123456789":{
"ad":"0000229834_ad1",
"ad_break_id":"0000229834",
"type":"progress"
},
...
},
"ads":{
"0000229834_ad1":{
"ad_break_id":"0000229834",
"position":1,
"duration":15,
"clickthrough_url":"https://.../",
...
},
...
},
"ad_breaks":{
"0000229834":{
"type":"mid",
"duration":15,
"ads":1
},
...
}
}
これらの値を保存して、動画ストリーム内のタイミング設定されたメタデータ イベントに関連付けます。
ID3 イベントをリッスンし、再生イベントを追跡する
動画ストリームで特定のイベントが発生したことを確認するには、次の手順で ID3 イベントを処理します。
- メディア イベントをキューに保存し、各メディア ID とタイムスタンプ(プレーヤーによって表示された場合はタイムスタンプ)を保存します。
- プレーヤーからの更新ごとに、または設定した頻度(500 ms が推奨)で、イベントのタイムスタンプを再生ヘッドと比較して、最近再生されたイベントがメディア イベントのキューにあるかどうかを確認します。
- 再生したメディア イベントの場合は、保存されているミッドロール挿入点タグでメディア ID を検索してタイプを確認します。ミッドロール挿入点タグ オブジェクトには、メディア ID の切り捨てバージョンのみが含まれます。このバージョンは、google_ 接頭辞の後の最初の 10 桁に限定されているため、ID3 メディア認証 ID とタグ オブジェクト内のキーは直接一致しません。これは、ID3 イベントが届く前にイベント確認ピンが送信されないようにするためです。広告イベントの完全なメディア検証 URL を生成するには、ストリーム作成レスポンスの media_verification_url 値に完全な広告イベント ID を追加します。
- 「progress」イベントを使用して、ユーザーが広告ブレークの内側に入るかどうかを追跡します。HTTP エラーコードを回避するため、これらのイベントをメディア検証エンドポイントに送信しないでください。他のイベントタイプの場合は、メディア ID をメディア確認の URL に追加し、GET リクエストを行って再生を追跡します。
- キューからメディア イベントを削除します。
API エンドポイント
GET: MEDIA_VERIFICATION_URLAD_MEDIA_ID
Host: dai.google.com
パスパラメータ
MEDIA_VERIFICATION_URL |
ストリーム登録エンドポイントによって media_verification_url フィールドに返された値:
MEDIA_VERIFICATION_URL
|
AD_MEDIA_ID |
ストリームの ID3 メタデータに表示される完全な広告メディア ID:
AD_MEDIA_ID
|
期待される戻り値
HTTP/1.1 204 No Content |
成功した空のレスポンス。 |
HTTP/1.1 404 Not Found |
メディア確認 ID を認識できませんでした。 |
HTTP/1.1 409 Conflict |
メディア確認 ID はすでに送信されています。 |
リクエストの例(cURL)
curl MEDIA_VERIFICATION_URLAD_MEDIA_ID
レスポンスの例
HTTP/1.1 204 No Content
制限事項
WebView 内で API を使用する場合、ターゲティングに関して次の制限が適用されます。
- UserAgent: ユーザー エージェント パラメータは、基盤となるプラットフォームではなく、ブラウザ固有の値として渡されます。
- rdid、idtype、is_latSTRONG: デバイス ID が正しく渡されていないため、次の機能の機能が制限されます。
- フリークエンシー キャップ
- 広告の順次ローテーション
- オーディエンス セグメンテーションとターゲティング