Com a API Google DAI, é possível implementar streams ativados para DAI do Google em ambientes onde não há suporte para a implementação do SDK do IMA. Recomendamos que você ainda use o IMA nas plataformas compatíveis.
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 dúvidas específicas sobre compatibilidade ou recursos compatíveis, entre em contato com seu gerente de contas do Google.
Implementar a API DAI para streams de VOD
A API DAI é compatível com transmissões de VOD que usam os protocolos HLS e DASH. As etapas descritas neste guia se aplicam aos dois protocolos.
Para integrar a API ao aplicativo para streams VOD, siga estas etapas:
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 corpo de resposta JSON.
Analise a resposta JSON e armazene os seguintes valores:
stream_id
stream_manifest
media_verification_url
ad_breaks
Para realizar a verificação de mídia, detecte eventos ID3:
- Armazene os eventos de mídia em uma fila, salvando cada ID de mídia com o carimbo de data/hora (se exibido pelo player).
- Sempre que houver uma atualização do player ou, em uma frequência definida (recomendado), 500 ms, verifique a fila de eventos de mídia para ver os eventos reproduzidos recentemente comparando os carimbos de data/hora dos eventos com o marcador.
- Para eventos de mídia que você confirmar que foram reproduzidos, acompanhe a reprodução anexando o ID da mídia ao endpoint de verificação de mídia e fazendo uma solicitação 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
Você pode verificar os eventos de rastreamento no Monitoramento de atividades de streaming.
Opcional: use os dados
ad_breaks
da resposta de criação de stream para consultar que tipo de evento foi disparado.Remove o evento de mídia da fila.
Limitações
Ao usar a API em WebViews, as seguintes limitações se aplicam à 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 é transmitido 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 em VOD. Use as
informações do ad_breaks
retornadas no JSON para procurar o evento diretamente, como
faria com o conteúdo ao vivo.