API en vivo de publicación de grupos de inserción de anuncios dinámicos

La API de inserción de anuncios dinámicos le permite solicitar transmisiones en vivo de DAI y hacer un seguimiento de ellas.

Servicio: dai.google.com

Todos los URI están relacionados con https://dai.google.com.

Método: stream

Métodos
stream POST /ssai/pods/api/v1/network/{network_code}/custom_asset/{custom_asset_key}/stream

Registra una sesión de transmisión en vivo del grupo de anuncios de DAI de la DAI.

Solicitud HTTP

POST https://dai.google.com/ssai/pods/api/v1/network/{network_code}/custom_asset/{custom_asset_key}/stream

Parámetros de ruta

Parámetros
network_code string

Es el código de red de Google Ad Manager del publicador.

custom_asset_key string

Es el identificador personalizado asociado a este evento en Google Ad Manager.

Cuerpo de la solicitud

El cuerpo de la solicitud es de tipo application/x-www-form-urlencoded y contiene la siguiente información: los siguientes parámetros:

Parámetros
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 Autentica con un token basado en HMAC.

Cuerpo de la respuesta

Si se ejecuta correctamente, el cuerpo de la respuesta contiene un nuevo objeto Stream.

Open Measurement

La API de DAI contiene información para la verificación de Open Measurement en el Verifications. Este campo contiene uno o más Elementos Verification que enumeran los recursos y metadatos necesarios para la ejecución código de medición de terceros para verificar la reproducción de creatividades. Solo JavaScriptResource es compatible. Para obtener más información, consulta la IAB Tech Lab y el Especificaciones de VAST 4.1.

Método: Pod segment

Métodos
pod segment GET /linear/pods/v1/seg/network/{network_code}/custom_asset/{custom_asset_key}/pod/{pod_id}/profile/{profile_name}/{segment_number}.{segment_format}

Crea una transmisión de DAI para el ID del evento determinado.

Solicitud HTTP

GET https://dai.google.com//linear/pods/v1/seg/network/{network_code}/custom_asset/{custom_asset_key}/pod/{pod_id}/profile/{profile_name}/{segment_number}.{segment_format}

Parámetros de ruta

Parámetros
network_code string

Es el código de red de Google Ad Manager del publicador.

custom_asset_key string

Es el identificador personalizado asociado a este evento en Google Ad Manager.

pod_id integer

Es el identificador numérico de la pausa publicitaria actual. Los IDs de grupos de anuncios son se asigna de forma incremental para cada evento, a partir de 1.

profile_name string

El Nombre de los solicitados Perfil de codificación de DAI de Google Ad Manager. El perfil de codificación debe ser uno de los perfiles de codificación configurados para el evento seleccionado.

segment_number integer

El índice del segmento solicitado dentro del grupo de anuncios actual, a partir del en cero.

segment_format string

La extensión de archivo asociada con el formato del segmento solicitado. Se aceptan las siguientes extensiones: ts, mp4, vtt, aac, ac3 o eac3

Parámetros de consulta

Parámetros
stream_id required string

Es el ID de transmisión de la sesión del usuario actual. Este valor lo devuelve una solicitud correcta al extremo stream.

sd required1 integer

Es la duración del segmento solicitado en milisegundos.

so opcional

Es el desplazamiento del segmento solicitado dentro del grupo de anuncios, en milisegundos. Si omites el parámetro so, se calculará de la siguiente manera: multiplicando la duración del segmento por el número del segmento.

pd obligatorio2 integer

Es la duración del grupo de anuncios, expresada en milisegundos.

auth-token required string

Una dirección de correo electrónico firmada y codificada en URL Token HMAC para el grupo de anuncios actual.

last opcional boolean

Indica el último segmento de la pausa publicitaria. Omitir este parámetro para todas otros segmentos.

scte35 opcional string

Señal SCTE-35 con codificación base64 para esta pausa publicitaria.

cust_params opcional string

Es un conjunto de pares clave-valor que se usan para la segmentación de campañas de Ad Manager. Estos se deben representar como una cadena de consulta codificada para URL.

Ejemplo:
Parámetros
  • sección = sports
  • página = golf,tennis
Request URL ...&cust_params=section%3Dsports%26page%3Dgolf%2Ctennis...

Pies de página

  1. No se requiere sd para los segmentos de inicialización.
  2. No se requiere pd para los eventos con anuncios sin duración de restablecimientos.

Cuerpo de la respuesta

Si el proceso es satisfactorio, el cuerpo de la respuesta será un segmento de la transmisión reproducible que coincida con el el formato y los parámetros especificados en la solicitud.

Método: Plantilla de período de grupo de anuncios de DASH

Métodos
pods GET /linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset_key}/pods.json

Solicita una plantilla de período de DASH a Google Ad Manager. Esta plantilla contiene macros que debes propagar con tus parámetros de transmisión. Una vez estas macros se propagan, la plantilla se convierte en el período de la pausa publicitaria pueden incorporarse al manifiesto de DASH.

Solicitud HTTP

GET https://dai.google.com/linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset_key}/pods.json

Parámetros de ruta

Parámetros
network_code string

Es el código de red de Google Ad Manager del publicador.

custom_asset_key string

Es el identificador personalizado asociado a este evento en Google Ad Manager.

Parámetros de consulta

Parámetros
stream_id required string

Es el ID de transmisión de la sesión del usuario actual. Este valor lo devuelve una solicitud correcta al extremo stream.

Cuerpo de la respuesta

Si el proceso es satisfactorio, el cuerpo de la respuesta contiene un nuevo Objeto PodTemplateResponse.

Método: verificación de contenido multimedia

Después de encontrar un identificador de contenido multimedia de anuncios durante la reproducción, crea una solicitud con la media_verification_url que se obtuvo de la transmisión extremo, como se muestra más arriba. Estas solicitudes no son necesarias para el contador de píxeles del servidor de transmisión, donde 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 https://{media-verification-url}/{ad-media-id}

Cuerpo de la respuesta

media verification devuelve las siguientes respuestas:

  • HTTP/1.1 204 No Content si la verificación de medios se realiza correctamente y todos los pings se enviado.
  • HTTP/1.1 404 Not Found si la solicitud no puede verificar el contenido multimedia debido a El formato o el vencimiento de la URL son incorrectos.
  • HTTP/1.1 404 Not Found si una solicitud de verificación anterior para este ID sin errores.
  • HTTP/1.1 409 Conflict si ya se envían pings a esta solicitud tiempo.

IDs de medios de anuncios

Los identificadores multimedia del anuncio se codificarán en una pista de metadatos independiente (con marcas de tiempo) metadatos para la transmisión de transporte HLS o emsg para archivos mp4. Identificadores de medios de anuncios siempre comenzará con la cadena google_.

Todo el contenido de texto de la entrada de metadatos se debe agregar al anuncio. URL de verificación antes de realizar cada solicitud de verificación de anuncio.

Método: metadata

El extremo de metadatos en metadata_url muestra información usada para crear un anuncio de la IU de Google. El extremo de metadatos no está disponible para transmisiones de balizas del servidor en el que el servidor es responsable de iniciar la verificación de medios del anuncio.

Métodos
metadata GET /{metadata_url}/{ad-media-id}

GET /{metadata_url}

Recupera información de los metadatos de los anuncios.

Solicitud HTTP

GET https://{metadata_url}/{ad-media-id}

GET https://{metadata_url}

Cuerpo de la respuesta

Si no hay errores, la respuesta muestra una instancia de PodMetadata

Análisis de metadatos

Los metadatos tienen tres secciones discretas: tags, ads y el anuncio breaks. Entrada los datos es la sección tags. A partir de ahí, itera las etiquetas. y busca la primera entrada cuyo nombre sea un prefijo para el ID de contenido multimedia del anuncio que se encuentra en la transmisión de video por Internet. Por ejemplo, podría tener un ID de medios de anuncios similar a este:

google_1234567890

Luego, encuentras un objeto de etiqueta llamado google_12345. En este caso, coincide con tu ID de medios de anuncios Una vez que encuentres el objeto del prefijo de medios de anuncios correcto, podrás buscar los IDs de anuncios, los de pausas publicitarias y el tipo de evento. Luego, los IDs de anuncios se usan para indexar Los objetos ads y los IDs de pausas publicitarias se usan para indexar los objetos breaks.

Datos de respuesta

Transmitir

La transmisión se usa para renderizar una lista de recursos para una transmisión recién creada en JSON.
Representación JSON
{
  "stream_id": string,
  "media_verification_url": string,
  "metadata_url": string,
  "session_update_url": string,
  "heartbeat_url": string,
  "polling_frequency": number,
  "pod_manifest_url": string,
  "manifest_format": string,
}
Campos
stream_id string

El identificador de transmisión de GAM.
media_verification_url string

Es la URL de verificación de contenido multimedia que se usa como extremo base para hacer un seguimiento de los eventos de reproducción.
metadata_url string

URL de metadatos que se usa para consultar información periódica sobre los próximos eventos de anuncios de transmisión.
session_update_url string

Es la URL de actualización de la sesión que se utiliza para actualizar los parámetros de segmentación de esta transmisión. Los valores originales de los parámetros de segmentación se capturan durante la solicitud inicial de creación de transmisión.
heartbeat_url string

La URL de señal de monitoreo de funcionamiento, que se utiliza para mantener activa la transmisión del contador del contador del servidor se debe hacer ping cada {PollingFrequency} segundos. Se propaga para las transmisiones de balizas del servidor.
polling_frequency number

La frecuencia de sondeo, en segundos, cuando se solicita metadata_url o Heartbeat_url.
pod_manifest_url string

La plantilla de URL del manifiesto del Pod se usa para generar la URL que se usará para recuperar el manifiesto del Pod de la transmisión. correspondiente a la URL de la playlist de múltiples variantes en HLS o a la MPD en DASH. Se propaga para los eventos de transmisión en vivo del tipo inserción de anuncios dinámicos POD_SERVING_MANIFEST. https://developers.google.com/ad-manager/api/reference/v202305/LiveStreamEventService.DynamicAdInsertionType
manifest_format string

El formato del manifiesto es el formato del manifiesto recuperado de pod_manifest_url, ya sea guion o HL.

PodMetadata

PodMetadata contiene información de metadatos sobre anuncios, pausas publicitarias y etiquetas de ID de medios.
Representación JSON
{
  "tags": map[string, object(TagSegment)],
  "ads": map[string, object(Ad)],
  "ad_breaks": map[string, object(AdBreak)],
}
Campos
tags map[string, object(TagSegment)]

Mapa de segmentos de etiquetas indexados por prefijo de etiqueta.
ads map[string, object(Ad)]

Mapa de anuncios indexados por ID de anuncio
ad_breaks map[string, object(AdBreak)]

Mapa de pausas publicitarias indexadas por ID de pausa publicitaria.

TagSegment

TagSegment contiene una referencia a un anuncio, su pausa publicitaria y el tipo de evento. TagSegment con type="progress" No se debe hacer ping al contenido multimedia del anuncio. extremo de verificación.
Representación JSON
{
  "ad": string,
  "ad_break_id": string,
  "type": string,
}
Campos
ad string

El ID del anuncio de esta etiqueta.
ad_break_id string

El ID de la pausa publicitaria de esta etiqueta
type string

Es el tipo de evento de esta etiqueta.

AdBreak

La pausa publicitaria describe una sola pausa publicitaria en la transmisión. Contiene una duración, un tipo (medio/anterior/posterior) y la cantidad de anuncios.
Representación JSON
{
  "type": string,
  "duration": number,
  "expected_duration": number,
  "ads": number,
}
Campos
type string

Los tipos de pausa válidos son los siguientes: antes, durante y después.
duration number

Es la duración total del anuncio para esta pausa publicitaria, en segundos.
expected_duration number

Duración esperada de la pausa publicitaria (en segundos), incluidos todos los anuncios y cualquier cortinilla de video.
ads number

Es la cantidad de anuncios en la pausa publicitaria.
Un anuncio describe un anuncio en la transmisión.
Representación JSON
{
  "ad_break_id": string,
  "position": 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,
  "click_tracking_urls": [],
  "verifications": [object(Verification)],
  "slate": boolean,
  "icons": [object(Icon)],
  "wrappers": [object(Wrapper)],
  "universal_ad_id": object(UniversalAdID),
  "extensions": [],
  "companions": [object(Companion)],
  "interactive_file": object(InteractiveFile),
}
Campos
ad_break_id string

El ID de la pausa publicitaria de este anuncio.
position number

La posición de este anuncio en la pausa publicitaria, a partir de 1
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.
click_tracking_urls string

URL de seguimiento de clics opcionales.
verifications [object(Verification)]

Entradas opcionales de verificación de Open Measurement que enumeran los recursos y los metadatos necesarios para ejecutar el código de medición de terceros para verificar la reproducción de creatividades.
slate boolean

Bool opcional que indica que la entrada actual es de cortinilla de video.
icons [object(Icon)]

Una lista de íconos, que se omite si está vacía.
wrappers [object(Wrapper)]

Una lista de wrappers, que se omite si está vacía.
universal_ad_id object(UniversalAdID)

ID del anuncio universal opcional.
extensions string

Lista opcional de todas las extensiones de <Extension> nodos en VAST.
companions [object(Companion)]

Complementos opcionales que pueden mostrarse junto con este anuncio.
interactive_file object(InteractiveFile)

Creatividad interactiva opcional (SIMID) que se debe mostrar durante la reproducción del anuncio

PodTemplateResponse

PodTemplateResponse representa la carga útil de JSON que se muestra a un VTP para la unión de Pods.
Representación JSON
{
  "dash_period_template": string,
  "segment_duration_ms": int64,
}
Campos
dash_period_template string

DashPeriodTemplate es la plantilla XML para el período que se completará con los datos adecuados antes de la unión.
segment_duration_ms int64

SegmentDurationMS es la duración de los segmentos del período en milisegundos.

Í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 Es el 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

Es el identificador del sistema del anuncio.
ad_id string

Es el ID que se usa para el anuncio envolvente.
creative_id string

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

Es el ID de anuncio de la creatividad que se usa para el anuncio envolvente.
deal_id string

Es el ID del acuerdo opcional para el anuncio wrapper.

Verificación

La verificación contiene información de Open Measurement, lo 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

URI a carga útil de JavaScript.
api_framework string

APIFramework es el nombre del framework de video que ejecuta el código de verificación.
browser_optional boolean

Si esta secuencia de comandos puede ejecutarse navegador.

TrackingEvent

TrackingEvent contiene URLs a las que el cliente debe hacer ping en ciertos situaciones.
Representación JSON
{
  "event": string,
  "uri": string,
}
Campos
event string

El tipo del 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 en los sistemas de anuncios.
Representación JSON
{
  "id_value": string,
  "id_registry": string,
}
Campos
id_value string

Es el ID del anuncio universal de la creatividad seleccionada para el anuncio.
id_registry string

Una cadena que se usa para identificar la URL del sitio web de registro en la que se cataloga el ID de anuncio universal de la creatividad seleccionada.

Companion

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)

Datos de clics de este anuncio complementario.
creative_type string

El atributo CreativeType de la clase <StaticResource> en el anuncio de VAST Este 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

Para los anuncios complementarios iframe y estáticos, esta será la URL que se cargará y que se muestra. Para los anuncios complementarios HTML, este será el fragmento HTML que se debe se mostrará como complementario.
type string

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

Es el ID del espacio de este anuncio complementario.
api_framework string

El framework de API para este complemento.
tracking_events [object(TrackingEvent)]

Es la lista de eventos de seguimiento de este complemento.

InteractiveFile

InteractiveFile contiene información para creatividades interactivas (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 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 una extensión de la duración.
ad_parameters string

El valor de <AdParameters> en VAST.