与之前 Chromecast 和 DAI 之间的集成不同,CAF DAI SDK 非常注重维护 Cast 应用框架设定的标准和预期。因此,您无需对发送方应用进行大量自定义,即可管理 IMA 与发送方应用之间的双向通信。这些通信现在通过集成的 CAF 广告插播功能进行管理,而无需自定义消息系统在发送方应用和接收方之间进行通信。
根据发送方的不同,您可能仍需向发送方添加一些有限的代码,才能完全启用 CAF 广告插播支持,例如向 Web 发送方添加对可跳过广告的支持。
现在,除了支持 CAF 广告插播之外,还需要在从发送方发送到接收方的 CAF MediaInfo 对象中包含 DAI 流数据。您可以通过多种不同的方式选择发送此数据,例如,您可以对接收器上的 contentSourceID 进行硬编码,并仅通过 MediaInfo 对象发送 videoID;也可以向接收器发送任意标识符,然后从接收器查询在线数据库以获取实际的 DAI 参数。
不过,为简单起见,所有示例都将假定您为 MediaInfo 对象遵循以下简单结构和命名惯例:
contentId | 相应媒体内容的唯一标识符 | |
contentUrl | 如果 DAI StreamRequest 因任何原因失败,则加载的后备直播网址 | |
streamType | 对于直播,此值应设置为“LIVE”。对于 VOD 流,此值应设置为“BUFFERED” | |
customData | assetKey | 仅限直播。标识要加载的直播 |
contentSourceId | 仅限 VOD 视频流。标识包含所请求的媒体流的媒体 Feed。 | |
videoId | 仅限 VOD 视频流。用于标识指定媒体 Feed 中的所请求的视频流。 | |
ApiKey | 一个可选的 API 密钥,可能需要该密钥才能从 IMA DAI SDK 中检索视频流网址。 | |
senderCanSkip | 一个布尔值,用于让接收方知道发送设备是否能够显示“跳过”按钮,从而支持可跳过式广告 |
直播示例:
{
"media": {
"contentId": "bbb",
"contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/bbb.m3u8",
"streamType": "LIVE",
"customData": {
"assetKey": "sN_IYUG8STe1ZzhIIE_ksA",
"ApiKey": "",
"senderCanSkip": true
}
},
"credentials": "testCredentials"
}
VOD 视频流示例:
{
"media": {
"contentId": "tos",
"contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/tos.m3u8",
"streamType": "BUFFERED",
"customData": {
"contentSourceId": "2548831",
"videoId": "tears-of-steel",
"ApiKey": "",
"senderCanSkip": true
}
},
"credentials": "testCredentials"
}