L'API Dynamic Ad Insertion vous permet de demander et de suivre les flux de vidéo à la demande (VOD) avec insertion dynamique d'annonces. 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 DAI HLS pour la source de contenu et l'ID vidéo donnés.
Crée un flux DASH DAI 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 du 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 cette valeur sur |
Paramètres de ciblage DFP | Facultatif | Paramètres de ciblage supplémentaires |
Remplacer les paramètres de flux | Facultatif | Remplacez les valeurs par défaut d'un paramètre de création de flux. |
Authentification HMAC | Facultatif | S'authentifier à 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 nouvel élément Stream
. Pour les flux de balisage côté serveur, cette Stream
ne contient que les champs stream_id
et stream_manifest
.
Open Measurement
Le champ Verifications
contient des informations pour la validation Open Measurement pour les flux de balisage non 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 valider la lecture de la création avec un code de mesure tiers.
Seule l'option JavaScriptResource
est acceptée. Pour en savoir plus, consultez le IAB Tech Lab et la spécification VAST 4.1.
Méthode: validation des médias
Lorsque vous rencontrez un identifiant multimédia d'annonce 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 des médias ne sont pas nécessaires pour les flux de balisage côté serveur, où le serveur lance la validation des médias.
Les requêtes adressées au point de terminaison media verification
sont idempotentes.
Méthodes | |
---|---|
media verification |
GET {media_verification_url}/{ad_media_id}
Informe l'API d'un événement de validation de contenu 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 des médias réussit 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'une expiration.HTTP/1.1 404 Not Found
si une demande de validation précédente 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 des éléments multimédias de l'annonce (HLS)
Les identifiants multimédias des annonces seront encodés dans les métadonnées temporelles HLS à l'aide de la clé TXXX
, réservée aux images "informations textuelles définies par l'utilisateur". Le contenu du frame ne sera pas chiffré et commencera toujours par le texte "google_"
.
L'intégralité du contenu textuel du frame doit être ajouté à media_verification_url pour chaque demande de validation d'annonce.
ID de contenu multimédia de l'annonce (DASH)
Les identifiants de médias publicitaires seront insérés dans le fichier manifeste à l'aide de l'élément EventStream
de DASH.
Chaque EventStream
aura un URI d'ID de schéma de urn:google:dai:2018
.
Ils contiennent des événements dont l'attribut messageData
contient un ID de support publicitaire commençant par “google_”
. L'intégralité du contenu de l'attribut messageData
doit être ajouté à media_verification_url pour chaque demande de validation d'annonce.
Données de réponse
Flux
Le flux permet d'afficher une liste de toutes les ressources d'un flux nouvellement créé 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 du flux. |
total_duration |
number Durée du flux en secondes. |
content_duration |
number Durée du contenu, sans annonces, en secondes. |
valid_for |
string Durée du flux valide, au format "00h00m00s". |
valid_until |
string Date à laquelle le flux est valide, au format RFC 3339. |
subtitles |
[object(Subtitle)] Liste des sous-titres. Omis si 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 en HLS et à la MPD en DASH. Il s'agit du seul champ, à l'exception de "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 des contenus multimédias. |
apple_tv |
object(AppleTV) Informations facultatives spécifiques aux appareils Apple TV. HLS uniquement. |
ad_breaks |
[object(AdBreak)] Liste des coupures publicitaires. Omis si vide. |
AppleTV
AppleTV contient des informations spécifiques aux appareils Apple TV.Représentation JSON |
---|
{ "interstitials_url": string, } |
Champs | |
---|---|
interstitials_url |
string URL des interstitiels. |
AdBreak
AdBreak 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 valides sont les suivants : "mid", "pre" et "post". |
start |
number Position dans le flux à laquelle la coupure commence, en secondes. |
duration |
number Durée de la coupure publicitaire, en secondes. |
ads |
[object(Ad)] Liste d'annonces. Omis si 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), "skip_metadata": object(SkipMetadata), "extensions": [], } |
Champs | |
---|---|
seq |
number Position de l'annonce dans la coupure. |
start |
number Position dans le flux à laquelle l'annonce commence, 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 de l'annonceur (facultatif). |
ad_system |
string Système publicitaire facultatif. |
ad_id |
string Identifiant d'annonce facultatif. |
creative_id |
string ID de la création (facultatif). |
creative_ad_id |
string ID de l'annonce de la création (facultatif). |
deal_id |
string ID de l'accord (facultatif). |
clickthrough_url |
string URL de destination facultative. |
icons |
[object(Icon)] Liste d'icônes, omise si vide. |
wrappers |
[object(Wrapper)] Liste des wrappers. Omis si vide. |
events |
[object(Event)] Liste des événements de l'annonce. |
verifications |
[object(Verification)] Enregistrements de validation Open Measurement facultatifs qui répertorient les ressources et les métadonnées requises pour exécuter le code de mesure tiers afin de valider la lecture de la création. |
universal_ad_id |
object(UniversalAdID) Identifiant d'annonce universel facultatif. |
companions |
[object(Companion)] Éléments associés facultatifs pouvant être diffusés avec cette annonce. |
interactive_file |
object(InteractiveFile) Création interactive (SIMID) facultative à afficher pendant la lecture de l'annonce. |
skip_metadata |
object(SkipMetadata) Métadonnées facultatives pour les annonces désactivables. Si cette valeur est définie, cela indique que l'annonce peut être ignorée et inclut des instructions pour gérer l'UI d'ignorer et l'événement de suivi. |
extensions |
string Liste facultative de tous les nœuds <Extension> du VAST. |
Événement
L'événement contient un type d'événement et un temps de présentation.Représentation JSON |
---|
{ "time": number, "type": string, } |
Champs | |
---|---|
time |
number Heure de la présentation de cet événement. |
type |
string Type de cet événement. |
Sous-titre
"Subtitle" décrit une piste de sous-titres secondaire pour le flux vidéo. Il stocke deux formats de sous-titres: TTML et WebVTT. L'attribut TTMLPath contient l'URL du fichier sidecar TTML, et l'attribut WebVTTPath contient également une URL vers le fichier sidecar 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. Il permet de différencier l'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. |
SkipMetadata
SkipMetadata fournit les informations nécessaires aux clients pour gérer les événements de saut pour les annonces sautables.Représentation JSON |
---|
{ "offset": number, "tracking_url": string, } |
Champs | |
---|---|
offset |
number Le décalage indique le délai d'attente en secondes dans l'annonce que le lecteur doit attendre pour afficher le bouton "Ignorer". Omis si non fourni dans le VAST. |
tracking_url |
string TrackingURL contient une URL à laquelle un ping doit être envoyé lors de l'événement de saut. |
Icône
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
FallbackImage 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 de transaction s'il n'en existe pas.Représentation JSON |
---|
{ "system": string, "ad_id": string, "creative_id": string, "creative_ad_id": string, "deal_id": string, } |
Champs | |
---|---|
system |
string Identifiant du système publicitaire. |
ad_id |
string ID de l'annonce utilisée pour l'annonce wrapper. |
creative_id |
string ID de la création utilisée pour l'annonce wrapper. |
creative_ad_id |
string ID de l'annonce de la création utilisé pour l'annonce du wrapper. |
deal_id |
string ID de l'accord facultatif pour l'annonce wrapper. |
Validation
La validation contient des informations pour Open Measurement, qui facilite la mesure de la visibilité et de la validation tierces. Pour le moment, 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 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 de démarrage. |
JavaScriptResource
JavaScriptResource contient des informations de validation via JavaScript.Représentation JSON |
---|
{ "script_url": string, "api_framework": string, "browser_optional": boolean, } |
Champs | |
---|---|
script_url |
string URI de la charge utile JavaScript. |
api_framework |
string APIFramework est le nom du framework vidéo qui exécute 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 pingées par le client dans certaines situations.Représentation JSON |
---|
{ "event": string, "uri": string, } |
Champs | |
---|---|
event |
string Type de l'événement de suivi. |
uri |
string Événement de suivi à envoyer. |
UniversalAdID
UniversalAdID permet de fournir un identifiant de création unique qui est géré 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 utilisée pour identifier l'URL du site Web du registre où l'ID d'annonce universel de la création sélectionnée est catalogué. |
Annonce associée
Le compagnon contient des informations sur les annonces associées qui peuvent être diffusées avec l'annonce.Représentation JSON |
---|
{ "click_data": object(ClickData), "creative_type": string, "height": int32, "width": int32, "resource": string, "type": string, "ad_slot_id": string, "api_framework": string, "tracking_events": [object(TrackingEvent)], } |
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> du fichier VAST s'il s'agit d'une création associée de type statique. |
height |
int32 Hauteur, en pixels, de cet accessoire. |
width |
int32 Largeur en pixels de cet accessoire. |
resource |
string Pour les compagnons statiques et en iFrame, il s'agit de l'URL à charger et à afficher. Pour les annonces associées HTML, il s'agit de l'extrait de code HTML qui doit être affiché en tant qu'annonce associée. |
type |
string Type de création associée. Il peut être statique, iFrame ou HTML. |
ad_slot_id |
string ID de l'emplacement de ce compagnon. |
api_framework |
string Framework d'API de ce compagnon. |
tracking_events |
[object(TrackingEvent)] Liste des événements de suivi pour ce compagnon. |
InteractiveFile
InteractiveFile contient des informations sur la création interactive (SIMID, par exemple) qui doivent s'afficher pendant 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 VAST. |