API de VOD de inserción de anuncios dinámicos

La API de inserción de anuncios dinámicos te permite solicitar y realizar un seguimiento de transmisiones de video on demand (VOD) de DAI. Se admiten las 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 HLS para la fuente del contenido y el ID de video determinados.

POST /ondemand/v1/dash/content/{content-source}/vid/{video-id}/stream

Crea una transmisión de DAI DASH para la fuente del contenido y el ID de video especificados.

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, proporcionada 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 continua.

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 true para crear una transmisión de balizas del servidor. La configuración predeterminada es false. El seguimiento de la transmisión predeterminada lo inicia el cliente y se hace ping en el servidor.

Parámetros de segmentación de DoubleClick Opcional Parámetros de segmentación adicionales.
Anula los parámetros de la transmisión Opcional Anula los valores predeterminados de un parámetro de creación de transmisiones.
Autenticación de HMAC Opcional Autentica mediante un token basado en HMAC.

Cuerpo de la respuesta

Si el proceso es satisfactorio, el cuerpo de la respuesta contendrá un Stream nuevo. En el caso de las transmisiones de balizas del servidor, este Stream contiene solo los campos stream_id y stream_manifest.

Open Measurement

El campo Verifications contiene información para la verificación de Open Measurement para las transmisiones de balizas que no se encuentran en el 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 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 medios

Después de encontrar un identificador de contenido multimedia del anuncio durante la reproducción, realiza una solicitud inmediatamente con el media_verification_url del extremo stream. El 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 de 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:

  • HTTP/1.1 204 No Content si la verificación de medios se realiza correctamente y se envían todos los pings.
  • HTTP/1.1 404 Not Found si la solicitud no puede verificar el contenido multimedia debido a un formato o vencimiento de URL incorrectos
  • HTTP/1.1 404 Not Found si la solicitud de verificación anterior de este ID se realizó correctamente.
  • HTTP/1.1 409 Conflict si otra solicitud ya está enviando pings en este momento.

IDs de medios de anuncios (HLS)

Los identificadores de medios de anuncios se codificarán en los 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 estará encriptado y siempre comenzará con el texto "google_".

Todo el contenido de texto del marco 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 contenido multimedia de anuncios se insertarán en el manifiesto mediante el uso del elemento EventStream de DASH.

Cada EventStream tendrá una URI de ID de esquema de urn:google:dai:2018. Contienen eventos con el atributo messageData que contienen un ID de contenido multimedia del anuncio que comienza con “google_”. Se debe agregar todo el contenido del atributo messageData a la media_verification_url para cada solicitud de verificación de anuncios.

Datos de respuesta

Transmisión

La transmisión se usa para procesar 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 formato "00h00m00s".
valid_until string

Fecha hasta la que la transmisión es válida, en formato RFC 3339.
subtitles [object(Subtitle)]

Lista de subtítulos. Se omite si está vacío. Solo HLS.
hls_master_playlist string

URL de la playlist principal de HLS(OBSOLETA) Usa stream_manifest. Solo HLS.
stream_manifest string

El manifiesto de la transmisión. Corresponde a la lista de reproducción principal en HLS y a la 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 pixel contador 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 HLS.
ad_breaks [object(AdBreak)]

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 string

URL de los anuncios intersticiales.

AdBreak

La pausa publicitaria describe una sola pausa publicitaria en la transmisión. Contiene una posición, una duración, un tipo (durante el período previo o 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: durante el período, antes y después.
start number

Indica la 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.
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),
}
Campos
seq number

Posición del anuncio en la pausa.
start number

Muestra la posición en la transmisión en la que comienza 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 opcional del anunciante.
ad_system string

Sistema de anuncios opcional.
ad_id string

ID del anuncio opcional.
creative_id string

ID opcional de la creatividad.
creative_ad_id string

ID de anuncio de la 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 omiten si están vacíos.
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 código de medición de terceros a fin de 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 con este anuncio.
interactive_file object(InteractiveFile)

Creatividad interactiva opcional (SIMID) que se debe mostrar durante la reproducción de anuncios

Evento

El evento contiene un tipo de evento y la hora de presentación del evento.
Representación JSON
{
  "time": number,
  "type": string,
}
Campos
time number

Hora de presentación de este evento
type string

El tipo de este evento.

Subtítulo

El subtítulo describe una pista de subtítulo de archivo adicional para la transmisión de video por Internet. Almacena dos formatos de subtítulos: TTML y WebVTT. El atributo TTMLPath contiene la URL que dirige al archivo adicional de TTML, mientras que el atributo WebVTTPath también contiene una URL que dirige 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 al archivo adicional de TTML.
webvtt string

URL opcional al 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 los clics en el í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 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 string

Identificador del sistema de anuncios.
ad_id string

Es el ID del anuncio utilizado para el anuncio wrapper.
creative_id string

Es el ID de la creatividad que se usa para el anuncio envoltorio.
creative_ad_id string

ID del anuncio de la creatividad usado para el anuncio envoltorio.
deal_id string

Es el ID del acuerdo opcional para el anuncio wrapper.

Verificación

La verificación contiene información para Open Measurement, que facilita la medición de la visibilidad y la verificación de terceros. Actualmente, solo se admiten recursos 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

Es una string 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 string

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 las 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; actualmente, la única opción es "verificationNotExecuted", como se especifica en la especificación de VAST 4.1.
uri string

El evento de seguimiento al que se hará 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 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,
}
Campos
click_data object(ClickData)

Los datos de clics de este complementario.
creative_type string

El atributo CreativeType en el nodo <StaticResource> de VAST si es un complemento de tipo estático.
height int32

La altura en píxeles de este anuncio complementario.
width int32

El ancho en píxeles de este complementario.
resource string

En 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 de HTML, este será el fragmento HTML que se debería mostrar como complementario.
type string

Tipo de este complementario. Puede ser estático, iframe o HTML.

InteractiveFile

InteractiveFile contiene información para la creatividad interactiva (es decir, SIMID) que debe mostrarse 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

El tipo MIME del archivo proporcionado como recurso.
variable_duration boolean

Indica si esta creatividad puede solicitar que se extienda la duración.
ad_parameters string

Es el valor del nodo <AdParameters> en la VAST.