L'API Dynamic Ad Insertion vous permet de demander et de suivre des flux de vidéo à la demande (VOD) pour l'insertion dynamique d'annonce. Les flux HLS et DASH sont acceptés.
Service: dai.google.com
Le chemin d'accès de la méthode stream
est relatif à https://dai.google.com
.
Méthode: stream
Méthodes | |
---|---|
stream |
POST /ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream
Crée un flux d'insertion dynamique d'annonce HLS pour la source de contenu et l'ID vidéo donnés.
Crée un flux d'insertion dynamique d'annonce DASH pour la source de contenu et l'ID vidéo donnés. |
Requête HTTP
POST https://dai.google.com/ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream
POST https://dai.google.com/ondemand/v1/dash/content/{content-source}/vid/{video-id}/stream
En-tête de requête
Paramètres | |
---|---|
api‑key |
string La clé API fournie lors de la création d'un flux doit être valide pour le réseau de l'éditeur. Au lieu de la fournir dans le corps de la requête, la clé API peut être transmise dans l'en-tête d'autorisation HTTP au format suivant: Authorization: DCLKDAI key="<api-key>" |
Paramètres de chemin d'accès
Paramètres | |
---|---|
content-source |
string ID CMS du flux. |
video-id |
string ID vidéo du flux. |
Corps de la requête
Le corps de la requête est de type application/x-www-form-urlencoded
et contient les paramètres suivants:
Paramètres | ||
---|---|---|
dai-ssb |
Facultatif | Définissez la valeur sur |
Paramètres de ciblage dans Ad Manager | Facultatif | Paramètres de ciblage supplémentaires : |
Remplacer les paramètres de flux | Facultatif | Remplacer les valeurs par défaut d'un paramètre de création de flux |
Authentification HMAC | Facultatif | Authentifiez-vous à l'aide d'un jeton basé sur HMAC. |
Corps de la réponse
Si la requête aboutit, le corps de la réponse contient un nouveau Stream
. Pour les flux de balisage côté serveur, ce champ Stream
ne contient que les champs stream_id
et stream_manifest
.
Open Measurement
Le champ Verifications
contient des informations pour la validation Open Measurement des flux de balisage côté serveur.
Verifications
contient un ou plusieurs éléments Verification
qui répertorient les ressources et les métadonnées dont vous avez besoin pour vérifier la lecture des créations à l'aide d'un code de mesure tiers.
Seule la valeur JavaScriptResource
est acceptée. Pour en savoir plus, consultez l'IAB Tech Lab et les spécifications VAST 4.1.
Méthode: vérification multimédia
Lorsque vous rencontrez un identifiant de support publicitaire pendant la lecture, envoyez immédiatement une requête à l'aide de media_verification_url
à partir du point de terminaison stream
. media_verification_url
est un chemin absolu.
Les requêtes de validation multimédia ne sont pas nécessaires pour les flux de balisage côté serveur, pour lesquels le serveur lance la validation du média.
Les requêtes envoyées au point de terminaison media verification
sont idempotentes.
Méthodes | |
---|---|
media verification |
GET {media_verification_url}/{ad_media_id}
Notifie l'API d'un événement de validation multimédia. |
Requête HTTP
GET {media-verification-url}/{ad-media-id}
Corps de la réponse
media verification
renvoie les réponses suivantes:
HTTP/1.1 204 No Content
si la validation multimédia aboutit et que tous les pings sont envoyés.HTTP/1.1 404 Not Found
si la requête ne peut pas valider le contenu multimédia en raison d'un format d'URL incorrect ou d'un délai d'expiration.HTTP/1.1 404 Not Found
si une précédente demande de validation pour cette pièce d'identité a abouti.HTTP/1.1 409 Conflict
si une autre requête envoie déjà des pings à ce moment-là.
ID de support publicitaire (HLS)
Les identifiants de support publicitaire sont encodés dans les métadonnées temporelles HLS à l'aide de la clé TXXX
, réservée aux frames "informations textuelles définies par l'utilisateur". Le contenu de la trame ne sera pas chiffré et commencera toujours par le texte "google_"
.
L'intégralité du contenu du cadre doit être ajoutée à la fin de media_verification_url pour chaque demande de validation d'annonce.
ID d'éléments multimédias de l'annonce (DASH)
Les identifiants de support publicitaire seront insérés dans le fichier manifeste via l'élément EventStream
de DASH.
Chaque EventStream
aura un URI d'ID de schéma de urn:google:dai:2018
.
Ils contiendront des événements dont l'attribut messageData
contient un ID d'élément multimédia de l'annonce commençant par “google_”
. L'intégralité du contenu de l'attribut messageData
doit être ajoutée à media_verification_url pour chaque demande de validation des annonces.
Données de réponse
Flux
Un flux permet d'afficher la liste de toutes les ressources d'un nouveau flux au format JSON .Représentation JSON |
---|
{ "stream_id": string, "total_duration": number, "content_duration": number, "valid_for": string, "valid_until": string, "subtitles": [object(Subtitle)], "hls_master_playlist": string, "stream_manifest": string, "media_verification_url": string, "apple_tv": object(AppleTV), "ad_breaks": [object(AdBreak)], } |
Champs | |
---|---|
stream_id |
string Identifiant de flux. |
total_duration |
number Durée de la diffusion en secondes. |
content_duration |
number Durée du contenu sans annonces, en secondes. |
valid_for |
string La durée du flux est valide, au format "00h00m00s". |
valid_until |
string Date jusqu'auquel le flux est valide, au format RFC 3339. |
subtitles |
[object(Subtitle)] Liste des sous-titres Omis s'il est vide. HLS uniquement. |
hls_master_playlist |
string (OBSOLÈTE) URL de la playlist principale HLS. Utilisez stream_manifest. HLS uniquement. |
stream_manifest |
string Fichier manifeste du flux. Correspond à la playlist principale dans HLS et à la description de la présentation du média dans DASH. Il s'agit du seul champ, à part "stream_id", qui est présent dans la réponse lors de la création d'un flux de balisage côté serveur. |
media_verification_url |
string URL de validation multimédia. |
apple_tv |
object(AppleTV) Informations facultatives spécifiques aux appareils Apple TV. HLS uniquement. |
ad_breaks |
[object(AdBreak)] Liste des coupures publicitaires. Omis s'il est vide. |
AppleTV
Apple TV contient des informations spécifiques aux appareils Apple TV.Représentation JSON |
---|
{ "interstitials_url": string, } |
Champs | |
---|---|
interstitials_url |
string URL des interstitiels : |
AdBreak
Une coupure publicitaire décrit une seule coupure publicitaire dans le flux. Il contient une position, une durée, un type (mid-pre/post) et une liste d'annonces.Représentation JSON |
---|
{ "type": string, "start": number, "duration": number, "ads": [object(Ad)], } |
Champs | |
---|---|
type |
string Les types de coupures publicitaires sont valides: mid, pre et post. |
start |
number Position dans le flux où la coupure publicitaire commence, en secondes. |
duration |
number Durée de la coupure publicitaire, en secondes. |
ads |
[object(Ad)] Liste des annonces. Omis s'il est vide. |
Annonce
"Annonce" décrit une annonce dans le flux. Il contient la position de l'annonce dans la coupure, sa durée et certaines métadonnées facultatives.Représentation JSON |
---|
{ "seq": number, "start": number, "duration": number, "title": string, "description": string, "advertiser": string, "ad_system": string, "ad_id": string, "creative_id": string, "creative_ad_id": string, "deal_id": string, "clickthrough_url": string, "icons": [object(Icon)], "wrappers": [object(Wrapper)], "events": [object(Event)], "verifications": [object(Verification)], "universal_ad_id": object(UniversalAdID), "companions": [object(Companion)], "interactive_file": object(InteractiveFile), } |
Champs | |
---|---|
seq |
number Position de l'annonce dans la coupure. |
start |
number Position dans le flux où l'annonce démarre, en secondes. |
duration |
number Durée de l'annonce, en secondes. |
title |
string Titre facultatif de l'annonce. |
description |
string Description facultative de l'annonce. |
advertiser |
string Identifiant d'annonceur facultatif. |
ad_system |
string Système publicitaire facultatif. |
ad_id |
string ID d'annonce facultatif. |
creative_id |
string ID de création facultatif. |
creative_ad_id |
string ID d'annonce de création facultatif. |
deal_id |
string ID d'accord facultatif. |
clickthrough_url |
string URL de destination facultative. |
icons |
[object(Icon)] Liste d'icônes, omise si le champ est vide. |
wrappers |
[object(Wrapper)] Liste des wrappers. Omis s'il est vide. |
events |
[object(Event)] Liste des événements de l'annonce. |
verifications |
[object(Verification)] Entrées de validation Open Measurement facultatives qui répertorient les ressources et les métadonnées requises pour exécuter le code de mesure tiers permettant de vérifier la lecture des créations. |
universal_ad_id |
object(UniversalAdID) ID d'annonce universel facultatif. |
companions |
[object(Companion)] Créations associées facultatives qui peuvent s'afficher avec cette annonce. |
interactive_file |
object(InteractiveFile) Création interactive (SIMID) facultative à afficher pendant la lecture de l'annonce. |
Événement
"Événement" contient le type d'événement et l'heure de présentation d'un événement.Représentation JSON |
---|
{ "time": number, "type": string, } |
Champs | |
---|---|
time |
number Heure de présentation de cet événement. |
type |
string Type de cet événement. |
Sous-titre
Le sous-titre décrit une piste de sous-titres side-car pour le flux vidéo. Il stocke deux formats de sous-titres: TTML et WebVTT. L'attribut TTMLPath contient l'URL du fichier side-car TTML et l'attribut WebVTTPath contient également une URL vers le fichier side-car WebVTT.Représentation JSON |
---|
{ "language": string, "language_name": string, "ttml": string, "webvtt": string, } |
Champs | |
---|---|
language |
string Code de langue, tel que "en" ou "de". |
language_name |
string Nom descriptif de la langue. Elle permet de différencier un ensemble spécifique de sous-titres si plusieurs ensembles existent pour la même langue. |
ttml |
string URL facultative du fichier side-car TTML. |
webvtt |
string URL facultative du fichier side-car WebVTT. |
Icon
L'icône contient des informations sur une icône VAST.Représentation JSON |
---|
{ "click_data": object(ClickData), "creative_type": string, "click_fallback_images": [object(FallbackImage)], "height": int32, "width": int32, "resource": string, "type": string, "x_position": string, "y_position": string, "program": string, "alt_text": string, } |
Champs | |
---|---|
click_data |
object(ClickData) |
creative_type |
string |
click_fallback_images |
[object(FallbackImage)] |
height |
int32 |
width |
int32 |
resource |
string |
type |
string |
x_position |
string |
y_position |
string |
program |
string |
alt_text |
string |
ClickData
ClickData contient des informations sur un clic sur une icône.Représentation JSON |
---|
{ "url": string, } |
Champs | |
---|---|
url |
string |
FallbackImage
L'image de remplacement contient des informations sur une image de remplacement VAST.Représentation JSON |
---|
{ "creative_type": string, "height": int32, "width": int32, "resource": string, "alt_text": string, } |
Champs | |
---|---|
creative_type |
string |
height |
int32 |
width |
int32 |
resource |
string |
alt_text |
string |
Wrapper
Le wrapper contient des informations sur une annonce wrapper. Il n'inclut pas d'ID d'accord s'il n'existe pas.Représentation JSON |
---|
{ "system": string, "ad_id": string, "creative_id": string, "creative_ad_id": string, "deal_id": string, } |
Champs | |
---|---|
system |
string Identifiant de système publicitaire. |
ad_id |
string Identifiant d'annonce utilisé pour l'annonce wrapper. |
creative_id |
string ID de création utilisé pour l'annonce wrapper. |
creative_ad_id |
string Identifiant de l'annonce de création utilisé pour l'annonce wrapper. |
deal_id |
string ID d'accord facultatif pour l'annonce wrapper. |
Validation
Verification contient des informations pour Open Measurement, qui facilitent la mesure tierce de la visibilité et de la validation. Actuellement, seules les ressources JavaScript sont acceptées. Voir https://iabtechlab.com/standards/open-measurement-sdk/Représentation JSON |
---|
{ "vendor": string, "java_script_resources": [object(JavaScriptResource)], "tracking_events": [object(TrackingEvent)], "parameters": string, } |
Champs | |
---|---|
vendor |
string Le fournisseur de services de validation. |
java_script_resources |
[object(JavaScriptResource)] Liste des ressources JavaScript pour la validation. |
tracking_events |
[object(TrackingEvent)] Liste des événements de suivi pour la validation. |
parameters |
string Chaîne opaque transmise au code de validation d'amorçage. |
JavaScriptResource
JavaScriptResource contient des informations à valider via JavaScript.Représentation JSON |
---|
{ "script_url": string, "api_framework": string, "browser_optional": boolean, } |
Champs | |
---|---|
script_url |
string URI vers la charge utile JavaScript. |
api_framework |
string APIFramework est le nom du framework vidéo exécutant le code de validation. |
browser_optional |
boolean Indique si ce script peut être exécuté en dehors d'un navigateur. |
TrackingEvent
TrackingEvent contient des URL qui doivent être pinguées par le client dans certaines situations.Représentation JSON |
---|
{ "event": string, "uri": string, } |
Champs | |
---|---|
event |
string Type d'événement de suivi. Actuellement, la seule option est "verificationNotExecuted", comme indiqué dans la spécification VAST 4.1. |
uri |
string Événement de suivi à pinguer. |
UniversalAdID
UniversalAdID est utilisé pour fournir un identifiant de création unique conservé dans tous les systèmes publicitaires.Représentation JSON |
---|
{ "id_value": string, "id_registry": string, } |
Champs | |
---|---|
id_value |
string Identifiant d'annonce universel de la création sélectionnée pour l'annonce. |
id_registry |
string Chaîne permettant d'identifier l'URL du site Web du registre sur lequel l'ID d'annonce universel de la création sélectionnée est répertorié. |
Annonce associée
"Companion" contient des informations sur les annonces associées qui peuvent s'afficher avec l'annonce.Représentation JSON |
---|
{ "click_data": object(ClickData), "creative_type": string, "height": int32, "width": int32, "resource": string, "type": string, } |
Champs | |
---|---|
click_data |
object(ClickData) Données sur les clics pour cette création associée. |
creative_type |
string Attribut CreativeType sur le nœud <StaticResource> dans VAST s'il s'agit d'une création associée de type statique. |
height |
int32 Hauteur en pixels de cette création associée. |
width |
int32 Largeur en pixels de cette création associée. |
resource |
string Pour les créations associées statiques et iFrame, il s'agit de l'URL à charger et à afficher. Pour les créations associées HTML, il s'agit de l'extrait de code HTML à afficher en tant que création associée. |
type |
string Type de cette création associée. Il peut s'agir d'un élément statique, iFrame ou HTML. |
InteractiveFile
InteractiveFile contient des informations pour la création interactive (par exemple, SIMID) à afficher lors de la lecture de l'annonce.Représentation JSON |
---|
{ "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, } |
Champs | |
---|---|
resource |
string URL de la création interactive. |
type |
string Type MIME du fichier fourni en tant que ressource. |
variable_duration |
boolean Indique si cette création peut demander une prolongation de la durée. |
ad_parameters |
string Valeur du nœud <AdParameters> dans le fichier VAST. |