借助 IMA SDK,您可以轻松地将多媒体广告集成到您的网站和应用中。IMA SDK 可以向任何 符合 VAST 规范的广告服务器请求广告,并管理应用中的广告播放。借助 IMA DAI SDK,应用可以针对广告和内容视频(视频点播或直播内容)发出视频流请求。然后,SDK 会返回一个合并的视频流,这样您就不必在应用内管理广告视频和内容视频之间的切换。
本指南演示了如何使用 IMA DAI SDK 搭配视频播放器来播放 DAI Pod Serving 直播和 VOD 视频流。如需查看或遵循已完成的集成示例,请下载 Pod 投放示例。
IMA DAI Pod Serving 概览
StreamRequest:一个对象,用于定义向 Google 广告服务器发出的直播请求。必须使用ImaSdkFactory.createPodStreamRequest()或ImaSdkFactory.createPodVodStreamRequest()创建,才能启用广告连播投放。这些方法需要广告资源网代码,createPodStreamRequest还需要自定义素材资源键和可选的 API 密钥。两者都包含其他可选参数。StreamManager:一个用于处理视频流与 IMA DAI SDK 之间通信的对象,例如触发跟踪 ping 和将视频流事件转发给发布商。
前提条件
已设置 IMA DAI SDK 的 Android 应用,用于播放包含 DAI 广告的视频流。如果您还没有此类应用,我们建议您从 Android DAI BasicExample 开始。BasicExample 包含本指南中引用的代码库。
您的应用必须使用
VideoStreamPlayerCallback.onUserTextReceived()发送 ID3 事件,IMA DAI 才能正常运行。请参阅此全方位服务 DAI 代码段示例。
设置 Pod Serving 变量
Pod Serving 所需的所有更改都在 SampleAdsWrapper.java 中完成。第一步是更新常量变量。
以下是要添加的广告连播直播请求常量:
STREAM_URL:仅用于直播 - 由清单操纵器或使用广告连播投放的第三方合作伙伴提供的视频流网址。它应该要求您在发出请求之前插入 IMA DAI SDK 提供的直播 ID。在这种情况下,直播网址包含一个占位符"[[STREAMID]]",在发出请求之前,该占位符会被替换为直播 ID。NETWORK_CODE:您的 Ad Manager 360 账号的广告资源网代码。CUSTOM_ASSET_KEY:仅用于直播 - 用于在 Ad Manager 360 中标识广告连播投放事件的自定义素材资源键。这可以由您的清单操纵器或第三方 Pod Serving 合作伙伴创建。API_KEY:仅用于直播 - 可选 API 密钥,可能需要此密钥才能从 IMA DAI SDK 检索直播 ID。
Android DAI BasicExample 旨在播放各种不同的直播类型,但对于 Pod Serving,它已设置为仅播放单个直播。将示例的变量部分更改为以下内容:
创建直播或 VOD 广告连播视频流请求,以启用广告连播投放
直播广告连播投放
移除了用于在构建各种流类型之间切换的方法 buildStreamRequest()。然后,修改 requestAndPlayAds() 以调用 ImaSdkFactory.createPodStreamRequest(),从而创建 Live Pod Serving 广告请求。
VOD 视频流 Pod 投放
移除了用于在构建各种流类型之间切换的方法 buildStreamRequest()。然后,修改 requestAndPlayAds() 以调用 ImaSdkFactory.createPodVodStreamRequest(),从而创建 VOD 广告连播投放广告请求。
创建直播请求实例后,使用 AdsLoader.requestStream() 请求直播:
修改和设置直播网址
直播广告连播投放
调用 StreamManager.getStreamId() 方法以获取数据流 ID。需要将其插入到 STEAM_URL 中,替换 "[[STREAMID]]"。完成此更改后,使用 videoPlayer.setStreamUrl() 方法设置新的直播网址,并调用 videoPlayer.play() 方法开始直播播放。
VOD 视频流 Pod 投放
- 调用
StreamManager.getStreamId()方法以获取数据流 ID。 - 向您的视频技术合作伙伴 (VTP) 请求直播网址。
- 从 VTP 收到网址后,调用
StreamManager.loadThirdPartyStream()方法,并传入该网址以加载视频流,同时传入 VTP 返回的所有字幕。
对于 VOD Pod 投放请求,IMA 会在视频流加载完毕后调用 VideoStreamPlayer.loadUrl() 回调。如需开始播放直播,请将 videoPlayer.setStreamUrl() 和 videoPlayer.play() 调用添加到 VideoStreamPlayer.loadUrl() 回调中:
清理 IMA DAI 资源
当您使用 IMA DAI SDK 成功完成在广告连播投放流中请求和展示广告后,我们建议您在广告连播投放会话完成后清理所有资源。调用 StreamManager.destroy() 可停止流播放、停止所有广告跟踪并释放所有已加载的流素材资源。
如需查看 Android SDK 的其他使用示例,请参阅 GitHub 上的示例。