La API de inserción de anuncios dinámicos te permite solicitar y realizar un seguimiento de las transmisiones de video on demand (VOD) de DAI. Se admiten las transmisiones HLS y DASH.
Servicio: dai.google.com
La ruta del método stream
está relacionada con 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 del contenido y el ID de video determinados.
Crea una transmisión de DAI DASH para la fuente del 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 |
string La 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 de acceso
Parámetros | |
---|---|
content-source |
string El ID de CMS de la transmisión |
video-id |
string El ID de 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 | Configúralo en |
Parámetros de segmentación de DFP | Opcional | 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 transmisión. |
Autenticación HMAC | Opcional | Autentícate con un token basado en HMAC. |
Cuerpo de la respuesta
Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene un Stream
nuevo. En el caso de las transmisiones de 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 para transmisiones que no son de balizas del servidor.
Verifications
contiene uno o más elementos Verification
que enumeran los recursos y metadatos que necesitas para verificar la reproducción de creatividades con el código de medición de terceros.
Solo se admite JavaScriptResource
. Para obtener más información, consulta IAB Tech Lab y las especificaciones de VAST 4.1.
Método: verificación de contenido multimedia
Cuando encuentres un identificador multimedia de anuncios durante la reproducción, realiza una solicitud de inmediato con el media_verification_url
desde el extremo stream
. media_verification_url
es una ruta de acceso absoluta.
Las solicitudes de verificación de medios no son necesarias para las transmisiones de 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
muestra las siguientes respuestas:
- Es
HTTP/1.1 204 No Content
si la verificación de medios se realiza correctamente y se envían todos los pings. - Se utiliza
HTTP/1.1 404 Not Found
si la solicitud no puede verificar el contenido multimedia debido a un vencimiento o formato de URL incorrectos. HTTP/1.1 404 Not Found
si se realiza correctamente una solicitud de verificación anterior para este ID.- Es
HTTP/1.1 409 Conflict
si otra solicitud ya está enviando pings en este momento.
IDs de medios de anuncios (HLS)
Los identificadores multimedia de anuncios se codificarán en metadatos temporizados de HLS con la clave TXXX
, reservada para los marcos de “información de texto definida por el usuario”. El contenido del marco no se encriptará y siempre comenzará con el texto "google_"
.
Todo el contenido de texto del marco se debe agregar a la media_verification_url de cada solicitud de verificación de anuncio.
ID de medios del anuncio (DASH)
Los identificadores multimedia de anuncios se insertarán en el manifiesto mediante el elemento EventStream
de DASH.
Cada EventStream
tendrá un URI de ID de esquema de urn:google:dai:2018
.
Incluirán eventos con el atributo messageData
que incluyen un ID de contenido multimedia de anuncios que comienza con “google_”
. Todo el contenido del atributo messageData
se debe agregar a la media_verification_url de cada solicitud de verificación de anuncios.
Datos de respuesta
Transmisión
La transmisión se usa para renderizar una lista de todos los recursos de una transmisión recién creada 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 |
string Identificador de transmisión. |
total_duration |
number Duración de la transmisión en segundos. |
content_duration |
number Duración del contenido, sin anuncios, en segundos. |
valid_for |
string La transmisión de duración es válida en el formato "00h00m00s". |
valid_until |
string Fecha en que es válida la transmisión (en formato RFC 3339) |
subtitles |
[object(Subtitle)] Una lista de subtítulos. Se omite si está vacío. Solo para HLS. |
hls_master_playlist |
string (OBSOLETO) URL de playlist principal de HLS. Usa stream_manifest. Solo para HLS. |
stream_manifest |
string El manifiesto de la transmisión. Corresponde a la playlist principal en HLS y a la MPD en DASH. Además de "stream_id", este es el único campo presente en la respuesta cuando se crea una transmisión de balizas del servidor. |
media_verification_url |
string URL de verificación de medios. |
apple_tv |
object(AppleTV) Información opcional específica de los dispositivos AppleTV. Solo para HLS. |
ad_breaks |
[object(AdBreak)] Una lista de pausas publicitarias. Se omite si está vacío. |
AppleTV
Apple TV contiene información específica sobre los dispositivos Apple TV.Representación JSON |
---|
{ "interstitials_url": string, } |
Campos | |
---|---|
interstitials_url |
string URL de anuncios intersticiales. |
AdBreak
La pausa publicitaria describe una sola pausa publicitaria en la transmisión. Contiene una posición, una duración, un tipo (medio/previo/posterior) y una lista de anuncios.Representación JSON |
---|
{ "type": string, "start": number, "duration": number, "ads": [object(Ad)], } |
Campos | |
---|---|
type |
string Los tipos de pausa válidos son los siguientes: intermedia, previa y posterior. |
start |
number Posición en la transmisión en la que comienza la pausa, en segundos |
duration |
number Duración de la pausa publicitaria, en segundos. |
ads |
[object(Ad)] Una lista de anuncios. Se omite si está vacío. |
Anuncio
Un anuncio describe un anuncio en la transmisión. Contiene la posición del anuncio en la pausa, su duración 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), } |
Campos | |
---|---|
seq |
number Posición del anuncio en la pausa. |
start |
number Posición en la transmisión que inicia el anuncio, en segundos |
duration |
number Duración del anuncio, en segundos. |
title |
string Título opcional del anuncio. |
description |
string Descripción opcional del anuncio. |
advertiser |
string Identificador de anunciante opcional. |
ad_system |
string Sistema de anuncios opcional. |
ad_id |
string ID del anuncio opcional. |
creative_id |
string ID de la creatividad opcional. |
creative_ad_id |
string ID del anuncio con creatividad opcional |
deal_id |
string ID del acuerdo opcional. |
clickthrough_url |
string URL de clic opcional. |
icons |
[object(Icon)] Una lista de íconos que se omite si está vacía. |
wrappers |
[object(Wrapper)] Una lista de wrappers. Se omite si está vacío. |
events |
[object(Event)] Una lista de los eventos en el anuncio. |
verifications |
[object(Verification)] Entradas opcionales de verificación de Open Measurement que enumeran los recursos y metadatos necesarios para ejecutar un código de medición de terceros para verificar la reproducción de creatividades. |
universal_ad_id |
object(UniversalAdID) ID del 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 |
Evento
Event contiene el tipo de evento y la hora de presentación de un evento.Representación JSON |
---|
{ "time": number, "type": string, } |
Campos | |
---|---|
time |
number Horario de presentación de este evento. |
type |
string Tipo de evento |
Subtítulo
El subtítulo describe una pista de subtítulos adicional para la transmisión de video por Internet. Almacena dos formatos de subtítulos: TTML y WebVTT. El atributo TTMLPath contiene la URL del archivo adicional TTML y el atributo WebVTTPath contiene de manera similar una URL al archivo adicional de WebVTT.Representación JSON |
---|
{ "language": string, "language_name": string, "ttml": string, "webvtt": string, } |
Campos | |
---|---|
language |
string Un código de idioma, como "en" o "de". |
language_name |
string Nombre descriptivo del idioma. Diferencia el conjunto específico de subtítulos si existen varios conjuntos para el mismo idioma. |
ttml |
string URL opcional del archivo adicional TTML. |
webvtt |
string URL opcional del archivo adicional de WebVTT |
Í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 un ícono.Representación JSON |
---|
{ "url": string, } |
Campos | |
---|---|
url |
string |
FallbackImage
FallbackImage contiene información sobre una imagen de resguardo 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 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 |
string Identificador del sistema de anuncios. |
ad_id |
string ID del anuncio utilizado para el anuncio envolvente. |
creative_id |
string ID de la creatividad que se usa para el anuncio envolvente. |
creative_ad_id |
string ID de la creatividad que se usa para el anuncio envolvente. |
deal_id |
string ID de acuerdo opcional para el anuncio wrapper. |
Verificación
La verificación contiene información de Open Measurement, que facilita la medición de visibilidad y 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 |
string El 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 |
string Una cadena opaca que se pasa al código de verificación de arranque. |
JavaScriptResource
JavaScriptResource contiene información para la verificación mediante JavaScript.Representación JSON |
---|
{ "script_url": string, "api_framework": string, "browser_optional": boolean, } |
Campos | |
---|---|
script_url |
string El URI a la carga útil de JavaScript. |
api_framework |
string APIFramework es el nombre del framework del video que ejecuta el código de verificación. |
browser_optional |
boolean Indica si esta secuencia de comandos se puede ejecutar fuera de un navegador. |
TrackingEvent
TrackingEvent contiene URLs a las que el cliente debe hacer ping en determinadas situaciones.Representación JSON |
---|
{ "event": string, "uri": string, } |
Campos | |
---|---|
event |
string El tipo de evento de seguimiento. |
uri |
string El evento de seguimiento al que se debe hacer ping |
UniversalAdID
UniversalAdID se usa para proporcionar un identificador de creatividad único que se mantiene en todos los sistemas de anuncios.Representación JSON |
---|
{ "id_value": string, "id_registry": string, } |
Campos | |
---|---|
id_value |
string El ID del anuncio universal de la creatividad seleccionada para el anuncio. |
id_registry |
string Es una cadena que se usa para identificar la URL del sitio web de registro en el que se cataloga el ID del anuncio universal de la creatividad seleccionada. |
Anuncio complementario
El anuncio complementario contiene información de 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) Los datos de clics de este anuncio complementario. |
creative_type |
string Es el atributo CreativeType en el nodo <StaticResource> de VAST si es un anuncio complementario de tipo estático. |
height |
int32 Es la altura en píxeles de este anuncio complementario. |
width |
int32 Es el ancho en píxeles de este anuncio complementario. |
resource |
string En el caso de los elementos complementarios iframe y estáticos, esta será la URL que se cargará y mostrará. Para los anuncios complementarios HTML, este será el fragmento HTML que se debe mostrar como complementario. |
type |
string Tipo de este anuncio complementario. Puede ser estático, iframe o HTML. |
ad_slot_id |
string El ID del espacio de este anuncio complementario. |
api_framework |
string El framework de API de este complemento. |
tracking_events |
[object(TrackingEvent)] Lista de eventos de seguimiento de este anuncio complementario. |
InteractiveFile
InteractiveFile contiene información para creatividades interactivas (es decir, SIMID) que se deben mostrar durante la reproducción de anuncios.Representación JSON |
---|
{ "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, } |
Campos | |
---|---|
resource |
string La URL de la creatividad interactiva |
type |
string Es el tipo de MIME del archivo proporcionado como recurso. |
variable_duration |
boolean Determina si esta creatividad puede solicitar que se extienda la duración. |
ad_parameters |
string Es el valor del nodo <AdParameters> en VAST. |