API Linear de inserção de anúncios dinâmicos

A API Inserção de anúncios dinâmicos permite solicitar e monitorar streams lineares (AO VIVO) da DAI.

Serviço: dai.google.com

Todos os URIs são relativos a https://dai.google.com

Método: stream

Métodos
stream POST /linear/v1/hls/event/{assetKey}/stream

Cria um fluxo de DAI para o ID do evento especificado.

Solicitação HTTP

POST https://dai.google.com/linear/v1/hls/event/{assetKey}/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 fornecer a chave no corpo da solicitação, ela 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
assetKey string

O ID do evento da transmissão.
Observação: a chave do recurso de stream é um identificador que também pode ser encontrado na interface do Ad Manager.

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 beaconing do lado do servidor. O padrão é false. O rastreamento do fluxo padrão é iniciado pelo cliente e faz ping no lado do servidor.

Parâmetros de segmentação do DFP Opcional Outros parâmetros de segmentação.
Modificar os parâmetros de stream Opcional Substitua os valores padrão de um parâmetro de criação de stream.
Autenticação HMAC Opcional Autentique usando um token baseado em HMAC.

Corpo da resposta

Se a solicitação for bem-sucedida, o corpo da resposta vai conter um novo Stream. Para fluxos de beacon do lado do servidor, esse Stream contém apenas os campos stream_id e stream_manifest.

Open Measurement

A API DAI contém informações para verificação do Open Measurement no campo Verifications. Esse campo contém um ou mais elementos Verification que listam os recursos e metadados necessários para executar o código de medição terceirizada e verificar a reprodução do criativo. 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 imediatamente uma solicitação usando o media_verification_url obtido do endpoint stream. Essas solicitações não são necessárias para streams de beaconing 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 https://{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 incorreta do URL.
  • HTTP/1.1 404 Not Found se uma solicitação de verificação anterior para esse ID foi concluída.
  • HTTP/1.1 409 Conflict se outra solicitação já estiver enviando pings no momento.

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

Os identificadores de mídia de anúncios serão codificados em metadados temporizados 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 começará com o texto "google_".

Todo o conteúdo de texto do frame precisa ser anexado ao URL de verificação de anúncio antes de cada solicitação.

Método: metadados

O endpoint de metadados em metadata_url retorna informações usadas para criar uma interface de anúncio. O endpoint de metadados não está disponível para streams de beacon do lado do servidor, em que o servidor é responsável por iniciar a verificação de mídia do anúncio.

Métodos
metadata GET /{metadata_url}/{ad-media-id}

GET /{metadata_url}

Recupera informações de metadados de anúncios.

Solicitação HTTP

GET https://{metadata_url}/{ad-media-id}

GET https://{metadata_url}

Parâmetros de consulta

Parâmetros
delta_token opcional string

Um token opaco que representa o estado de sincronização atual do cliente. Se fornecido, o servidor vai retornar apenas os metadados que mudaram desde a geração do token, além de um novo next_delta_token na resposta. Se omitido, o servidor vai retornar os metadados completos de toda a janela de DVR.

Corpo da resposta

Se a solicitação for bem-sucedida, a resposta vai retornar uma instância de PodMetadata.

Como trabalhar com metadados

Os metadados têm três seções distintas: tags, ads e breaks do anúncio. O ponto de entrada dos dados é a seção tags. Em seguida, itere pelas tags e encontre a primeira entrada cujo nome seja um prefixo do ID da mídia do anúncio encontrado no stream de vídeo. Por exemplo, você pode ter um ID de mídia de anúncio como este:

google_1234567890

Em seguida, encontre um objeto de tag chamado google_12345. Nesse caso, ele corresponde ao ID da mídia do seu anúncio. Depois de encontrar o objeto de prefixo de mídia do anúncio correto, você pode pesquisar IDs de anúncio, IDs de intervalo de anúncio e o tipo de evento. Os IDs de anúncio são usados para indexar os objetos ads, e os IDs de intervalo de anúncio são usados para indexar os objetos breaks.

Dados de resposta

Stream

O stream é usado para renderizar uma lista de recursos para um stream recém-criado em formato JSON.
Representação JSON
{
  "stream_id": string,
  "stream_manifest": string,
  "hls_master_playlist": string,
  "media_verification_url": string,
  "metadata_url": string,
  "session_update_url": string,
  "polling_frequency": number,
}
Campos
stream_id string

O identificador de fluxo do GAM.
stream_manifest string

O URL do manifesto do stream, usado para recuperar a playlist multivariante em HLS ou o MPD em DASH.
hls_master_playlist string

URL de playlist multivariante HLS(DESCONTINUADO). Use "stream_manifest".
media_verification_url string

O URL de verificação de mídia usado como endpoint base para rastrear eventos de reprodução.
metadata_url string

URL de metadados usado para pesquisar informações periódicas sobre os próximos eventos de anúncios em stream.
session_update_url string

O URL de atualização da sessão usado para atualizar os parâmetros de segmentação deste fluxo. Os valores originais dos parâmetros de segmentação são capturados durante a solicitação inicial de criação de stream.
polling_frequency number

A frequência de sondagem, em segundos, ao solicitar metadata_url ou heartbeat_url.

PodMetadata

PodMetadata contém informações de metadados sobre anúncios, intervalos comerciais e tags de ID de mídia.
Representação JSON
{
  "tags": map[string, object(TagSegment)],
  "ads": map[string, object(Ad)],
  "ad_breaks": map[string, object(AdBreak)],
  "next_delta_token": string,
  "obsolete_ad_break_ids": [],
}
Campos
tags map[string, object(TagSegment)]

Mapa de segmentos de tag indexados por prefixo de tag.
ads map[string, object(Ad)]

Mapa de anúncios indexados por ID do anúncio.
ad_breaks map[string, object(AdBreak)]

Mapa de intervalos de anúncio indexados por ID.
next_delta_token string

Um token opaco para o cliente usar na próxima pesquisa.
obsolete_ad_break_ids string

Uma lista de IDs de intervalo de anúncio obsoletos que precisam ser removidos do cache do cliente.

TagSegment

O TagSegment contém uma referência a um anúncio, ao intervalo de anúncio e ao tipo de evento. TagSegment com type="progress" não deve ser pingado para o endpoint de verificação de mídia do anúncio.
Representação JSON
{
  "ad": string,
  "ad_break_id": string,
  "type": string,
}
Campos
ad string

O ID do anúncio desta tag.
ad_break_id string

O ID do intervalo de anúncio desta tag.
type string

O tipo de evento desta tag.

AdBreak

AdBreak descreve um único intervalo de anúncio no stream. Ele contém uma duração, um tipo (meio/antes/depois) e o número de anúncios.
Representação JSON
{
  "type": string,
  "duration": number,
  "expected_duration": number,
  "ads": number,
}
Campos
type string

Os tipos de quebra válidos são: pre, mid e post.
duration number

Duração total do anúncio para este intervalo de anúncio, em segundos.
expected_duration number

Duração esperada do intervalo de anúncio (em segundos), incluindo todos os anúncios e inserções reserva.
ads number

Número de anúncios no intervalo de anúncio.
"Ad" descreve um anúncio no fluxo.
Representação JSON
{
  "ad_break_id": string,
  "position": 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,
  "click_tracking_urls": [],
  "verifications": [object(Verification)],
  "slate": boolean,
  "icons": [object(Icon)],
  "wrappers": [object(Wrapper)],
  "universal_ad_id": object(UniversalAdID),
  "extensions": [],
  "companions": [object(Companion)],
  "interactive_file": object(InteractiveFile),
}
Campos
ad_break_id string

O ID do intervalo de anúncio deste anúncio.
position number

Posição deste anúncio no intervalo de anúncio, começando em 1.
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 de anunciante opcional.
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 do anúncio criativo opcional.
deal_id string

ID da transação opcional.
clickthrough_url string

URL de clique opcional.
click_tracking_urls string

URLs de rastreamento de cliques opcionais.
verifications [object(Verification)]

Entradas opcionais de verificação da medição aberta que listam os recursos e os metadados necessários para executar o código de medição terceirizada para verificar a reprodução do criativo.
slate boolean

Booleano opcional que indica se a entrada atual é uma lista.
icons [object(Icon)]

Uma lista de ícones, omitida se estiver vazia.
wrappers [object(Wrapper)]

Uma lista de wrappers, omitida se estiver vazia.
universal_ad_id object(UniversalAdID)

ID universal do anúncio opcional.
extensions string

Lista opcional de todos os nós <Extension> no VAST.
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.

Í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

ClickData contém informações sobre um clickthrough de í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 inclui um ID da 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 publicidade.
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 criativo do anúncio 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, que facilita a visibilidade e a medição de 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 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 transmitida ao código de verificação de bootstrap.

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 JavaScript.
api_framework string

APIFramework é o nome da estrutura de vídeo que exerce o código de verificação.
browser_optional boolean

Indica se o script pode ser executado fora de um navegador.

TrackingEvent

TrackingEvent contém URLs que precisam ser pingados 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 a ser pingado.

UniversalAdID

O UniversalAdID é usado para fornecer um identificador exclusivo de criativo 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 está catalogado.

Companion

O campo "companion" 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 clique deste complemento.
creative_type string

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

A altura em pixels desta mídia complementar.
width int32

A largura em pixels deste complemento.
resource string

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

Tipo de complemento. Ele pode ser estático, iframe ou HTML.
ad_slot_id string

O ID do slot para este complemento.
api_framework string

O framework de API para este complemento.
tracking_events [object(TrackingEvent)]

Lista de eventos de rastreamento para este complemento.

InteractiveFile

O InteractiveFile contém informações para o criativo interativo (ou seja, SIMID) que deve 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

Indica se o criativo pode pedir a extensão da duração.
ad_parameters string

O valor do nó <AdParameters> no VAST.