API de inserción de anuncios dinámicos para transmisiones en vivo

La API de DAI de Google le permite implementar transmisiones habilitadas para la DAI de Google en entornos. en los que no se admite la implementación del SDK de IMA. Te recomendamos que sigas usando Usar IMA en plataformas compatibles con el SDK de IMA

Recomendamos usar la API de DAI en las siguientes plataformas:

  • Smart TV Samsung (Tizen)
  • TV LG
  • HbbTV
  • Xbox (apps de JavaScript)
  • KaiOS

La API admite las capacidades básicas que proporciona el SDK de IMA de DAI. Para específicas sobre la compatibilidad o las funciones compatibles, comunícate con tu administrador de cuentas de Google.

Implementar la API de DAI para transmisiones EN VIVO

La API de DAI admite transmisiones lineales (EN VIVO) mediante protocolos HLS y DASH. Los pasos descritos en esta guía se aplican a ambos protocolos.

Si quieres integrar la API a tu app para realizar transmisiones EN VIVO, sigue estos pasos: pasos:

1. Solicitar una transmisión

Para solicitar una transmisión en vivo desde la API de DAI, realice una llamada POST a la transmisión. extremo. La respuesta JSON contiene el manifiesto de transmisión y los atributos extremos y valores de la API de DAI.

Cuerpo de la solicitud de ejemplo

https://dai.google.com/linear/v1/dash/event/0ndl1dJcRmKDUPxTRjvdog/stream

{
  key1 : "value1",
  stream_parameter1 : "value2"
}

Ejemplo de cuerpo de respuesta

{
"stream_id":"c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL",
"stream_manifest":"https://dai.google.com/linear/dash/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/manifest.mpd",
"media_verification_url":"https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/",
"metadata_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/metadata",
"session_update_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/session",
"polling_frequency":10
}

Respuesta de error

En caso de errores, se muestran códigos de error HTTP estándar sin respuesta JSON. cuerpo.

Analiza la respuesta JSON y almacena los siguientes valores:

stream_id
Este valor se puede usar para identificar el flujo que se muestra.
stream_manifest
Esta URL se pasa a tu reproductor de contenido multimedia para la reproducción de la transmisión.
media_verification_url
Esta URL es el extremo base para hacer un seguimiento de los eventos de reproducción.
metadata_url
Esta URL se usa para consultar periódicamente información sobre tu próxima transmisión eventos.
session_update_url
Esta URL se usa para actualizar los parámetros de solicitud de transmisión enviados durante la solicitud de transmisión. Ten en cuenta que los parámetros de esta solicitud reemplazan todos los parámetros configurado para la transmisión anterior.
polling_frequency
Es la frecuencia, en segundos, cuando se solicitan metadatos actualizados de pausas publicitarias del API de DAI.

2. Encuesta sobre nuevos metadatos de pausas publicitarias

Definir un temporizador para sondear los nuevos metadatos de pausas publicitarias según la frecuencia de sondeo a través del la URL de metadatos. Si no se especifica en la respuesta de la transmisión, se recomienda el valor predeterminado es de 10 segundos.

Cuerpo de la solicitud de ejemplo

https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/metadata

Ejemplo de cuerpo de respuesta

{
   "tags":{
      "google_0492266569":{
         "ad":"0000229836_ad1",
         "ad_break_id":"0000229836",
         "type":"firstquartile"
      },
      "google_1560331148":{
         "ad":"0000229836_ad1",
         "ad_break_id":"0000229836",
         "type":"thirdquartile"
      },
      "google_1877686714378797835":{
         "ad":"0000229836_slate",
         "ad_break_id":"0000229836",
         "type":"progress"
      },
      "google_1vRyQBYPw_7Gg3MrZ6S5EjmV9aLje-YpW8QHed1DSlU":{
         "ad":"0000229835_ad1",
         "ad_break_id":"0000229835",
         "type":"progress"
      },
      "google_2032765498":{
         "ad":"0000229835_ad1",
         "ad_break_id":"0000229835",
         "type":"midpoint"
      },......
      "google_5646900623":{
         "ad":"0000229837_ad1",
         "ad_break_id":"0000229837",
         "type":"complete"
      }
   },
   "ads":{
      "0000229834_ad1":{
         "ad_break_id":"0000229834",
         "position":1,
         "duration":15.01,
         "title":"truman-e2e-creativeset4",
         "description":"truman-e2e-creativeset4 ad",
         "ad_system":"GDFP",
         "ad_id":"39066884",
         "creative_id":"58092079124",
         "clickthrough_url":"https://pubads.g.doubleclick.net/pcs/click?xai=AKAO...\u0026adurl=http://google.com",
         "universal_ad_id":{
            "id_value":"58092079124",
            "id_registry":"GDFP"
         }
      },
      "0000229834_slate":{
         "ad_break_id":"0000229834",
         "position":-1,
         "duration":14.974977777,
         "slate":true
      },...
   },
   "ad_breaks":{
      "0000229834":{
         "type":"mid",
         "duration":15.01,
         "expected_duration":29.984977776999997,
         "ads":1
      },....
   }
}

3. Escucha eventos ID3 y sigue eventos de reproducción

Para verificar que ocurrieron eventos específicos durante una transmisión de video por Internet, sigue estos pasos: pasos para controlar eventos ID3:

  1. Almacenar los eventos multimedia en una cola y guardar cada ID de contenido multimedia junto con sus marca de tiempo (si el reproductor muestra).
  2. En cada actualización del reproductor, o con una frecuencia determinada (recomendada 500 ms), comprueba la cola de eventos multimedia para ver los eventos reproducidos recientemente por comparando las marcas de tiempo del evento con el cabezal de reproducción
  3. Para los eventos multimedia que confirmas que se reprodujeron, busca el tipo el ID de medios en las etiquetas almacenadas de la pausa publicitaria. Ten en cuenta que las etiquetas almacenadas solo pueden contener un prefijo del ID de medios, por lo que no es posible establecer una concordancia exacta.
  4. Usa “progreso” eventos para hacer un seguimiento de si un usuario está dentro de una pausa publicitaria. No envíes estos eventos al extremo de verificación de medios. Para otro evento , agrega el ID de medios al extremo de verificación de medios y realiza una solicitud GET para rastrear la reproducción.
  5. Quita el evento multimedia de la fila.

Cuerpo de la solicitud de ejemplo

https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/

Respuestas de ejemplo

Accepted for asynchronous verification - HTTP/1.1 202 Accepted
Successful empty response - HTTP/1.1 204 No Content
Media verification not found - HTTP/1.1 404 Not Found
Media verification sent by someone else - HTTP/1.1 409 Conflict

Puedes verificar los eventos de seguimiento en Actividad de Novedades. Supervisión

4. Actualiza los parámetros de la sesión de transmisión en vivo

Es posible que desees ajustar los parámetros de tu sesión después de que haya habido una transmisión. crear. Para hacerlo, solicita la URL de actualización de sesión.

Cuerpo de la solicitud de ejemplo

https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/session

{
  key1 : "value1",
  stream_parameter1 : "value2"
}

Ejemplo de cuerpo de respuesta

Successful response would be to look for - HTTP/1.1 200

Limitaciones

Si usas la API en WebView, se aplican las siguientes limitaciones con respecto en la segmentación:

  • UserAgent: El parámetro usuario-agente se pasa como valor específico del navegador. en lugar de en la plataforma subyacente.
  • rdid: idtype, is_lat: El ID de dispositivo no se pasa correctamente, lo que limita las capacidades de la las siguientes funciones:
    • Limitación de frecuencia
    • Rotación secuencial de anuncios
    • Segmentación de público

Prácticas recomendadas

Ten en cuenta que el extremo de metadatos de los índices de las transmisiones en vivo se basa en el de la etiqueta ID3 correspondiente. Se diseñó de este modo para evitar el uso del extremo de metadatos para hacer ping de inmediato a todos los nodos de verificación.

Recursos adicionales