ライブ ストリーム用のダイナミック広告挿入 API

Google DAI API を使用すると、環境に Google DAI 対応ストリームを実装できます 実装できません引き続き IMA SDK がサポートされているプラットフォームでの IMA。

DAI API は、次のプラットフォームで使用することをおすすめします。

  • Samsung スマートテレビ(Tizen)
  • LG テレビ
  • HbbTV
  • Xbox(JavaScript アプリ)
  • KaiOS

API は、IMA DAI SDK によって提供される基本機能をサポートしています。対象 互換性やサポートされている機能に関するご質問がある場合は、 担当の Google アカウントマネージャーに お問い合わせください

ライブ ストリームに DAI API を実装する

DAI API は、HLS プロトコルと DASH プロトコルの両方を使用したリニア(LIVE)ストリームに対応しています。 このガイドで説明する手順は、両方のプロトコルに適用できます。

ライブ配信用のアプリに API を統合する手順は次のとおりです。 手順:

1. ストリームをリクエストする

DAI API からライブ ストリームをリクエストするには、ストリームに対する POST 呼び出しを行います 提供しますJSON レスポンスには、ストリーム マニフェストと、 DAI API のエンドポイントと値。

リクエスト本文の例

https://dai.google.com/linear/v1/dash/event/0ndl1dJcRmKDUPxTRjvdog/stream

{
  key1 : "value1",
  stream_parameter1 : "value2"
}

レスポンス本文の例

{
"stream_id":"c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL",
"stream_manifest":"https://dai.google.com/linear/dash/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/manifest.mpd",
"media_verification_url":"https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/",
"metadata_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/metadata",
"session_update_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/session",
"polling_frequency":10
}

エラー レスポンス

エラーの場合、標準の HTTP エラーコードが返され、JSON レスポンスは返されない できます。

JSON レスポンスを解析し、次の値を保存します。

stream_id
この値は、返されたストリームの識別に使用できます。
stream_manifest
この URL は、ストリーム再生のためにメディア プレーヤーに渡されます。
media_verification_url
この URL は、再生イベントをトラッキングするためのベース エンドポイントです。
metadata_url
この URL は、今後の配信に関する定期的な情報のポーリングに使用されます 説明します
session_update_url
この URL は、最初の送信時に送信されるストリーム リクエスト パラメータを更新するために使用されます。 ストリーム リクエスト。このリクエストのパラメータはすべて、 設定されます。
polling_frequency
更新された AdBreak メタデータを DAI API

2. 新しい AdBreak メタデータのポーリング

タイマーを設定して、新しい AdBreak メタデータをポーリング頻度でポーリングします。 指定します。ストリーム レスポンスで指定されていない場合は、デフォルトで 10 秒です

リクエスト本文の例

https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/metadata

レスポンス本文の例

{
   "tags":{
      "google_0492266569":{
         "ad":"0000229836_ad1",
         "ad_break_id":"0000229836",
         "type":"firstquartile"
      },
      "google_1560331148":{
         "ad":"0000229836_ad1",
         "ad_break_id":"0000229836",
         "type":"thirdquartile"
      },
      "google_1877686714378797835":{
         "ad":"0000229836_slate",
         "ad_break_id":"0000229836",
         "type":"progress"
      },
      "google_1vRyQBYPw_7Gg3MrZ6S5EjmV9aLje-YpW8QHed1DSlU":{
         "ad":"0000229835_ad1",
         "ad_break_id":"0000229835",
         "type":"progress"
      },
      "google_2032765498":{
         "ad":"0000229835_ad1",
         "ad_break_id":"0000229835",
         "type":"midpoint"
      },......
      "google_5646900623":{
         "ad":"0000229837_ad1",
         "ad_break_id":"0000229837",
         "type":"complete"
      }
   },
   "ads":{
      "0000229834_ad1":{
         "ad_break_id":"0000229834",
         "position":1,
         "duration":15.01,
         "title":"truman-e2e-creativeset4",
         "description":"truman-e2e-creativeset4 ad",
         "ad_system":"GDFP",
         "ad_id":"39066884",
         "creative_id":"58092079124",
         "clickthrough_url":"https://pubads.g.doubleclick.net/pcs/click?xai=AKAO...\u0026adurl=http://google.com",
         "universal_ad_id":{
            "id_value":"58092079124",
            "id_registry":"GDFP"
         }
      },
      "0000229834_slate":{
         "ad_break_id":"0000229834",
         "position":-1,
         "duration":14.974977777,
         "slate":true
      },...
   },
   "ad_breaks":{
      "0000229834":{
         "type":"mid",
         "duration":15.01,
         "expected_duration":29.984977776999997,
         "ads":1
      },....
   }
}

3. ID3 イベントをリッスンし、再生イベントを追跡する

動画ストリームで特定のイベントが発生したことを確認する手順は次のとおりです。 ID3 イベントを処理する手順は次のとおりです。

  1. メディア イベントをキューに保存し、各メディア ID とそのイベントを保存する タイムスタンプ(プレーヤーで表示される場合)。
  2. プレーヤーからの更新のたび、または設定された頻度(推奨)で 500 ミリ秒)、メディア イベント キューで最近再生されたイベントの イベントのタイムスタンプをプレイヘッドと比較します。
  3. 再生したメディア イベントについて、 保存されたミッドロール挿入点タグのメディア ID。保存されたタグは メディア ID の接頭辞しか含まれていないため、完全一致は不可能です。
  4. 「progress」を使用するユーザーがミッドロール挿入点内にいるかどうかを追跡できます。 これらのイベントをメディア検証エンドポイントに送信しないでください。その他のイベント そのメディア ID をメディア検証エンドポイントに追加して、GET 再生をトラッキングするためのリクエスト。
  5. キューからメディア イベントを削除します。

リクエスト本文の例

https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/

回答例

Accepted for asynchronous verification - HTTP/1.1 202 Accepted
Successful empty response - HTTP/1.1 204 No Content
Media verification not found - HTTP/1.1 404 Not Found
Media verification sent by someone else - HTTP/1.1 409 Conflict

トラッキング イベントは [ストリームのアクティビティ] で確認できます。 モニタリング

4. ライブ配信のセッション パラメータを更新する

ストリーミング終了後にセッション パラメータを調整することをおすすめします。 作成されます。これを行うには、セッション更新 URL にリクエストを送信します。

リクエスト本文の例

https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/session

{
  key1 : "value1",
  stream_parameter1 : "value2"
}

レスポンス本文の例

Successful response would be to look for - HTTP/1.1 200

制限事項

WebView 内で API を使用する場合、次の制限が適用されます。 ターゲティング:

  • UserAgent: ユーザー エージェント パラメータはブラウザ固有の値として渡されます。 基盤となるプラットフォームではなく
  • rdid idtype, is_lat: デバイス ID が適切に渡されていないため、 次のような機能があります。
    • フリークエンシー キャップ
    • 広告の順次ローテーション
    • オーディエンス セグメンテーションとターゲティング

ベスト プラクティス

ライブ ストリーム インデックスのメタデータ エンドポイントは、 対応する ID3 タグの接頭辞です。これは、 すべての検証ノードにすぐに ping するためのメタデータ エンドポイントです。

参考情報