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 アプリのメイン アプリケーション クラスを作成します。