在 ads_manager.js
中,为 IMA SDK StreamManager 定义一个封装容器类,该类用于发出视频流请求、获取广告连播清单、监听 IMA 视频流事件,并将 emsg 事件传递给 IMA SDK。
在 ads_manager.js
中,IMA HbbTV 示例应用设置了以下方法:
requestStream()
onStreamEvent()
onEmsgEvent()
loadAdPodManifest()
初始化广告管理器
初始化广告管理器类,并为 IMA 流事件设置监听器。在此调用中,使用 VideoPlayer.setEmsgEventHandler()
方法设置 emsg 事件处理脚本。
请求广告联播视频流
创建 AdManager.requestStream()
方法,以使用您的 Google Ad Manager 广告资源网代码和视频流的自定义素材资源键来创建 PodStreamRequest
对象。使用 IMA 示例 DASH pod 提供以下串流参数的串流来测试您的 HbbTV 应用:
- 广告资源网代码:
'21775744923'
- 自定义资源键:
'hbbtv-dash'
监听广告流事件
创建 AdManager.onStreamEvent()
方法来处理应用对 IMA 流事件 STREAM_INITIALIZED
、AD_BREAK_STARTED
和 AD_BREAK_ENDED
的响应。
处理广告流元数据
如需将 emsg 事件信息传递给 IMA,请使用 StreamManager.processMetadata()
方法创建 AdManager.onEmsgEvent()
方法。视频播放器类通过 VideoPlayer.setEmsgEventHandler()
方法调用此方法。
加载广告插播清单
创建 AdManager.loadAdPodManifest()
方法,以使用视频播放器预加载广告连播清单。使用方法:DASH Pod 清单中的结构构建清单网址。
HbbTV 示例应用使用随机生成的唯一 podId
。在正式版应用中,podId
是一个从 1 开始的整数,每次插播广告时都会递增 1。验证广告插播时段的所有观看者的 podId
是否具有相同的值。为了获得 podId
,我们建议使用广告插播提前通知 (EABN) API。在生产环境中,请在 HbbTV 流事件 AD_BREAK_ANNOUNCE
中添加 podId
和 podDuration
。
接下来,为您的 HbbTV 应用创建与 HbbTV 广播互动的应用主类。