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

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 funciones básicas que proporciona el SDK de IMA de DAI. Para usuarios específicos para obtener más información sobre la compatibilidad o las funciones compatibles, comunícate con tu administrador de cuentas.

Implemente la API de DAI para transmisiones de VOD

La API de DAI admite transmisiones de VOD mediante los protocolos HLS y DASH. Pasos descritos en esta guía se aplican a ambos protocolos.

Si deseas integrar la API en tu aplicación para transmisiones de VOD, completa los siguientes labs: los siguientes pasos:

  1. Solicita una transmisión mediante una llamada POST al extremo de transmisión:

    Ejemplo de cuerpo de la solicitud:

    https://dai.google.com/ondemand/v1/dash/content/2559737/vid/tos-dash/stream
    
      {
        key1 : "value1",
        stream_parameter1 : "value2"
      }
    

    Ejemplo de cuerpo de respuesta:

    {
       "stream_id":"d32f8920-612a-4d46-8bc7-d73fd6c17c85",
       "total_duration":636.458,
       "content_duration":596.458,
       "valid_for":"8h0m0s",
       "valid_until":"2020-06-04T20:39:41.274707306-07:00",
       "stream_manifest":"https://dai.google.com/ondemand/dash/content/2559737/vid/tos-dash/ATL/streams/d32f8920-612a-4d46-8bc7-d73fd6c17c85/manifest.mpd",
       "media_verification_url":"https://dai.google.com/view/p/service/vod/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/loc/ATL/network/124319096/content/2559737/vid/tos-dash/media/",
       "ad_breaks":[
          {
             "type":"pre",
             "start":0,
             "duration":10,
             "ads":[
                {
                   "seq":1,
                   "duration":10,
                   "title":"External NCA1C1L1 Preroll",
                   "description":"External NCA1C1L1 Preroll ad",
                   "clickthrough_url":"https://dai.google.com/ondemand/v1/dash/content/2474148/vid/bbb-clear/location/ATL/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/videoclick/5489259204425938365",
                   "events":[
                      {
                         "time":0.1,
                         "type":"start"
                      },
                      {
                         "time":2.5,
                         "type":"firstquartile"
                      },
                      {
                         "time":4.75,
                         "type":"midpoint"
                      },
                      {
                         "time":7.5,
                         "type":"thirdquartile"
                      },
                      {
                         "time":9,
                         "type":"complete"
                      }
                   ]
                }
             ]
          },
          {
             "type":"mid",
             "start":45,
             "duration":10,
             "ads":[
                {.... }
                   ]
                }
             ]
          },
          {
             "type":"post",
             "start":626.458,
             "duration":10,
             "ads":[...]
          }
       ]
    }
    

    Respuesta de error

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

  2. Analiza la respuesta JSON y almacena los siguientes valores:

    • stream_id
    • stream_manifest
    • media_verification_url
    • ad_breaks
  3. Para realizar la verificación de medios, escucha 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, realiza un seguimiento de la reproducción agregando el ID de medios al extremo de verificación de medios y haciendo un GET.

    Ejemplo de cuerpo de la solicitud:

    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. Opcional: Usa los datos de ad_breaks de la respuesta de creación de transmisión para ver qué tipo de evento se activó.

  5. Quita el evento multimedia de la fila.

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 del dispositivo es no se pasan correctamente, lo que limita las siguientes funciones:
    • Limitación de frecuencia
    • Rotación secuencial de anuncios
    • Segmentación de público

Prácticas recomendadas

Asignar etiquetas ID3 al tipo de evento adecuado es una tarea tediosa en VOD. Usa el mostró información de ad_breaks en el JSON para buscar el evento directamente, como como harías con el contenido en vivo.

Recursos adicionales