A API de Inserção de anúncios dinâmicos (DAI) permite o acesso a streams rentabilizadas onde o SDK para IMA não é suportado (por exemplo, smart TVs). O IMA é obrigatório nas plataformas em que está disponível. A API suporta todas as funcionalidades existentes da DAI, contudo, estas requerem a implementação do publicador.
Requisitos ao usar a API
A seguinte funcionalidade requer a implementação do publicador quando usa a API:
- Aceder à stream DAI através do ponto final HTTP e processar respostas JSON
- Construir os parâmetros da API e segmentar chaves-valores
- Implementar as experiências do utilizador (por exemplo, cliques de destino e ícones)
- Ouvir eventos ID3 no leitor para implementar controlos do leitor e acompanhamento/medição de anúncios para linear em direto e VOD
- Implementar comportamentos de deslocamento, regressos e funcionalidade de marcadores
- Seleção de formatos de streaming: HLS ou DASH
Pode usar as seguintes informações para saber como pedir e processar streams através da API para streams de vídeo a pedido ou lineares em direto.
Vídeo a pedido (VOD)
A API VOD segue um ciclo de vida simples, desde a criação da stream à validação da reprodução do anúncio:
-
Solicite uma stream com HTTP POST através do ID da origem do conteúdo (
cmsid
) e do ID do vídeo (vid
), com a chave da API ou o símbolo HMAC, e parâmetros de segmentação de anúncios.https://dai.google.com/ondemand/v1/hls/content/<contentId>/vid/<vid>/stream
-
Processe a resposta para o manifesto de reprodução do conteúdo, as legendas, a pausa para anúncio e as informações de tempo do conteúdo.
{
"content_duration": 123.451,
"stream_manifest": "https://dai.google.com/.../master.m3u8",
"media_verification_url": "https://dai.google.com/.../media/",
"stream_id": "9ca0c62a-3291-4f95-986f-d1721f8b96f0",
"total_duration": 163.451,
"valid_for": "8h0m0s",
"valid_until": "2018-05-16T23:21:16.558053292-07:00",
"ad_breaks": [...]
}
-
Para cada pausa para anúncio, processe os detalhes do anúncio individual referentes aos elementos do anúncio, como cliques de destino, associados e informações da duração da pausa para anúncio para a conversão na IU.
{
"clickthrough_url": "https://dai.google.com/.../videoclick/1835622921898938400",
"description": "Example pre-roll ad",
"duration": 10,
"seq": 1,
"title": "Example pre-roll"
}
-
Para cada anúncio, acione
media_verification_url
com o valor ID3 anexado da reprodução de multimédia do anúncio.https://dai.google.com/view/p/service/vod/stream/3647080d-c223-442e-a364-c456ee712ece/loc/CBF/network/124319096/content/2474148/vid/bbb-clear/media/
Os eventos de progresso são fornecidos para diferenciar a reprodução dentro e fora de uma pausa para anúncios e não são utilizados para outros efeitos de acompanhamento de anúncios.
Pode identificar eventos de progresso ao pesquisar o identificador de multimédia no ficheiro json de metadados e confirmar se o campo type
está definido como progress
. O ID3 de progresso pode ser utilizado, por exemplo, para bloquear os controlos de vídeo.
Streams lineares em direto
A API linear segue um ciclo de vida simples, desde a criação da stream à validação da reprodução do anúncio:
-
Solicite uma stream com HTTP POST através do ID do evento, com a chave da API ou o símbolo HMAC, e parâmetros de segmentação de anúncios.
https://dai.google.com/linear/v1/hls/event/<eventid>/stream
https://dai.google.com/linear/v1/dash/event/<eventid>/stream -
Processe a resposta para o manifesto de reprodução do conteúdo, as legendas, a pausa para anúncio e as informações de tempo do conteúdo.
{
"stream_manifest": "https://dai.google.com/linear/.../master.m3u8",
"media_verification_url": "https://dai.google.com/linear/.../media/",
"metadata_url": "https://dai.google.com/linear/.../metadata",
"polling_frequency": 10,
"stream_id": "793bf10c-2323-404d-b23b-0a529d96e651:MRN",
}
-
Solicite os metadados do anúncio na frequência da sondagem ou para cada ID de multimédia do anúncio ID3, anexando o ID de multimédia do anúncio ao URL de metadados num parâmetro de consulta.
{
"ad_breaks": {
"0001127859": {
"ads": 3,
"duration": 30,
"type": "mid"
}
},
"ads": {
"0001127859_ad2": {
"ad_break_id": "0001127859",
"ad_id": "39135088",
"ad_system": "GDFP",
"clickthrough_url": "http://pubads.g.doubleclick.net/pcs/click?...",
"creative_id": "103990016608",
"description": "Example linear 10s ad",
"duration": 10,
"position": 2,
"title": "Example linear ad"
}
},
"tags": {
"google_0028792773": {
"ad": "0001127859_ad2",
"ad_break_id": "0001127859",
"type": "firstquartile"
}, ...
}
}
-
Para cada anúncio, acione
media_verification_url
, anexando o valor ID3 da reprodução de multimédia do anúncio.https://dai.google.com/view/p/service/linear/stream/f0b8970b-cacb-4a9f-83ee-2ef29db47129:CBF2/loc/CBF2/network/51636543/event/sN_IYUG8STe1ZzhIIE_ksA/media/
Os eventos de progresso são fornecidos para diferenciar a reprodução dentro e fora de uma pausa para anúncios e não são utilizados para outros efeitos de acompanhamento de anúncios.
Pode identificar eventos de progresso ao pesquisar o identificador de multimédia no ficheiro json de metadados e confirmar se o campo escrever
está definido como progresso
. O ID3 de progresso pode ser utilizado, por exemplo, para bloquear os controlos de vídeo.
Detete quando uma pausa para anúncios começou/terminou na stream através da API de DAI
A DAI insere metadados ID3 para eventos de quartil (como início, primeiro quartil, ponto intermédio, terceiro quartil e concluído) em segmentos de anúncios e eventos de progresso (a cada segundo) em segmentos de anúncios e de faixas. Quando uma etiqueta ID3 é observada pela primeira vez, o evento "pausa para anúncios iniciada" pode ser criado. Posteriormente, quando não existirem etiquetas ID3 para, por exemplo, 2,5 segundos, a "pausa para anúncios terminada" pode ser aumentada. As etiquetas ID3 inseridas na DAI podem ser identificadas pelo respetivo prefixo "google_
" e pela respetiva presença no ficheiro JSON de metadados.
Atualize dinamicamente a segmentação e/ou as chaves-valores por stream de utilizador
O session_update_url
pode ser utilizado para substituir todos os parâmetros da etiqueta do anúncio utilizados para futuros pedidos de anúncios para uma stream em direto (semelhante a replaceAdTagParameters
). Isto é útil nos casos em que as informações de segmentação têm de ser atualizadas por programa e por utilizador (por exemplo, para desportos em direto em que a segmentação pode não ser conhecida antecipadamente).