ads_manager.js
で、ストリーム リクエストを行い、広告ポッド マニフェストを取得し、IMA ストリーム イベントをリッスンし、emsg イベントを IMA SDK に渡す IMA SDK StreamManager のラッパー クラスを定義します。
ads_manager.js
では、IMA HbbTV サンプルアプリは次のメソッドを設定します。
requestStream()
onStreamEvent()
onEmsgEvent()
loadAdPodManifest()
広告マネージャーを初期化する
広告マネージャー クラスを初期化し、IMA ストリーム イベントのリスナーを設定します。この呼び出しでは、VideoPlayer.setEmsgEventHandler()
メソッドを使用して emsg イベント ハンドラを設定します。
広告ポッド ストリームのリクエストを行う
Google アド マネージャーのネットワーク コードとストリームのカスタム アセットキーを使用して PodStreamRequest
オブジェクトを作成する AdManager.requestStream()
メソッドを作成します。次のストリーム パラメータを使用して、IMA サンプル DASH pod 配信ストリームで HbbTV アプリをテストします。
- ネットワーク コード:
'21775744923'
- カスタム アセットキー:
'hbbtv-dash'
広告ストリームのイベントをリッスンする
IMA ストリーム イベント STREAM_INITIALIZED
、AD_BREAK_STARTED
、AD_BREAK_ENDED
に対するアプリのレスポンスを処理する AdManager.onStreamEvent()
メソッドを作成します。
広告ストリームのメタデータを処理する
emsg イベント情報を IMA に渡すには、StreamManager.processMetadata()
メソッドを使用して AdManager.onEmsgEvent()
メソッドを作成します。動画プレーヤー クラスは、VideoPlayer.setEmsgEventHandler()
メソッドでこのメソッドを呼び出します。
広告ポッド マニフェストを読み込む
動画プレーヤーで広告ポッド マニフェストをプリロードする AdManager.loadAdPodManifest()
メソッドを作成します。メソッド: DASH Pod マニフェストの構造を使用してマニフェスト URL を作成します。
HbbTV サンプルアプリは、ランダムに生成された一意の podId
を使用します。本番環境アプリでは、podId
は 1 から始まり、広告ブレークごとに 1 ずつ増分する整数です。広告ブレークのすべての視聴者に対して podId
が同じ値であることを確認します。podId
を取得するには、Early Ad Break Notification(EABN)API を使用することをおすすめします。本番環境では、HbbTV ストリーム イベント AD_BREAK_ANNOUNCE
に podId
と podDuration
を含めます。
次に、HbbTV ブロードキャストとやり取りする HbbTV アプリのメイン アプリケーション クラスを作成します。