借助 IMA SDK,您可以轻松地将多媒体广告集成到网站和应用中。IMA SDK 可以从任何 符合 VAST 标准的广告服务器请求广告,并在您的应用中管理广告播放。借助 IMA DAI SDK,应用可以针对广告和内容视频(VOD 或直播内容)发出视频流请求。然后,SDK 会返回一个组合视频流,这样您就不必在应用内管理广告和内容视频之间的切换。
选择您感兴趣的 DAI 解决方案
Pod Serving DAI
借助 IMA SDK,您可以轻松地将多媒体广告集成到网站和应用中。IMA SDK 可以从任何 符合 VAST 标准的广告服务器请求广告,并在您的应用中管理广告播放。借助 IMA DAI SDK,应用可以针对广告和内容视频(VOD 或直播内容)发出视频流请求。然后,SDK 会返回一个组合视频流,这样您就不必在应用内管理广告和内容视频之间的切换。
本指南演示了如何使用 IMA DAI SDK 和视频播放器来播放 DAI Pod Serving 流,以进行直播和 VOD 流播放。如需查看或遵循已完成的集成示例,请下载 Pod Serving 示例。
IMA DAI Pod Serving 概览
StreamRequest
:用于定义向 Google 广告服务器发出的信息流请求的对象。必须使用ImaSdkFactory.createPodStreamRequest()
或ImaSdkFactory.createPodVodStreamRequest()
创建,以启用 Pod Serving。这些方法需要广告资源网代码,而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
:仅用于直播 - 由清单操纵器或使用 Pod Serving 的第三方合作伙伴提供的视频流网址。它应该要求您在发出请求之前插入 IMA DAI SDK 提供的视频流 ID。在这种情况下,视频流网址包含一个占位符"[[STREAMID]]"
,在发出请求之前,该占位符会被替换为视频流 ID。NETWORK_CODE
:您的 Ad Manager 360 账号的广告资源网代码。CUSTOM_ASSET_KEY
:仅用于直播 - 用于在 Ad Manager 360 中标识 Pod 服务事件的自定义素材资源键。此文件可由您的清单操纵器或第三方 Pod Serving 合作伙伴创建。API_KEY
:仅用于直播 - 可选的 API 密钥,可能需要此密钥才能从 IMA DAI SDK 中检索直播 ID。
Android DAI BasicExample 旨在播放各种不同的流类型,但对于 Pod Serving,它仅设置为播放单个流。将示例的变量部分更改为以下内容:
创建直播或 VOD Pod 视频流请求,以启用 Pod Serving
直播广告插播
移除了曾用于在构建各种流类型之间切换的方法 buildStreamRequest()
。然后,修改 requestAndPlayAds()
以调用 ImaSdkFactory.createPodStreamRequest()
来创建 Live Pod Serving 广告请求。
VOD 视频流 Pod Serving
移除了曾用于在构建各种流类型之间切换的方法 buildStreamRequest()
。然后,修改 requestAndPlayAds()
以调用 ImaSdkFactory.createPodVodStreamRequest()
来创建 VOD Pod Serving 广告请求。
创建视频流请求实例后,使用 AdsLoader.requestStream()
请求视频流:
修改和设置直播网址
直播广告插播
调用 StreamManager.getStreamId()
方法以获取媒体资源 ID。这需要插入到 STEAM_URL
中,以替换 "[[STREAMID]]"
。做出此更改后,使用 videoPlayer.setStreamUrl()
方法设置新的流网址,然后调用 videoPlayer.play()
方法开始播放流。
VOD 视频流 Pod Serving
- 调用
StreamManager.getStreamId()
方法以获取媒体资源 ID。 - 向视频技术合作伙伴 (VTP) 请求直播网址。
- 从 VTP 收到网址后,请使用该网址调用
StreamManager.loadThirdPartyStream()
方法来加载视频流,以及 VTP 返回的任何字幕。
对于 VOD Pod 投放请求,IMA 会在视频流加载完毕后调用 VideoStreamPlayer.loadUrl()
回调。如需开始播放直播,请将 videoPlayer.setStreamUrl()
和 videoPlayer.play()
调用添加到 VideoStreamPlayer.loadUrl()
回调中:
清理 IMA DAI 资产
当您使用 IMA DAI SDK 成功完成在 Pod Serving 视频流中请求和展示广告后,建议您在 Pod Serving 会话结束后清理所有资源。调用 StreamManager.destroy()
可停止视频流播放、停止所有广告跟踪并释放所有已加载的视频流素材资源。
如需查看 Android SDK 的其他使用示例,请参阅 GitHub 上的示例。