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.  |