开始使用 SGAI

服务器引导式广告插播 (SGAI) 可提供 拼接效果如果您在 Google Cloud 控制台中 Ad Manager 广告资源网,则可以使用 SGAI。如果您没有使用 Pod Serving DAI 已启用,请与您的客户经理联系。

借助 SGAI,您可以使用 Pod Serving API 端点来创建数据流 检索广告元数据和广告连播清单。

如果您有清单操纵服务器,则可生成广告连播, 清单网址,并插入包含广告连播清单信息的广告标记 添加到内容流中。

或者,您也可以使用其他机制(如 与视频流清单中的广告标记不同在这些情况下,您的应用可以监听 其他事件,例如用户与数据流的互动、应用本身, 或推送通知在这些事件发生后,应用可以生成广告 广告连播清单网址,并告知播放器开始加载广告连播清单。

前提条件

在继续操作之前,请确保您拥有以下内容:

  • 您的 Google Ad Manager 广告资源网中已启用的 DAI Pod 投放。
  • 类型为 Pod 服务清单的直播活动。如需创建事件,请执行以下操作: 请参阅 设置 DAI 直播

遵循建议

在您之前 生成广告连播清单网址,我们建议您 调用 广告插播提前通知 (EABN) API 预期持续时间、定位信息 每个广告插播时间点的参数。

对于生产和测试视频流,请调用 EABN API,尤其是在您的广告 广告网络包含任何程序化广告系列。如需了解详情,请参阅 程序化直接交易的功能和指南

发出直播注册请求

当用户在您的视频播放器应用中开始内容流时, 包含定位参数的注册请求,以创建流式传输会话 到此结束如需详细了解如何发出直播注册请求,请参阅 Method:stream。 之后,您将获得 响应数据

以下示例会发出视频流注册请求:

纯文本 HTTP

  • 请求:
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"
}

Shell

  • 命令行:
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"
}

JavaScript

  • 使用 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 资源 Pod Serving API 的一个重要部分然后,将该网址传递给视频播放器,以开始 来加载广告连播

以下示例展示了广告连播清单网址的结构:

https://dai.google.com/linear/pods/v1/hls/network/51636543/custom_asset/pod_serving_hls_manifest_mp4/pod/101.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db:TUL&pd=120000

您可以根据广告插播时间点计算广告连播清单网址参数 从视频播放器检索到的信息或服务器通知。对于 有关这些参数的要求,请参阅 方法:Pod 清单

播放广告连播清单

在客户端视频播放器应用中,使用主视频播放器开始播放内容流, 并遵循视频播放器中有关如何观察 播放和广告投放时间(如果相关)。

如果您生成广告连播清单网址,并将这些网址插入到 观察视频播放器即将出现的广告插播事件,并确保 订阅 id3 事件。如果您设置广告投放时间 从客户端中断事件,创建时订阅 id3 事件。

报告展示和广告事件

当视频播放器在播放广告连播时,如果遇到 id3 计时的元数据, 监听广告事件 并对其进行处理 发送媒体验证 ping