使用 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