API Dynamic Ad Insert para streams de VOD

A API de DAI do Google permite implementar streams ativados para DAI do Google em ambientes em que não há suporte para a implementação do SDK do IMA. Recomendamos que você ainda use IMA em plataformas compatíveis com o SDK do IMA.

Recomendamos o uso da API DAI nas seguintes plataformas:

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

A API é compatível com os recursos básicos fornecidos pelo SDK de DAI do IMA. Para casos sobre compatibilidade ou recursos com suporte, entre em contato com seu gerente de contas.

Implementar a API DAI para streams de VOD

A API DAI é compatível com streams de VOD usando os protocolos HLS e DASH. Etapas neste guia se aplicam aos dois protocolos.

Para integrar a API ao seu aplicativo para streams de VOD, conclua o etapas a seguir:

  1. Solicite um stream fazendo uma chamada POST para o endpoint do stream:

    Exemplo de corpo da solicitação:

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

    Exemplo de corpo de resposta:

    {
       "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":[...]
          }
       ]
    }
    

    Resposta de erro

    Em caso de erros, os códigos de erro HTTP padrão são retornados sem JSON corpo da resposta.

  2. Analise a resposta JSON e armazene os seguintes valores:

    • stream_id
    • stream_manifest
    • media_verification_url
    • ad_breaks
  3. Para realizar a verificação de mídia, detecte eventos ID3:

    1. Armazenar os eventos de mídia em uma fila, salvando cada ID de mídia junto com os respectivos carimbo de data/hora (se for exibido pelo jogador).
    2. Em cada atualização do player ou em uma frequência definida (recomendado) 500 ms), verifique a fila de eventos de mídia em busca de eventos reproduzidos recentemente por comparando os carimbos de data/hora dos eventos com o marcador.
    3. Para eventos de mídia que você confirmou ter sido reproduzidos, acompanhe a reprodução por anexando o ID da mídia ao endpoint de verificação de mídia e fazendo uma GET.

    Exemplo de corpo da solicitação:

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

    Exemplos de resposta:

    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
    

    Verifique os eventos de rastreamento em Atividade de transmissão Monitorar.

  4. Opcional: use os dados ad_breaks da resposta de criação de stream para procurar. que tipo de evento foi acionado.

  5. Remova o evento de mídia da fila.

Limitações

Ao usar a API em WebViews, as seguintes limitações se aplicam com relação à segmentação:

  • UserAgent: o parâmetro do user agent é transmitido como um valor específico do navegador. em vez da plataforma subjacente.
  • rdid, idtype, is_lat: o ID do dispositivo é não foi aprovado corretamente, o que limita os seguintes recursos:
    • Limite de frequência
    • Rotação de anúncios sequencial
    • Segmentação de público-alvo

Práticas recomendadas

Mapear tags ID3 para o tipo de evento apropriado é tedioso no VOD. Use o retornou informações de ad_breaks no JSON para pesquisar o evento diretamente, como que faria com conteúdo ao vivo.

Outros recursos