Com a API Dynamic Ad Insert, é possível solicitar e rastrear streams de vídeo on demand (VOD) da DAI. As transmissões HLS e DASH são compatíveis.
Serviço: dai.google.com
O caminho do método stream
é relativo a https://dai.google.com
Método: stream
Métodos | |
---|---|
stream |
POST /ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream
Cria um stream da DAI HLS para a origem do conteúdo e o ID do vídeo fornecidos.
Cria um stream da DAI DASH para a origem do conteúdo e o ID do vídeo fornecidos. |
Solicitação HTTP
POST https://dai.google.com/ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream
POST https://dai.google.com/ondemand/v1/dash/content/{content-source}/vid/{video-id}/stream
Cabeçalho da solicitação
Parâmetros | |
---|---|
api‑key |
string A chave de API, fornecida ao criar um stream, precisa ser válida para a rede do editor. Em vez de fornecê-la no corpo da solicitação, a chave de API pode ser transmitida no cabeçalho de autorização HTTP com o seguinte formato: Authorization: DCLKDAI key="<api-key>" |
Parâmetros de caminho
Parâmetros | |
---|---|
content-source |
string O ID do CMS do stream. |
video-id |
string O ID do vídeo da transmissão. |
Corpo da solicitação
O corpo da solicitação é do tipo application/x-www-form-urlencoded
e contém os
seguintes parâmetros:
Parâmetros | ||
---|---|---|
dai-ssb |
Opcional | Defina como |
Parâmetros de segmentação do DFP | Opcional | Parâmetros de segmentação adicionais. |
Substituir os parâmetros do stream | Opcional | Modifique os valores padrão de um parâmetro de criação de stream. |
Autenticação HMAC | Opcional | Faça a autenticação usando um token baseado em HMAC. |
Corpo da resposta
Se bem-sucedido, o corpo da resposta vai incluir um novo
Stream
. Para streams de beacon do lado do servidor, Stream
contém apenas os campos stream_id
e stream_manifest
.
Open Measurement
O campo Verifications
contém informações para a verificação do Open Measurement para fluxos de beacon que não são do lado do servidor.
Verifications
contém um ou mais elementos Verification
que listam os recursos
e metadados necessários para verificar a reprodução de criativos com o código de medição de terceiros.
Somente JavaScriptResource
é aceito. Para mais informações, consulte o IAB Tech Lab e a especificação VAST 4.1.
Método: verificação de mídia
Depois de encontrar um identificador de mídia do anúncio durante a reprodução, faça uma
solicitação imediatamente usando o media_verification_url
no endpoint
stream
. O media_verification_url
é um caminho absoluto.
As solicitações de verificação de mídia não são necessárias para streams de beacon do servidor,
em que o servidor inicia a verificação de mídia.
As solicitações para o endpoint media verification
são idempotentes.
Métodos | |
---|---|
media verification |
GET {media_verification_url}/{ad_media_id}
Notifica a API sobre um evento de verificação de mídia. |
Solicitação HTTP
GET {media-verification-url}/{ad-media-id}
Corpo da resposta
media verification
retorna as seguintes respostas:
HTTP/1.1 204 No Content
se a verificação de mídia for bem-sucedida e todos os pings forem enviados.HTTP/1.1 404 Not Found
se a solicitação não puder verificar a mídia devido à formatação ou expiração do URL incorreta.HTTP/1.1 404 Not Found
se uma solicitação de verificação anterior desse ID tiver sido bem-sucedida.HTTP/1.1 409 Conflict
se outra solicitação já estiver enviando pings nesse momento.
IDs de mídia do anúncio (HLS)
Os identificadores de mídia do anúncio serão codificados em metadados com marcação de tempo HLS usando a chave TXXX
,
reservada para frames de "informações de texto definidas pelo usuário". O conteúdo do frame
não será criptografado e sempre vai começar com o texto "google_"
.
Todo o conteúdo de texto do frame precisa ser anexado ao media_verification_url para cada solicitação de verificação de anúncio.
IDs de mídia do anúncio (DASH)
Os identificadores de mídia de anúncio serão inseridos no manifesto com o uso do
elemento EventStream
do DASH.
Cada EventStream
terá um URI de ID de esquema de urn:google:dai:2018
.
Eles contêm eventos com o atributo messageData
e um
ID de mídia do anúncio que começa com “google_”
. Todo o conteúdo do atributo messageData
precisa ser anexado ao media_verification_url para cada solicitação
de verificação de anúncio.
Dados de resposta
Streaming
O stream é usado para renderizar uma lista de todos os recursos de um stream recém-criado no formato JSON .Representação JSON |
---|
{ "stream_id": string, "total_duration": number, "content_duration": number, "valid_for": string, "valid_until": string, "subtitles": [object(Subtitle)], "hls_master_playlist": string, "stream_manifest": string, "media_verification_url": string, "apple_tv": object(AppleTV), "ad_breaks": [object(AdBreak)], } |
Campos | |
---|---|
stream_id |
string Identificador do stream. |
total_duration |
number Duração da transmissão em segundos. |
content_duration |
number Duração do conteúdo, sem anúncios, em segundos. |
valid_for |
string A duração do stream é válida no formato "00h00m00s". |
valid_until |
string Data de validade do stream até, no formato RFC 3339. |
subtitles |
[object(Subtitle)] Uma lista de legendas. Omitido se estiver vazio. Somente HLS. |
hls_master_playlist |
string (Descontinuado) URL da playlist principal de HLS. Use stream_manifest. Somente HLS. |
stream_manifest |
string O manifesto do stream. Corresponde à playlist principal em HLS e à MPD no DASH. Esse é o único campo além de "stream_id" que está presente na resposta ao criar um stream de beacon do servidor. |
media_verification_url |
string URL de verificação de mídia. |
apple_tv |
object(AppleTV) Informações opcionais específicas para dispositivos AppleTV. Somente HLS. |
ad_breaks |
[object(AdBreak)] Uma lista de AdBreaks. Omitido se estiver vazio. |
AppleTV
A Apple TV contém informações específicas dos dispositivos Apple TV.Representação JSON |
---|
{ "interstitials_url": string, } |
Campos | |
---|---|
interstitials_url |
string URL dos intersticiais. |
AdBreak
O AdBreak descreve um único intervalo de anúncio no stream. Ele contém uma posição, uma duração, um tipo (meio/pré/pós) e uma lista de anúncios.Representação JSON |
---|
{ "type": string, "start": number, "duration": number, "ads": [object(Ad)], } |
Campos | |
---|---|
type |
string Os tipos de intervalo válidos são: mid, pre e post. |
start |
number Posição no stream em que o intervalo começa, em segundos. |
duration |
number Duração do intervalo de anúncio em segundos. |
ads |
[object(Ad)] Uma lista de anúncios. Omitido se estiver vazio. |
Anúncio
O anúncio descreve um anúncio no stream. Ele contém a posição do anúncio no intervalo, a duração dele e alguns metadados opcionais.Representação JSON |
---|
{ "seq": number, "start": number, "duration": number, "title": string, "description": string, "advertiser": string, "ad_system": string, "ad_id": string, "creative_id": string, "creative_ad_id": string, "deal_id": string, "clickthrough_url": string, "icons": [object(Icon)], "wrappers": [object(Wrapper)], "events": [object(Event)], "verifications": [object(Verification)], "universal_ad_id": object(UniversalAdID), "companions": [object(Companion)], "interactive_file": object(InteractiveFile), } |
Campos | |
---|---|
seq |
number Posição do anúncio no intervalo. |
start |
number Posição no stream em que o anúncio inicia, em segundos. |
duration |
number Duração do anúncio em segundos. |
title |
string Título opcional do anúncio. |
description |
string Descrição opcional do anúncio. |
advertiser |
string Identificador opcional do anunciante. |
ad_system |
string Sistema de anúncios opcional. |
ad_id |
string ID do anúncio opcional. |
creative_id |
string ID do criativo opcional. |
creative_ad_id |
string ID opcional do anúncio do criativo. |
deal_id |
string ID opcional da transação. |
clickthrough_url |
string URL de clique opcional. |
icons |
[object(Icon)] Uma lista de ícones, omitida se estiver vazia. |
wrappers |
[object(Wrapper)] Uma lista de Wrappers. Omitido se estiver vazio. |
events |
[object(Event)] Uma lista dos eventos no anúncio. |
verifications |
[object(Verification)] Entradas opcionais de verificação do Open Measurement, que listam os recursos e metadados necessários para executar o código de medição de terceiros e verificar a reprodução de criativos. |
universal_ad_id |
object(UniversalAdID) ID universal do anúncio opcional. |
companions |
[object(Companion)] Complementares opcionais que podem ser exibidos com o anúncio. |
interactive_file |
object(InteractiveFile) Criativo interativo opcional (SIMID) que deve ser exibido durante a reprodução do anúncio. |
Evento
O evento contém um tipo de evento e o horário de apresentação dele.Representação JSON |
---|
{ "time": number, "type": string, } |
Campos | |
---|---|
time |
number Tempo da apresentação deste evento. |
type |
string O tipo desse evento. |
Legenda
A legenda descreve uma faixa de legenda secundária do stream de vídeo. Ele armazena dois formatos de legenda: TTML e WebVTT. O atributo TTMLPath contém o URL para o arquivo sidecar TTML, e o atributo WebVTTPath também contém um URL para o arquivo sidecar WebVTT.Representação JSON |
---|
{ "language": string, "language_name": string, "ttml": string, "webvtt": string, } |
Campos | |
---|---|
language |
string Um código de idioma, como "en" ou "de". |
language_name |
string Nome descritivo do idioma. Ela diferencia o conjunto específico de legendas caso existam vários conjuntos para o mesmo idioma |
ttml |
string URL opcional para o arquivo secundário de TTML. |
webvtt |
string URL opcional para o arquivo secundário do WebVTT. |
Icon
O ícone contém informações sobre um ícone do VAST.Representação JSON |
---|
{ "click_data": object(ClickData), "creative_type": string, "click_fallback_images": [object(FallbackImage)], "height": int32, "width": int32, "resource": string, "type": string, "x_position": string, "y_position": string, "program": string, "alt_text": string, } |
Campos | |
---|---|
click_data |
object(ClickData) |
creative_type |
string |
click_fallback_images |
[object(FallbackImage)] |
height |
int32 |
width |
int32 |
resource |
string |
type |
string |
x_position |
string |
y_position |
string |
program |
string |
alt_text |
string |
ClickData
ClickData contém informações sobre o clique de um ícone.Representação JSON |
---|
{ "url": string, } |
Campos | |
---|---|
url |
string |
FallbackImage
Substituto Image contém informações sobre uma imagem substituta VAST.Representação JSON |
---|
{ "creative_type": string, "height": int32, "width": int32, "resource": string, "alt_text": string, } |
Campos | |
---|---|
creative_type |
string |
height |
int32 |
width |
int32 |
resource |
string |
alt_text |
string |
Wrapper
O wrapper contém informações sobre um anúncio wrapper. Ele não inclui um ID de transação se ele não existir.Representação JSON |
---|
{ "system": string, "ad_id": string, "creative_id": string, "creative_ad_id": string, "deal_id": string, } |
Campos | |
---|---|
system |
string Identificador do sistema de anúncios. |
ad_id |
string ID do anúncio usado para o anúncio wrapper. |
creative_id |
string ID do criativo usado para o anúncio wrapper. |
creative_ad_id |
string ID do anúncio do criativo usado para o anúncio wrapper. |
deal_id |
string ID da transação opcional para o anúncio wrapper. |
Verificação
A verificação contém informações para o Open Measurement, o que facilita a medição da visibilidade e da verificação de terceiros. Atualmente, apenas recursos JavaScript são suportados. Acesse https://iabtechlab.com/standards/open-measurement-sdk/Representação JSON |
---|
{ "vendor": string, "java_script_resources": [object(JavaScriptResource)], "tracking_events": [object(TrackingEvent)], "parameters": string, } |
Campos | |
---|---|
vendor |
string O fornecedor de verificação. |
java_script_resources |
[object(JavaScriptResource)] Lista de recursos JavaScript para a verificação. |
tracking_events |
[object(TrackingEvent)] Lista de eventos de rastreamento para a verificação. |
parameters |
string Uma string opaca foi transmitida para o código de verificação de inicialização. |
JavaScriptResource
JavaScriptResource contém informações para verificação via JavaScript.Representação JSON |
---|
{ "script_url": string, "api_framework": string, "browser_optional": boolean, } |
Campos | |
---|---|
script_url |
string URI para payload do JavaScript. |
api_framework |
string APIFramework é o nome do framework de vídeo que aplica o código de verificação. |
browser_optional |
boolean Define se o script pode ser executado fora de um navegador. |
TrackingEvent
O TrackingEvent contém URLs que devem receber um ping pelo cliente em determinadas situações.Representação JSON |
---|
{ "event": string, "uri": string, } |
Campos | |
---|---|
event |
string É o tipo de evento de rastreamento. Atualmente, a única opção é "verificationNotExecuted", conforme definido na especificação VAST 4.1. |
uri |
string O evento de rastreamento que receberá o ping. |
UniversalAdID
O UniversalAdID é usado para fornecer um identificador de criativo exclusivo que é mantido em todos os sistemas de anúncios.Representação JSON |
---|
{ "id_value": string, "id_registry": string, } |
Campos | |
---|---|
id_value |
string O ID universal do anúncio do criativo selecionado para o anúncio. |
id_registry |
string Uma string usada para identificar o URL do site de registro em que o ID universal do anúncio do criativo selecionado é catalogado. |
Complementar
O complementar contém informações sobre os anúncios complementares que podem ser exibidos junto com o anúncio.Representação JSON |
---|
{ "click_data": object(ClickData), "creative_type": string, "height": int32, "width": int32, "resource": string, "type": string, } |
Campos | |
---|---|
click_data |
object(ClickData) Os dados de clique para esse complementar. |
creative_type |
string O atributo CreativeType no nó <StaticResource> do VAST se for um complementar do tipo "estático". |
height |
int32 A altura em pixels do complementar. |
width |
int32 A largura em pixels do complementar. |
resource |
string Para complementares estáticos e iframe, esse será o URL a ser carregado e exibido. Para complementares em HTML, esse será o snippet HTML que deve ser mostrado como o complementar. |
type |
string Tipo desse complementar. Ele pode ser estático, iframe ou HTML. |
InteractiveFile
O InteractiveFile contém informações do criativo interativo (ou seja, SIMID) que precisa ser exibido durante a reprodução do anúncio.Representação JSON |
---|
{ "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, } |
Campos | |
---|---|
resource |
string É o URL do criativo interativo. |
type |
string O tipo MIME do arquivo fornecido como recurso. |
variable_duration |
boolean Se o criativo pode pedir que a duração seja estendida. |
ad_parameters |
string O valor do nó <AdParameters> no VAST. |