API Dynamic Ad Insert VOD

Com a API Dynamic Ad Insert, é possível solicitar e acompanhar streams de vídeo on demand (VOD) da DAI. Os streams 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 com HLS para a origem do conteúdo e o ID do vídeo fornecidos.

POST /ondemand/v1/dash/content/{content-source}/vid/{video-id}/stream

Cria um stream da DAI do 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 da 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 da transmissão.

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 true para criar um stream de beacon do servidor. O valor padrão é false. O rastreamento do stream padrão é iniciado pelo cliente e recebe um ping do lado do servidor.

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 a solicitação for bem-sucedida, o corpo da resposta incluirá uma nova 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 servidor. 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 é compatível. 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 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 streams de beacon do lado 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 a formatação ou expiração do URL incorreta.
  • HTTP/1.1 404 Not Found se uma solicitação de verificação anterior desse ID for bem-sucedida.
  • HTTP/1.1 409 Conflict se outra solicitação já estiver enviando pings no momento.

IDs de mídia do anúncio (HLS)

Os identificadores de mídia de anúncio serão codificados nos 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_".

É preciso anexar todo o conteúdo de texto do frame 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 vão ser inseridos no manifesto com o elemento EventStream do DASH.

Cada EventStream terá um URI de ID do esquema de urn:google:dai:2018. Eles conterão eventos com o atributo messageData com 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

Fluxo

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 de 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 transmissão de duração é válida no formato "00h00m00s".
valid_until string

Data de validade da transmissão, 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 master de HLS. Use stream_manifest. somente HLS.
stream_manifest string

O manifesto do stream. Corresponde à playlist master 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 de intersticiais.

AdBreak

O AdBreak descreve um único intervalo de anúncio no stream. Ele contém uma posição, uma duração, um tipo (intermediário/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: intermediário, anterior e posterior.
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.
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 que o anúncio começa, 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 opcional do criativo.
creative_ad_id string

ID opcional do anúncio do criativo.
deal_id string

ID da transação opcional.
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 de verificação opcionais 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 este anúncio.
interactive_file object(InteractiveFile)

Criativo interativo opcional (SIMID) que deve ser exibido durante a reprodução do anúncio.

Evento

"Evento" contém um tipo de evento e um horário de apresentação de um evento.
Representação JSON
{
  "time": number,
  "type": string,
}
Campos
time number

Horário da apresentação deste evento.
type string

O tipo deste evento.

Legenda

A legenda descreve uma faixa de legenda de arquivo secundário para o 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

Ícone que 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

ClickData contém informações sobre o clique de um ícone.
Representação JSON
{
  "url": string,
}
Campos
url string

FallbackImage

FallbackImage 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 incluirá 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 do Open Measurement, o que facilita a visibilidade e a medição da verificação de terceiros. Atualmente, só há suporte para recursos JavaScript. 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 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 o 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 este 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 do evento de rastreamento.
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.
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 para 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,
  "ad_slot_id": string,
  "api_framework": string,
  "tracking_events": [object(TrackingEvent)],
}
Campos
click_data object(ClickData)

Os dados de clique deste complementar.
creative_type string

O atributo CreativeType no nó <StaticResource> no VAST se for um complementar do tipo "estático".
height int32

A altura em pixels do complementar.
width int32

A largura em pixels deste complementar.
resource string

Para complementares estáticos e iframe, esse será o URL a ser carregado e exibido. Para complementares HTML, é o snippet HTML que deve ser mostrado como o complementar.
type string

Tipo do complementar. Ele pode ser estático, iframe ou HTML.
ad_slot_id string

O ID do espaço deste complementar.
api_framework string

O framework da API para esse complemento.
tracking_events [object(TrackingEvent)]

Lista de eventos de rastreamento para este complementar.

InteractiveFile

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 para o criativo interativo.
type string

O tipo MIME do arquivo fornecido como o recurso.
variable_duration boolean

Se este criativo pode pedir a extensão da duração.
ad_parameters string

O valor do nó <AdParameters> no VAST.