使用 Early Ad Break Notification API
- 要为其创建广告插播时间点的相应直播的标识符。此标识符可以是以下各项之一:
- 直播的“素材资源键”。
- 直播的“自定义素材资源键”,可让您通过指定自己的标识符字符串来管理自己的键空间。
- 直播的“内容来源 ID”和“内容 ID”。
注意:您必须已获授权才能使用此标识符类型。如需了解详情,请与您的客户经理联系。
- 下一个广告插播时段的预计时长。时长需要尽可能接近实际广告插播时长。
除了这些必需字段之外,您还可以发送自定义定位参数、要应用的广告连播模板的名称,或 SCTE35 Cue Out 数据(如果有)。
前提条件
如需使用 EABN API,您必须创建一个服务账号,并将该账号添加到您的 Google Ad Manager 广告联盟。
创建服务账号
如需创建用于调用 EABN API 的服务账号,请完成以下步骤:- 如果您有 Google Cloud 账号,请使用 IAM 模块创建服务账号。如需了解详情,请参阅创建和管理服务账号。- 如果您没有 Google Cloud 账号,请完成以下步骤,在 Google API 控制台中创建一个:
- 创建新项目或选择现有项目。
- 在凭据页面中,点击管理服务账号。
- 在服务账号页面上,点击创建服务账号。
- 在创建服务账号页面中,输入账号详细信息。然后,点击创建。
创建服务账号后,复制该账号的 JSON 密钥,该密钥用于身份验证。
将服务账号添加到 Google Ad Manager 广告资源网
如需将服务账号添加到您的广告联盟,请完成添加服务账号用户以启用 API 访问权限中的步骤。
启用 API
创建服务账号后,请向您的客户经理提供以下信息,以便为您的账号启用该 API:
- 您的 Google Cloud 账号电子邮件地址
- 您的服务账号
- 您的 Google Ad Manager 广告资源网的广告资源网代码。
在您的客户经理启用该 API 后,请完成以下步骤以启用该 API:
- 在 Google API 库中,搜索“Google Ad Manager Video API”。
- 点击启用。
注意:如果搜索结果中未显示该 API,请与您的客户经理联系,确认您的账号是否已启用 DAI API。
使用此 API
您可以使用 JSON/REST 请求调用 EABN API。
授权
如需对 EABN API 进行授权调用,您需要使用服务账号的 JSON 密钥和范围 https://www.googleapis.com/auth/video-ads
生成 OAuth2 服务账号凭据。如需了解详情,请参阅将 OAuth 2.0 用于服务器到服务器应用。
您必须在每次调用 EABN API 时将生成的授权令牌作为 Auth 标头添加到请求中。
发送广告插播提前通知
如需发送广告插播提前通知,请向以下三个有效的 EABN 网址之一发送 POST 请求,具体取决于您希望如何指定直播。以下部分介绍了这些网址之间的区别,并提供了请求和响应示例。
网址
广告插播提前通知有三个有效网址。您可以使用这三种类型来创建广告插播时间点 (POST
) 或获取分配的广告插播时间点列表 (GET
)。
如需使用直播的素材资源键,请使用以下命令:
POST admanagervideo.googleapis.com/v1/networks/{network_code}/assets/{asset_key}/adBreaks
GET admanagervideo.googleapis.com/v1/networks/{network_code}/assets/{asset_key}/adBreaks
如需使用直播的自定义素材资源键,请使用以下命令:
POST admanagervideo.googleapis.com/v1/networks/{network_code}/customAssets/{custom_asset_key}/adBreaks
GET admanagervideo.googleapis.com/v1/networks/{network_code}/customAssets/{custom_asset_key}/adBreaks
如需使用内容来源 ID 和 Content ID 方法,请使用:
POST admanagervideo.googleapis.com/v1/networks/{network_code}/sources/{content_source_id}/content/{content_id}/adBreaks
GET admanagervideo.googleapis.com/v1/networks/{network_code}/sources/{content_source_id}/content/{content_id}/adBreaks
对于所有参数:
network_code
代表您的 Google Ad Manager 广告资源网的广告资源网代码。asset_key
表示直播详情页面中显示的资产键。custom_asset_key
代表直播的自定义素材资源键。content_source_id
表示 Google Ad Manager 中内容来源的 ID。content_id
表示 Google Ad Manager 中某项内容的 ID。
注意:指定的 content_source_id
/content_id
对必须与 Google Ad Manager 中的直播相关联。
请求正文 - 仅用于创建广告插播时间点 (POST)
对象 | ||
---|---|---|
| 必填 | 此广告插播时段的时长,采用 Google 的标准时长格式(xx.xxxs,其中 xx.xxx 表示秒数) |
| 可选 | 这些键值对会加入到此广告插播时间点的广告请求中,以便在 AM360 中执行自定义条件定位,以
并通过
.
|
| 可选 | 广告连播模板名称 |
| 可选 | scte35 cue out 中采用 Base-64 编码的数据。可以包含
或
命令。
|
示例请求
创建广告插播时间点
POST admanagervideo.googleapis.com/v1/networks/.../sources/.../content/.../adBreaks
Content-Type: application/json
Authorization: Bearer …
{
"expectedDuration": "30s",
"scte35CueOut": "/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==",
"customParams": "param1=value1¶m2=value2",
"podTemplateName": "podtemplate"
}
响应正文
响应正文包含在 adBreak
对象中发送的所有参数,以及一个额外的 name
字段,其中包含所创建广告插播的 Google 通用标准 ID。系统会以以下格式返回此字段:
networks/{network_code}/assets/{asset_key}/adBreaks/{ad_break_id}
示例响应
HTTP/1.1 200 OK
{
"name": "networks/.../assets/.../adBreaks/1",
"expectedDuration": "30s",
"scte35CueOut": "/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==",
"customParams": "param1=value1¶m2=value2",
"podTemplateName": "podtemplate"
}
列出分配的广告插播时间点
GET admanagervideo.googleapis.com/v1/networks/.../sources/.../content/.../adBreaks
Content-Type: application/json
Authorization: Bearer …
响应正文
响应正文包含广告插播时间点,其中为分配给串流的每个广告插播时间点添加了 breakState
字段。breakState
字段支持以下值:
// Ad break decisioning has started.
BREAK_STATE_DECISIONED
// Break has started to be delivered to end users.
BREAK_STATE_COMPLETE
示例响应
HTTP/1.1 200 OK
{
"name": "networks/.../assets/.../adBreaks/1",
"expectedDuration": "30s",
"breakState": "BREAK_STATE_COMPLETE"
}