Gerar um token HMAC assinado

Cada solicitação de segmento ou manifesto feita usando a veiculação de pods precisa incluir um token assinado por HMAC para autenticação, como um substituto das notificações de intervalo de anúncio antecipadas.

Esse token pode ser calculado uma vez por intervalo de anúncio e compartilhado em todas as sessões de stream.

Coletar parâmetros de token

Reúna as informações a seguir do intervalo de anúncio atual para preencher o corpo do token.

Parâmetros de token
ad_break_id Obrigatório se o parâmetro pod_id não for fornecido. O identificador de string do intervalo de anúncio.
custom_asset_key Obrigatório se o parâmetro event não for fornecido. A chave de recurso personalizada da transmissão ao vivo do Google Ad Manager.
cust_params Opcional Os parâmetros de segmentação personalizados para o intervalo de anúncio.
event Obrigatório se o parâmetro custom_asset_key não for fornecido. A chave de recurso da transmissão ao vivo gerada pelo Google Ad Manager.
exp Obrigatório Timestamp de expiração desse token em segundos.
network_code Obrigatório se o parâmetro custom_asset_key for fornecido. O código de rede do Ad Manager 360 para essa rede.
pod_id Obrigatório se o parâmetro ad_break_id não for fornecido. O identificador numérico do intervalo de anúncio.
pd Obrigatório, exceto para eventos com intervalos de anúncio sem duração ativados. A duração em milissegundos do intervalo de anúncio.
scte35 Opcional O sinal SCTE-35 codificado em Base64 para o intervalo de anúncio.

Criar string de token

Liste cada parâmetro em ordem alfabética, no formato name=value, com cada par nome-valor separado por um caractere til (~).

Os parâmetros opcionais sem um valor podem ser deixados no lugar com uma string vazia para o valor ou removidos completamente.

Formato da string de token

custom_asset_key={custom_asset_key}~exp={expiration}~network_code={network_code}~pd={pod_duration}~pod_id={ad_pod_index}~scte35={scte35_message}

Gerar assinatura HMAC

A assinatura HMAC é um hash SHA-256 da string de token no formato HEX. A chave secreta é a chave de autenticação HMAC associada ao evento de transmissão ao vivo no Google Ad Manager.

Assinar string de token

Depois de gerada, anexe a assinatura HMAC à string de token no formato a seguir

~hmac={HMAC signature}

Codificar string de token para URL

Esse token é transmitido como um parâmetro de URL. Portanto, ele precisa ser codificado para URL por segurança.

Exemplo 1

Confira um exemplo em que os parâmetros opcionais não usados são incluídos como empty strings.

String de token

cust_params=~custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=

Chave do secret

A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F

Assinatura HMAC

ea1081cc1ab83cacd1e64073fc19e64616b2571249232917dc9f539cafb4b94e

Token assinado

cust_params=~custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=~hmac=ea1081cc1ab83cacd1e64073fc19e64616b2571249232917dc9f539cafb4b94e

Token assinado codificado para URL:

cust_params%3D~custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~scte35%3D~hmac%3Dea1081cc1ab83cacd1e64073fc19e64616b2571249232917dc9f539cafb4b94e

Exemplo 2

Confira um exemplo em que as variáveis opcionais não preenchidas são omitidas completamente.

String de token

custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~pod_id=5
Chave do secret
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F
Assinatura HMAC
6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9

Token assinado

custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~pod_id=5~hmac=6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9

Token assinado codificado para URL

custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~hmac%3D6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9

Exemplo 3

Confira um exemplo com ad_break_id.

String de token

ad_break_id=adbreak1~custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000
Chave do secret
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F
Assinatura HMAC
327b23b80d032b0fa4c41b64a5e44fa7733af5bdbf173b7d89135aef05ae6d29

Token assinado

ad_break_id=adbreak1~custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~hmac=327b23b80d032b0fa4c41b64a5e44fa7733af5bdbf173b7d89135aef05ae6d29

Token assinado codificado para URL

ad_break_id%3Dadbreak1~custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~exp%3D1489680000~network_code%3D6062~pd%3D180000~hmac%3D327b23b80d032b0fa4c41b64a5e44fa7733af5bdbf173b7d89135aef05ae6d29

Gerador de token