服务器引导型广告插播 (SGAI) 会提供一个可在客户端设备上拼接的广告连播清单。如果您已在 Google Ad Manager 广告网络中启用 Pod 广告投放 DAI,则可以使用 SGAI。如果您尚未启用广告连播广告投放 DAI,请与您的客户经理联系。
使用 SGAI 时,您可以使用广告连播广告投放 API 端点创建用于检索广告元数据和广告连播清单的串流。
如果您有清单处理服务器,则可以根据首选规范生成广告连播清单网址,并在内容流中插入携带广告连播清单信息的广告标记。
或者,您也可以使用流式传输清单中的广告标记以外的其他机制来安排广告插播时间。在这些情况下,您的应用可以监听其他事件,例如用户与数据流、应用本身或推送通知的互动。在这些事件发生后,应用可以生成广告连播清单网址,并告知播放器开始加载广告连播清单。
前提条件
在继续之前,请确保您已准备好以下内容:
- 在您的 Google Ad Manager 广告联盟中启用了 DAI Pod 投放。
- 类型为广告连播投放清单的直播活动。如需创建活动,请参阅设置 DAI 直播。
遵循建议
在生成广告连播清单网址之前,我们建议您调用广告插播时间点提前通知 (EABN) API,以指定每个广告插播的预期时长、定位信息和其他参数。
对于正式版和测试版数据流,请调用 EABN API,尤其是当您的广告联盟有任何程序化广告系列时。如需了解详情,请参阅程序化直接交易的功能和指南。
发出流式传输注册请求
当用户在您的视频播放器应用中启动内容流式传输时,您可以发出包含定位参数的流式传输注册请求,以便在 Ad Manager 上创建流式传输会话。如需详细了解如何发出数据流注册请求,请参阅 Method:stream。之后,您会从请求中收到响应数据。
以下示例会发出流式注册请求:
- 请求:
authority: dai.google.com
method: POST
path: /ssai/pods/api/v1/network/51636543/custom_asset/hls-podserving-manifest/stream
scheme: https
content-type: application/x-www-form-urlencoded
cust_params=customID%253D1543216789%2526anotherKey%253Dvalue1%252Cvalue2
- 回答:
{
"manifest_format": "hls",
"media_verification_url": "https://dai.google.com/view/p/service/linear/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/loc/TUL/network/51636543/event/TFyZF0IoSpqvCLtLv8JdCw/media/",
"metadata_url": "https://dai.google.com/linear/pods/hls/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/metadata",
"polling_frequency": 10,
"session_update_url": "https://dai.google.com/linear/v1/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/session",
"stream_id": "24fd4e7c-95a0-42be-8874-00625139b9db:TUL"
}
- 命令行:
curl \
-H "Host: dai.google.com" \
-H "content-type: application/x-www-form-urlencoded" \
--data-binary "cust_params=channelID%253D1543216789%2526anotherKey%253Dvalue1%252Cvalue2" \
--compressed "https://dai.google.com/ssai/pods/api/v1/network/51636543/custom_asset/hls-podserving-manifest/stream"
- 输出:
{
"manifest_format": "hls",
"media_verification_url": "https://dai.google.com/view/p/service/linear/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/loc/TUL/network/51636543/event/TFyZF0IoSpqvCLtLv8JdCw/media/",
"metadata_url": "https://dai.google.com/linear/pods/hls/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/metadata",
"pod_manifest_url": "https://dai.google.com/linear/pods/v1/hls/event/TFyZF0IoSpqvCLtLv8JdCw/pod/$pod-id$.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db%3ATUL",
"polling_frequency": 10,
"session_update_url": "https://dai.google.com/linear/v1/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/session",
"stream_id": "24fd4e7c-95a0-42be-8874-00625139b9db:TUL"
}
- 使用 Fetch API:
const response = await fetch("https://dai.google.com/ssai/pods/api/v1/network/51636543/custom_asset/hls-podserving-manifest/stream", {
"headers": {
"content-type": "application/x-www-form-urlencoded",
},
"body": "cust_params=channelID%3D1543216789%26anotherKey%3Dvalue1%2Cvalue2",
"method": "POST",
});
const stream = await response.json();
console.log(stream);
- 控制台日志:
{
"stream_id": "24fd4e7c-95a0-42be-8874-00625139b9db:TUL",
"media_verification_url": "https://dai.google.com/view/p/service/linear/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/loc/TUL/network/51636543/event/TFyZF0IoSpqvCLtLv8JdCw/media/",
"metadata_url": "https://dai.google.com/linear/pods/hls/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/metadata",
"session_update_url": "https://dai.google.com/linear/v1/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/session",
"polling_frequency": 10,
"pod_manifest_url": "https://dai.google.com/linear/pods/v1/hls/event/TFyZF0IoSpqvCLtLv8JdCw/pod/$pod-id$.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db%3ATUL",
"manifest_format": "hls"
}
轮询广告插播时间点元数据
发出数据流注册请求后,轮询广告元数据。如需轮询,您可以在注册步骤中使用数据流响应中的 polling_frequence
设置计时器,以调用广告metadata。对于每项投票,您可能会在有广告和元数据可用时收到包含部分广告的列表。
生成广告连播清单网址
为 Pod Serving API 的Pod 资源构建网址。然后,将网址传递给视频播放器,以开始加载广告连播。
以下示例演示了广告连播清单网址的结构:
https://dai.google.com/linear/pods/v1/hls/network/51636543/custom_asset/pod_serving_hls_manifest_mp4/ad_break_id/ab101.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db:TUL&pd=120000
您可以根据从视频播放器或服务器通知检索到的广告插播时间点信息计算广告连播清单网址参数。如需了解这些参数的要求,请参阅方法:Pod 清单。
播放广告连播清单
在客户端视频播放器应用中,使用主要视频播放器开始内容流式传输播放,并按照视频播放器的相关文档(如有)观察播放和广告时间表。
如果您生成广告连播清单网址并将其插入服务器端的清单中,请观察视频播放器的即将到来的广告插播时间点事件,并确保在每次广告插播播放期间订阅 id3 事件。如果您从客户端安排广告插播事件,请在创建时订阅 id3 事件。
报告展示次数和广告事件
当视频播放器播放广告连播并遇到 ID3 时间戳元数据时,监听视频播放器触发的广告事件并对其进行处理,以发送媒体验证 ping。