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 サンプルアプリは、ランダムに生成された一意の adBreakId 値を使用します。本番環境のアプリでは、adBreakId の値は英数字の文字列(ab-001 など)で、ミッドロール挿入点ごとに 1 ずつ増えます。adBreakId の値が、ミッドロール挿入点のすべての視聴者で同じ値であることを確認します。adBreakId 値を取得するには、DAI 広告ブレーク API を使用することをおすすめします。本番環境では、HbbTV ストリーム イベント AD_BREAK_ANNOUNCE に adBreakId 値と podDuration 値を含めます。
次に、HbbTV ブロードキャストとやり取りする HbbTV アプリのメイン アプリケーション クラスを作成します。