本指南介绍了如何配置清单操纵器,以使用广告连播 片段 方法请求广告或 补位广告素材片段。
选择流式传输协议:
前提条件
在继续操作之前,您必须为连播投放重定向 动态广告插播 (DAI) 类型和编码配置文件设置直播活动。如需设置直播活动,请选择以下方法之一:
- Ad Manager 界面: 为 DAI设置直播。
- Ad Manager API: 使用客户端库调用
LiveStreamEventService.createLiveStreamEvents方法。将LiveStreamEvent.dynamicAdInsertionType参数设置为POD_SERVING_REDIRECT。 - 对请求进行身份验证: 使用片段重定向连播投放发出的每个片段请求都必须包含 HMAC 签名令牌以进行身份验证。为每个广告插播时间点计算一次此令牌,并在所有视频流会话中共享该令牌。 如需计算 HMAC 令牌,请参阅对广告连播请求进行身份验证。
设置直播活动后,请通过调用
DaiEncodingProfileService.getDaiEncodingProfilesByStatement
方法,从 Ad Manager 界面或 API 检索活动的编码配置文件。
检索内容流
当用户选择直播活动时,客户端应用会向 Google Ad Manager 发出视频流请求。在视频流响应中,应用会提取 Google DAI 会话 ID 和元数据,以包含在视频流清单请求中。
以下示例将 Google DAI 会话 ID 传递给清单操纵器:
https://MANIFEST_MANIPULATOR_URL/manifest.m3u8?DAI_stream_ID=SESSION_ID&network_code=NETWORK_CODE&DAI_custom_asset_key=CUSTOM_ASSET_KEY
在处理视频内容播放请求时,请存储请求中的 Google DAI 会话 ID 和 CUSTOM_ASSET_KEY,以便为 广告拼接做准备。
识别广告插播时间点片段并插入不连续性
在处理每个变体清单时,请识别视频流中的 EXT-X-CUE-IN 和 EXT-X-CUE-OUT 标记,它们表示广告插播时间点的开始和结束。
将 EXT-X-CUE-IN 和 EXT-X-CUE-OUT 标记替换为 EXT-X-DISCONTINUITY 元素,以便客户端视频播放器在内容和广告之间切换。
以下示例清单替换了 EXT-X-CUE-IN 和 EXT-X-CUE-OUT 标记:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXT-X-CUE-OUT:15.000
#EXTINF:5.000,
contentorigin.com/3.ts
#EXTINF:5.000,
contentorigin.com/4.ts
#EXTINF:5.000,
contentorigin.com/5.ts
#EXT-X-CUE-IN
#EXTINF:5.000,
contentorigin.com/6.ts
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4
以下示例展示了替换后的清单:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXTINF:5.000,
#EXT-X-DISCONTINUITY
{... Insert ad segments here ...}
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/6.mp4
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4
Google DAI 广告片段未加密。如果您的内容已加密,请在每个广告插播时间点的第一个广告片段之前插入 EXT-X-KEY:METHOD=NONE 元素,以移除加密。在广告插播时间点结束时,插入适当的 EXT-X-KEY,以重新添加加密。
跟踪即将到来的广告插播时间点的开始时间、时长和索引。
构建广告片段网址
将 EXT-X-DISCONTINUITY 标记之间的每个内容片段替换为指向广告连播片段方法的网址。
以下示例组装了一个广告连播片段。请注意,广告片段使用从零开始的索引:
https://dai.google.com/linear/pods/v1/seg/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=AD_SEGMENT_DURATION&pd=AD_BREAK_DURATION&stream_id=SESSION_ID&auth-token=HMAC
以下示例将广告连播片段插入到清单中:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.00,
contentorigin.com/1.ts
#EXTINF:5.00,
contentorigin.com/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=5000&so=0&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/1.ts?sd=5000&so=5000&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/2.ts?sd=5000&so=10000&pd=15000&stream_id=SESSION_ID
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
contentorigin.com/6.mp4
#EXTINF:5.00,
contentorigin.com/7.mp4
#EXTINF:5.00,
contentorigin.com/8.mp4
可选:安排广告插播时间点
为了提高填充率,请发送广告插播时间点提前通知 (EABN),其中包含广告连播时长、自定义定位参数和 SCTE-35 信号数据。如需了解更多 详情,请参阅发送广告插播时间点提前 通知。