A API Dynamic ad insertion permite solicitar e acompanhar streams de vídeo on demand (VOD) da DAI. Os fluxos HLS e DASH são aceitos.
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 uma transmissão HLS DAI para a origem de conteúdo e o ID do vídeo especificados.
Cria uma transmissão DASH DAI para a origem de conteúdo e o ID do vídeo especificados. |
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 |
stringA 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 |
stringO ID do CMS do stream. |
video-id |
stringO ID do vídeo do stream. |
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. |
| Modificar os parâmetros do stream | Opcional | Modifique os valores padrão de um parâmetro de criação de stream. |
| Autenticação HMAC | Opcional | Autenticar usando um token baseado em HMAC. |
Corpo da resposta
Se a solicitação for bem-sucedida, o corpo da resposta conterá um novo
Stream. Para transmissões de beacons do lado do servidor, esse 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 streams sem beacons do lado do servidor.
O Verifications contém um ou mais elementos Verification que listam os recursos
e metadados necessários para verificar a reprodução do criativo 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 de anúncio durante a reprodução, faça uma
solicitação imediatamente usando o media_verification_url do 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 transmissões de beacon no 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 Contentse a verificação de mídia for bem-sucedida e todos os pings forem enviados.HTTP/1.1 404 Not Foundse a solicitação não puder verificar a mídia devido à formatação ou expiração incorreta do URL.HTTP/1.1 404 Not Foundse uma solicitação de verificação anterior para esse documento de identidade foi bem-sucedida.HTTP/1.1 409 Conflictse outra solicitação já estiver enviando pings no momento.
IDs de mídia de anúncios (HLS)
Os identificadores de mídia de anúncios serão codificados em metadados temporizados do 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 a media_verification_url para cada solicitação de verificação de anúncio.
IDs de mídia de anúncios (DASH)
Os identificadores de mídia de anúncios são inseridos no manifesto usando o
elemento EventStream do DASH.
Cada EventStream terá um URI de ID do esquema de urn:google:dai:2018.
Eles vão conter eventos com o atributo messageData que contém 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
Stream
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 |
stringIdentificador do stream. |
total_duration |
numberDuração do streaming em segundos. |
content_duration |
numberDuração do conteúdo, sem anúncios, em segundos. |
valid_for |
stringA stream de duração é válida para o formato "00h00m00s". |
valid_until |
stringData de validade do stream, no formato RFC 3339. |
subtitles |
[object(Subtitle)]Uma lista de legendas. Omitido se estiver vazio. Somente HLS. |
hls_master_playlist |
string(SUSPENSO) URL da playlist principal HLS. Use stream_manifest. Somente HLS. |
stream_manifest |
stringO manifesto do stream. Corresponde à playlist master no HLS e ao MPD no DASH. Esse é o único campo, além de "stream_id", que está presente na resposta ao criar um stream de beacon no servidor. |
media_verification_url |
stringURL 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 intervalos de anúncio. Omitido se estiver vazio. |
AppleTV
AppleTV contém informações específicas para dispositivos Apple TV.| Representação JSON |
|---|
{
"interstitials_url": string,
} |
| Campos | |
|---|---|
interstitials_url |
stringURL dos intersticiais. |
AdBreak
"AdBreak" descreve um único intervalo de anúncio no stream. Ele contém uma posição, uma duração, um tipo (intermediário/precedente/seguinte) e uma lista de anúncios.| Representação JSON |
|---|
{ "type": string, "start": number, "duration": number, "ads": [object(Ad)], } |
| Campos | |
|---|---|
type |
stringOs tipos de intervalo válidos são: mid, pre e post. |
start |
numberPosição no stream em que o intervalo começa, em segundos. |
duration |
numberDuraçã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 do anúncio 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),
"skip_metadata": object(SkipMetadata),
"extensions": [],
} |
| Campos | |
|---|---|
seq |
numberPosição do anúncio no intervalo. |
start |
numberPosição no stream em que o anúncio começa, em segundos. |
duration |
numberDuração do anúncio, em segundos. |
title |
stringTítulo opcional do anúncio. |
description |
stringDescrição opcional do anúncio. |
advertiser |
stringIdentificador do anunciante opcional. |
ad_system |
stringSistema de anúncios opcional. |
ad_id |
stringID do anúncio opcional. |
creative_id |
stringID do criativo opcional. |
creative_ad_id |
stringID do criativo do anúncio opcional. |
deal_id |
stringID da transação opcional. |
clickthrough_url |
stringURL 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 de verificação de medição aberta opcionais que listam os recursos e metadados necessários para executar o código de medição de terceiros para verificar a reprodução do criativo. |
universal_ad_id |
object(UniversalAdID)ID universal do anúncio opcional. |
companions |
[object(Companion)]Complementos opcionais que podem ser mostrados com esse anúncio. |
interactive_file |
object(InteractiveFile)Criativo interativo opcional (SIMID) que precisa ser mostrado durante a veiculação do anúncio. |
skip_metadata |
object(SkipMetadata)Metadados opcionais para anúncios puláveis. Se definido, isso indica que o anúncio pode ser pulado e inclui instruções sobre como processar a IU de pular e o evento de acompanhamento. |
extensions |
stringLista opcional de todos os nós <Extension> no VAST. |
Evento
O evento contém um tipo de evento e um horário de apresentação.| Representação JSON |
|---|
{ "time": number, "type": string, } |
| Campos | |
|---|---|
time |
numberHorário da apresentação deste evento. |
type |
stringO tipo do evento. |
Legenda
A legenda descreve uma faixa de legenda do sidecar para o stream de vídeo. Ele armazena dois formatos de legenda: TTML e WebVTT. O atributo TTMLPath contém o URL do arquivo sidecar TTML, e o atributo WebVTTPath contém um URL para o arquivo sidecar WebVTT.| Representação JSON |
|---|
{
"language": string,
"language_name": string,
"ttml": string,
"webvtt": string,
} |
| Campos | |
|---|---|
language |
stringUm código de idioma, como "en" ou "de". |
language_name |
stringNome descritivo do idioma. Ele diferencia o conjunto específico de legendas se houver vários conjuntos para o mesmo idioma |
ttml |
stringURL opcional para o arquivo sidecar TTML. |
webvtt |
stringURL opcional para o arquivo sidecar WebVTT. |
SkipMetadata
O SkipMetadata fornece as informações necessárias para que os clientes processem eventos de omissão para anúncios puláveis.| Representação JSON |
|---|
{
"offset": number,
"tracking_url": string,
} |
| Campos | |
|---|---|
offset |
numberO deslocamento indica o tempo em segundos no anúncio que o player precisa esperar para renderizar o botão "Pular". Omitido se não for fornecido no VAST. |
tracking_url |
stringO TrackingURL contém um URL que precisa receber um ping no evento de omissão. |
Ícone
O ícone contém informações sobre um ícone 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
O ClickData contém informações sobre um clique no ícone.| Representação JSON |
|---|
{
"url": string,
} |
| Campos | |
|---|---|
url |
string |
FallbackImage
FallbackImage contém informações sobre uma imagem de substituto do 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 |
stringIdentificador do sistema de anúncios. |
ad_id |
stringID do anúncio usado para o anúncio de wrapper. |
creative_id |
stringID do criativo usado para o anúncio de wrapper. |
creative_ad_id |
stringID do criativo do anúncio usado para o wrapper. |
deal_id |
stringID da transação opcional para o anúncio de wrapper. |
Verificação
A verificação contém informações sobre o Open Measurement, que facilita a medição de visibilidade e verificação de terceiros. No momento, apenas recursos JavaScript são aceitos. Consulte 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 |
stringO 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 |
stringUma string opaca transmitida para o código de verificação de inicialização. |
JavaScriptResource
O JavaScriptResource contém informações para verificação por JavaScript.| Representação JSON |
|---|
{
"script_url": string,
"api_framework": string,
"browser_optional": boolean,
} |
| Campos | |
|---|---|
script_url |
stringURI para payload do JavaScript. |
api_framework |
stringAPIFramework é o nome do framework de vídeo que executa o código de verificação. |
browser_optional |
booleanIndica se esse script pode ser executado fora de um navegador. |
TrackingEvent
O TrackingEvent contém URLs que precisam ser pingados pelo cliente em determinadas situações.| Representação JSON |
|---|
{
"event": string,
"uri": string,
} |
| Campos | |
|---|---|
event |
stringO tipo do evento de rastreamento. |
uri |
stringO evento de rastreamento a ser verificado. |
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 |
stringO ID universal do anúncio do criativo selecionado para o anúncio. |
id_registry |
stringUma string usada para identificar o URL do site de registro em que o ID de publicidade universal do criativo selecionado está catalogado. |
Companion
O complementar contém informações sobre anúncios complementares que podem ser exibidos com o anúncio.| Representação JSON |
|---|
{ "click_data": object(ClickData), "creative_type": string, "height": int32, "width": int32, "resource": string, "type": string, "ad_slot_id": string, "api_framework": string, "tracking_events": [object(TrackingEvent)], } |
| Campos | |
|---|---|
click_data |
object(ClickData)Os dados de cliques desse complemento. |
creative_type |
stringO atributo CreativeType no nó <StaticResource> no VAST, se ele for um companheiro do tipo estático. |
height |
int32A altura em pixels desse companheiro. |
width |
int32A largura em pixels desse companheiro. |
resource |
stringPara companheiros estáticos e de iframe, esse é o URL que será carregado e exibido. Para complementares HTML, esse será o snippet de HTML que será exibido como complementar. |
type |
stringTipo do companheiro. Ele pode ser estático, iframe ou HTML. |
ad_slot_id |
stringO ID do slot para esse companheiro. |
api_framework |
stringO framework da API para esse complemento. |
tracking_events |
[object(TrackingEvent)]Lista de eventos de rastreamento para esse companheiro. |
InteractiveFile
O InteractiveFile contém informações sobre o criativo interativo (ou seja, o 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 |
stringO URL do criativo interativo. |
type |
stringO tipo MIME do arquivo fornecido como recurso. |
variable_duration |
booleanIndica se o criativo pode pedir a extensão da duração. |
ad_parameters |
stringO valor do nó <AdParameters> no VAST. |