在 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 插播投放流和以下流参数测试您的 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
插播清单中的结构构建经过身份验证的清单网址。
HbbTV 示例应用使用随机生成的唯一 adBreakId 值。在正式版应用中,adBreakId 值是一个字母数字字符串(例如
ab-001),每个广告插播时间点都会递增 1。验证 adBreakId 值对于广告插播时间点的所有观看者是否相同。如需获取 adBreakId 值,我们
建议使用
DAI 广告插播 API。
在生产环境中,请在 HbbTV 流事件 AD_BREAK_ANNOUNCE 中添加
adBreakId 值和 podDuration 值。
接下来,为您的 HbbTV 应用创建与 HbbTV 广播互动的应用主类。