Générer un jeton HMAC signé

Chaque demande de segment effectuée à l'aide de la diffusion de pods de redirection de segment doit inclure un jeton signé HMAC pour l'authentification, si vous n'utilisez pas les notifications précoces de coupure publicitaire.

Ce jeton peut être calculé une fois par coupure publicitaire et partagé entre toutes les sessions de flux.

Recueillir les paramètres de jeton

Rassemblez les informations suivantes à partir de la coupure publicitaire actuelle pour renseigner le corps du jeton.

Paramètres de jeton
custom_asset_key Obligatoire Clé personnalisée de l'élément de diffusion en direct, provenant de Google Ad Manager.
cust_params Facultatif Paramètres de ciblage personnalisé. Consultez les cust_params.
exp Obligatoire Horodatage de l'expiration de ce jeton en secondes.
network_code Obligatoire Code de réseau Ad Manager 360 de ce réseau.
pod_id Obligatoire Identifiant de la coupure publicitaire. Il doit s'agir d'un nombre entier commençant à 1 et augmentant d'une unité pour chaque coupure publicitaire.

Cette valeur doit être identique pour tous les utilisateurs qui consultent la même coupure publicitaire dans l'événement en cours.

pd Obligatoire, sauf pour les événements pour lesquels des coupures publicitaires sans durée sont activées. Durée de la coupure publicitaire, en millisecondes. Fait référence ci-dessus sous le nom ad_pod_duration.
scte35 Facultatif Signal SCTE-35 encodé en base64. Il appartient au client de s'assurer que le signal est correct. S'il est incorrect, un message est envoyé à l'en-tête HTTP X-Ad-Manager-Dai-Warning dans la réponse, et le signal est tout de même propagé pour créer une coupure publicitaire. Pour savoir comment l'insertion dynamique d'annonce utilise le signal SCTE-35, consultez les repères d'annonces compatibles.

Créer une chaîne de jeton

listez chaque paramètre par ordre alphabétique, au format name=value, en séparant chaque paire nom-valeur par un tilde (~).

Les paramètres facultatifs sans valeur peuvent être laissés en place avec une chaîne vide pour la valeur, ou supprimés entièrement.

format de la chaîne de jeton

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

Générer une signature HMAC

La signature HMAC est un hachage SHA-256 de la chaîne de jeton au format HEX. La clé secrète est la clé d'authentification HMAC associée à l'événement de diffusion en direct dans Google Ad Manager.

Chaîne de jeton de signature

Une fois générée, ajoutez la signature HMAC à la chaîne de jeton au format suivant.

~hmac={HMAC signature}

Chaîne de jeton encodée en URL

Ce jeton est transmis en tant que paramètre d'URL. Il doit donc être encodé au format URL pour plus de sécurité.

Exemple 1

Voici un exemple dans lequel les paramètres facultatifs non utilisés sont inclus sous forme de chaînes vides.

Chaîne de jeton

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

Clé secrète

A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F

Signature HMAC

86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88

Jeton signé

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

Jeton signé encodé en URL:

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

Exemple 2

Voici un exemple dans lequel les variables facultatives non renseignées sont complètement omises.

Chaîne de jeton

custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g3~exp=1489680000~network_code=6062~pd=180000~pod_id=5
Clé secrète
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F
Signature HMAC
6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9

Jeton signé

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

Jeton signé encodé en URL

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