使用 pod 服务发出的每个分段或清单请求都必须包含用于身份验证的 HMAC 签名令牌,作为早期广告插播通知的后备方案。
此令牌可针对每个广告插播时间点计算一次,并可在所有视频流会话中共享。
收集令牌参数
从当前广告插播时段收集以下信息,以填充令牌正文。
| 令牌参数 | ||
|---|---|---|
ad_break_id
|
如果未提供 pod_id 参数,则此参数为必需参数。
|
广告插播的字符串标识符。 |
custom_asset_key
|
如果未提供 event 参数,则此参数为必需参数。
|
Google Ad Manager 中的自定义直播素材资源键。 |
cust_params
|
可选 | 广告插播的自定义定位参数。 |
event
|
如果未提供 custom_asset_key 参数,则此参数为必需参数。
|
由 Google Ad Manager 生成的直播素材资源键。 |
exp
|
必需 | 相应令牌的到期时间戳(以秒为单位)。 |
network_code
|
如果提供了 custom_asset_key 参数,则为必需参数。
|
相应广告联盟的 Ad Manager 360 广告资源网代码。 |
pod_id
|
如果未提供 ad_break_id 参数,则此参数为必需参数。
|
广告插播的数字标识符。 |
pd
|
必需,但启用了无时长广告插播的活动除外。 | 广告插播时段的时长(以毫秒为单位)。 |
scte35
|
可选 | 广告插播时间点的 Base64 编码 SCTE-35 信号。 |
创建令牌字符串
按字母顺序列出每个参数,格式为 name=value,每个名称-值对之间以波浪号 (~) 分隔。
对于没有值的可选参数,您可以将其保留在原位,并将值设为空字符串,也可以将其完全移除。
令牌字符串格式
custom_asset_key={custom_asset_key}~exp={expiration}~network_code={network_code}~pd={pod_duration}~pod_id={ad_pod_index}~scte35={scte35_message}
生成 HMAC 签名
HMAC 签名是令牌字符串的 SHA-256 哈希(采用十六进制格式)。密钥是与 Google Ad Manager 中的直播活动相关联的 HMAC 身份验证密钥。
签名令牌字符串
生成后,请按以下格式将 HMAC 签名附加到令牌字符串中
~hmac={HMAC signature}
网址编码令牌字符串
此令牌会作为网址参数传递,因此必须进行网址编码,以确保安全。
示例 1
以下示例中包含未使用的可选参数(以空字符串的形式)。
令牌字符串
cust_params=~custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=
密钥
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F
HMAC 签名
ea1081cc1ab83cacd1e64073fc19e64616b2571249232917dc9f539cafb4b94e
已签名的令牌
cust_params=~custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=~hmac=ea1081cc1ab83cacd1e64073fc19e64616b2571249232917dc9f539cafb4b94e
经过网址编码的签名令牌:
cust_params%3D~custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~scte35%3D~hmac%3Dea1081cc1ab83cacd1e64073fc19e64616b2571249232917dc9f539cafb4b94e
示例 2
以下示例完全省略了未填充的可选变量。
令牌字符串
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~pod_id=5
密钥
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F
HMAC 签名
6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
已签名的令牌
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~pod_id=5~hmac=6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
网址编码格式的签名令牌
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~hmac%3D6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
示例 3
下面是一个包含 ad_break_id 的示例。
令牌字符串
ad_break_id=adbreak1~custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000
密钥
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F
HMAC 签名
327b23b80d032b0fa4c41b64a5e44fa7733af5bdbf173b7d89135aef05ae6d29
已签名的令牌
ad_break_id=adbreak1~custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~hmac=327b23b80d032b0fa4c41b64a5e44fa7733af5bdbf173b7d89135aef05ae6d29
网址编码格式的签名令牌
ad_break_id%3Dadbreak1~custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~exp%3D1489680000~network_code%3D6062~pd%3D180000~hmac%3D327b23b80d032b0fa4c41b64a5e44fa7733af5bdbf173b7d89135aef05ae6d29