La API de inserción de anuncios dinámicos te permite solicitar y hacer un seguimiento de las transmisiones de video on demand (VOD). Se admiten transmisiones HLS y DASH.
Servicio: dai.google.com
La ruta de acceso del método stream es relativa a https://dai.google.com.
Método: stream
| Métodos | |
|---|---|
stream |
POST /ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream
Crea una transmisión de DAI de HLS para la fuente de contenido y el ID de video determinados.
Crea una transmisión de DAI de DASH para la fuente de contenido y el ID de video determinados. |
Solicitud 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
Encabezado de la solicitud
| Parámetros | |
|---|---|
api‑key |
stringLa clave de API, que se proporciona cuando se crea una transmisión, debe ser válida para la red del publicador. En lugar de proporcionarla en el cuerpo de la solicitud, la clave de API se puede pasar en el encabezado de autorización HTTP con el siguiente formato: Authorization: DCLKDAI key="<api-key>" |
Parámetros de ruta
| Parámetros | |
|---|---|
content-source |
stringEs el ID del CMS del flujo. |
video-id |
stringEs el ID del video de la transmisión. |
Cuerpo de la solicitud
El cuerpo de la solicitud es de tipo application/x-www-form-urlencoded y contiene los siguientes parámetros:
| Parámetros | ||
|---|---|---|
dai-ssb |
Opcional | Establécelo en |
| Parámetros de segmentación de DFP | Opcional | Son parámetros de segmentación adicionales. |
| Anular parámetros de transmisión | Opcional | Anula los valores predeterminados de un parámetro de creación de transmisiones. |
| Autenticación con HMAC | Opcional | Autentica con un token basado en HMAC. |
Cuerpo de la respuesta
Si se ejecuta correctamente, el cuerpo de la respuesta contiene un nuevo Stream. Para las transmisiones con balizas del servidor, este Stream solo contiene los campos stream_id y stream_manifest.
Open Measurement
El campo Verifications contiene información para la verificación de Open Measurement en transmisiones que no son de balizas del servidor.
Verifications contiene uno o más elementos Verification que enumeran los recursos y los metadatos que necesitas para verificar la reproducción de la creatividad con código de medición de terceros. Solo se admite JavaScriptResource. Para obtener más información, consulta IAB Tech Lab y la especificación de VAST 4.1.
Método: Verificación de medios
Después de encontrar un identificador de medios del anuncio durante la reproducción, realiza de inmediato una solicitud con el media_verification_url del extremo stream. media_verification_url es una ruta de acceso absoluta.
Las solicitudes de verificación de medios no son necesarias para las transmisiones con balizas del servidor, en las que el servidor inicia la verificación de medios.
Las solicitudes al extremo media verification son idempotentes.
| Métodos | |
|---|---|
media verification |
GET {media_verification_url}/{ad_media_id}
Notifica a la API sobre un evento de verificación de medios. |
Solicitud HTTP
GET {media-verification-url}/{ad-media-id}
Cuerpo de la respuesta
media verification
devuelve las siguientes respuestas:
HTTP/1.1 204 No Contentsi la verificación de medios se realiza correctamente y se envían todos los pings.HTTP/1.1 404 Not Foundsi la solicitud no puede verificar el contenido multimedia debido a un formato de URL incorrecto o al vencimiento de la URLHTTP/1.1 404 Not Foundsi se aprobó una solicitud de verificación anterior para este IDHTTP/1.1 409 Conflictsi ya se están enviando pings con otra solicitud en este momento.
IDs de medios de anuncios (HLS)
Los identificadores de medios de los anuncios se codificarán en los metadatos cronometrados de HLS con la clave TXXX, reservada para los fotogramas de "información de texto definida por el usuario". El contenido del fotograma no estará encriptado y siempre comenzará con el texto "google_".
El contenido de texto completo del fotograma se debe agregar a la media_verification_url para cada solicitud de verificación de anuncios.
IDs de medios de anuncios (DASH)
Los identificadores de medios de los anuncios se insertarán en el manifiesto a través del elemento EventStream de DASH.
Cada EventStream tendrá un URI de ID de esquema de urn:google:dai:2018.
Contendrán eventos con el atributo messageData que incluye un ID de medios del anuncio que comienza con "google_". Todo el contenido del atributo messageData se debe agregar a la media_verification_url para cada solicitud de verificación de anuncios.
Datos de respuesta
Transmisión
Stream se usa para renderizar una lista de todos los recursos de una transmisión creada recientemente en formato JSON .| Representación 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)],
} |
| Campos | |
|---|---|
stream_id |
stringIdentificador de transmisión. |
total_duration |
numberDuración de la transmisión en segundos. |
content_duration |
numberDuración del contenido, sin anuncios, en segundos. |
valid_for |
stringDuración para la que es válida la transmisión, en formato "00h00m00s". |
valid_until |
stringFecha hasta la que el flujo es válido, en formato RFC 3339. |
subtitles |
[object(Subtitle)]Es una lista de subtítulos. Se omite si está vacío. Solo HLS. |
hls_master_playlist |
string(OBSOLETO) URL de la playlist principal de HLS. Usa stream_manifest. Solo HLS. |
stream_manifest |
stringEs el manifiesto de la transmisión. Corresponde a la playlist principal en HLS y al MPD en DASH. Este es el único campo, además de "stream_id", que está presente en la respuesta cuando se crea una transmisión de balizas del servidor. |
media_verification_url |
stringURL de verificación de medios. |
apple_tv |
object(AppleTV)Es información opcional específica para dispositivos AppleTV. Solo HLS. |
ad_breaks |
[object(AdBreak)]Es una lista de pausas publicitarias. Se omite si está vacío. |
AppleTV
AppleTV contiene información específica de los dispositivos Apple TV.| Representación JSON |
|---|
{
"interstitials_url": string,
} |
| Campos | |
|---|---|
interstitials_url |
stringURL de los intersticiales. |
AdBreak
AdBreak describe una sola pausa publicitaria en la transmisión. Contiene una posición, una duración, un tipo (mid/pre/post) y una lista de anuncios.| Representación JSON |
|---|
{ "type": string, "start": number, "duration": number, "ads": [object(Ad)], } |
| Campos | |
|---|---|
type |
stringLos tipos de interrupción válidos son: mid, pre y post. |
start |
numberPosición en la transmisión en la que comienza la pausa, en segundos. |
duration |
numberDuración de la pausa publicitaria, en segundos. |
ads |
[object(Ad)]Es una lista de anuncios. Se omite si está vacío. |
Anuncio
El anuncio describe un anuncio en la transmisión. Contiene la posición del anuncio en la pausa, la duración del anuncio y algunos metadatos opcionales.| Representación 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": [],
} |
| Campos | |
|---|---|
seq |
numberPosición del anuncio en la pausa. |
start |
numberPosición en la transmisión en la que comienza el anuncio, en segundos. |
duration |
numberDuración del anuncio, en segundos. |
title |
stringTítulo opcional del anuncio. |
description |
stringDescripción opcional del anuncio. |
advertiser |
stringIdentificador del anunciante opcional. |
ad_system |
stringSistema de anuncios opcional. |
ad_id |
stringID de anuncio opcional. |
creative_id |
stringID de creatividad opcional. |
creative_ad_id |
stringID de anuncio de la creatividad opcional. |
deal_id |
stringID del acuerdo opcional. |
clickthrough_url |
stringURL de clic opcional. |
icons |
[object(Icon)]Lista de íconos, se omite si está vacía. |
wrappers |
[object(Wrapper)]Lista de Wrappers. Se omite si está vacío. |
events |
[object(Event)]Es una lista de los eventos del anuncio. |
verifications |
[object(Verification)]Entradas de verificación de Open Measurement opcionales que enumeran los recursos y los metadatos necesarios para ejecutar el código de medición de terceros y verificar la reproducción de creatividades. |
universal_ad_id |
object(UniversalAdID)ID de anuncio universal opcional. |
companions |
[object(Companion)]Anuncios complementarios opcionales que se pueden mostrar junto con este anuncio. |
interactive_file |
object(InteractiveFile)Creatividad interactiva opcional (SIMID) que se debe mostrar durante la reproducción del anuncio. |
skip_metadata |
object(SkipMetadata)Son metadatos opcionales para los anuncios que se pueden omitir. Si se configura, indica que el anuncio se puede omitir y contiene instrucciones para controlar la IU de omisión y el evento de seguimiento. |
extensions |
stringLista opcional de todos los nodos <Extension> en VAST. |
Evento
El evento contiene un tipo de evento y una hora de presentación del evento.| Representación JSON |
|---|
{ "time": number, "type": string, } |
| Campos | |
|---|---|
time |
numberHora de presentación de este evento. |
type |
stringTipo de este evento. |
Subtítulo
El subtítulo describe una pista de subtítulos complementaria para la transmisión de video. Almacena dos formatos de subtítulos: TTML y WebVTT. El atributo TTMLPath contiene la URL del archivo complementario TTML, y el atributo WebVTTPath contiene de manera similar una URL al archivo complementario WebVTT.| Representación JSON |
|---|
{
"language": string,
"language_name": string,
"ttml": string,
"webvtt": string,
} |
| Campos | |
|---|---|
language |
stringUn código de idioma, como "en" o "de". |
language_name |
stringNombre descriptivo del idioma. Diferencia el conjunto específico de subtítulos si existen varios conjuntos para el mismo idioma |
ttml |
stringURL opcional del archivo adicional TTML. |
webvtt |
stringURL opcional del archivo adicional WebVTT. |
SkipMetadata
SkipMetadata proporciona la información necesaria para que los clientes controlen los eventos de omisión de anuncios que se pueden omitir.| Representación JSON |
|---|
{
"offset": number,
"tracking_url": string,
} |
| Campos | |
|---|---|
offset |
numberEl desplazamiento indica la cantidad de tiempo en segundos que el reproductor debe esperar para renderizar el botón de omitir en el anuncio. Se omite si no se proporciona en VAST. |
tracking_url |
stringTrackingURL contiene una URL a la que se debe hacer ping en el evento de omisión. |
Ícono
El ícono contiene información sobre un ícono de VAST.| Representación 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, } |
| Campos | |
|---|---|
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 contiene información sobre el clic de redireccionamiento de un ícono.| Representación JSON |
|---|
{
"url": string,
} |
| Campos | |
|---|---|
url |
string |
FallbackImage
FallbackImage contiene información sobre una imagen de respaldo de VAST.| Representación JSON |
|---|
{ "creative_type": string, "height": int32, "width": int32, "resource": string, "alt_text": string, } |
| Campos | |
|---|---|
creative_type |
string |
height |
int32 |
width |
int32 |
resource |
string |
alt_text |
string |
Wrapper
El wrapper contiene información sobre un anuncio de wrapper. No incluye un ID del acuerdo si no existe.| Representación JSON |
|---|
{
"system": string,
"ad_id": string,
"creative_id": string,
"creative_ad_id": string,
"deal_id": string,
} |
| Campos | |
|---|---|
system |
stringIdentificador del sistema de anuncios. |
ad_id |
stringID del anuncio que se usa para el anuncio de wrapper. |
creative_id |
stringID de la creatividad que se usa para el anuncio de envoltorio. |
creative_ad_id |
stringID del anuncio de la creatividad que se usa para el anuncio del envoltorio. |
deal_id |
stringID de acuerdo opcional para el anuncio wrapper. |
Verificación
La verificación contiene información para Open Measurement, lo que facilita la medición de la visibilidad y la verificación de terceros. Actualmente, solo se admiten recursos de JavaScript. Consulta https://iabtechlab.com/standards/open-measurement-sdk/| Representación JSON |
|---|
{
"vendor": string,
"java_script_resources": [object(JavaScriptResource)],
"tracking_events": [object(TrackingEvent)],
"parameters": string,
} |
| Campos | |
|---|---|
vendor |
stringEl proveedor de verificación. |
java_script_resources |
[object(JavaScriptResource)]Lista de recursos de JavaScript para la verificación. |
tracking_events |
[object(TrackingEvent)]Lista de eventos de seguimiento para la verificación. |
parameters |
stringCadena opaca que se pasa al código de verificación de arranque. |
JavaScriptResource
JavaScriptResource contiene información para la verificación a través de JavaScript.| Representación JSON |
|---|
{
"script_url": string,
"api_framework": string,
"browser_optional": boolean,
} |
| Campos | |
|---|---|
script_url |
stringURI de la carga útil de JavaScript. |
api_framework |
stringAPIFramework es el nombre del framework de video que ejecuta el código de verificación. |
browser_optional |
booleanIndica si esta secuencia de comandos se puede ejecutar fuera de un navegador. |
TrackingEvent
TrackingEvent contiene URLs a las que el cliente debe enviar un ping en ciertas situaciones.| Representación JSON |
|---|
{
"event": string,
"uri": string,
} |
| Campos | |
|---|---|
event |
stringEs el tipo de evento de seguimiento. |
uri |
stringEs el evento de seguimiento al que se enviará un ping. |
UniversalAdID
El UniversalAdID se usa para proporcionar un identificador único de la creatividad que se mantiene en todos los sistemas de anuncios.| Representación JSON |
|---|
{ "id_value": string, "id_registry": string, } |
| Campos | |
|---|---|
id_value |
stringEs el ID de anuncio universal de la creatividad seleccionada para el anuncio. |
id_registry |
stringEs una cadena que se usa para identificar la URL del sitio web del registro en el que se cataloga el ID de anuncio universal de la creatividad seleccionada. |
Companion
Companion contiene información sobre los anuncios complementarios que se pueden mostrar junto con el anuncio.| Representación 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)], } |
| Campos | |
|---|---|
click_data |
object(ClickData)Son los datos de clics de este complemento. |
creative_type |
stringEl atributo CreativeType en el nodo <StaticResource> en VAST si se trata de un elemento complementario de tipo estático. |
height |
int32Altura en píxeles de este anuncio complementario. |
width |
int32Ancho en píxeles de este anuncio complementario. |
resource |
stringEn el caso de los complementos estáticos y de iframe, esta será la URL que se cargará y mostrará. En el caso de los anuncios complementarios en HTML, será el fragmento de HTML que se debe mostrar como anuncio complementario. |
type |
stringTipo de este complemento. Puede ser estático, iframe o HTML. |
ad_slot_id |
stringEs el ID del espacio de este compañero. |
api_framework |
stringEs el framework de la API para este complemento. |
tracking_events |
[object(TrackingEvent)]Lista de eventos de seguimiento para este elemento complementario. |
InteractiveFile
InteractiveFile contiene información sobre la creatividad interactiva (es decir, SIMID) que se debe mostrar durante la reproducción del anuncio.| Representación JSON |
|---|
{ "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, } |
| Campos | |
|---|---|
resource |
stringURL de la creatividad interactiva. |
type |
stringTipo de MIME del archivo proporcionado como recurso. |
variable_duration |
booleanIndica si esta creatividad puede solicitar que se extienda la duración. |
ad_parameters |
stringEl valor del nodo <AdParameters> en VAST. |