Começar a usar a SGAI para transmissão ao vivo

A inserção de anúncios guiada pelo servidor (SGAI, na sigla em inglês) fornece um manifesto de conjunto de anúncios pronto para junção em dispositivos clientes. Se você ativou a DAI de veiculação de pods na sua rede do Google Ad Manager, terá acesso ao uso da SGAI. Se você não tiver a veiculação de pods da DAI ativada, entre em contato com seu gerente de contas.

Com a SGAI, você usa os endpoints da API de veiculação de conjuntos de anúncios para criar um fluxo que recupera metadados de anúncios e os manifestos de conjuntos de anúncios.

Se você tiver um servidor de manipulação de manifesto, poderá gerar os URLs de manifesto do conjunto de anúncios e inserir marcadores de anúncio que carregam as informações do manifesto do conjunto de anúncios no seu fluxo de conteúdo, de acordo com a especificação preferida.

Como alternativa, você pode programar um intervalo de anúncio usando um mecanismo diferente dos marcadores de anúncio no manifesto de stream. Nesses casos, o app pode detectar outros eventos, por exemplo, a interação do usuário com a transmissão, o próprio app ou uma notificação push. Depois desses eventos, o app pode gerar os URLs do manifesto do conjunto de anúncios e informar ao player para começar a carregar o manifesto.

Pré-requisitos

Antes de continuar, verifique se você tem o seguinte:

  • A veiculação de conjunto de DAI ativada na sua rede do Google Ad Manager.
  • Um evento de transmissão ao vivo do tipo Manifesto de veiculação de conjunto. Para criar o evento, consulte Configurar uma transmissão ao vivo para DAI.

Siga as recomendações

Antes de gerar o URL do manifesto do conjunto de anúncios, recomendamos chamar a API Early Ad Break Notification (EABN) para especificar a duração esperada, as informações de segmentação e outros parâmetros de cada intervalo de anúncio.

Para streams de produção e teste, chame a API EABN, principalmente se sua rede de publicidade tiver campanhas programáticas. Para mais informações, consulte Recursos e diretrizes do Programático direto.

Fazer uma solicitação de registro de stream

Quando um usuário inicia um stream de conteúdo no seu app de player de vídeo, você faz uma solicitação de registro de stream com parâmetros de segmentação para criar uma sessão de streaming no Ad Manager. Para detalhes sobre como fazer uma solicitação de registro de stream, consulte Método:stream. Depois disso, você recebe dados de resposta da solicitação.

Os exemplos a seguir fazem uma solicitação de registro de stream:

HTTP de texto simples

  • Solicitação:
authority: dai.google.com
method: POST
path: /ssai/pods/api/v1/network/51636543/custom_asset/hls-podserving-manifest/stream
scheme: https
content-type: application/x-www-form-urlencoded

cust_params=customID%253D1543216789%2526anotherKey%253Dvalue1%252Cvalue2
  • Resposta:
{
    "manifest_format": "hls",
    "media_verification_url": "https://dai.google.com/view/p/service/linear/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/loc/TUL/network/51636543/event/TFyZF0IoSpqvCLtLv8JdCw/media/",
    "metadata_url": "https://dai.google.com/linear/pods/hls/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/metadata",
    "polling_frequency": 10,
    "session_update_url": "https://dai.google.com/linear/v1/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/session",
    "stream_id": "24fd4e7c-95a0-42be-8874-00625139b9db:TUL"
}

Shell

  • Linha de comando:
curl \
-H "Host: dai.google.com" \
-H "content-type: application/x-www-form-urlencoded" \
  --data-binary "cust_params=channelID%253D1543216789%2526anotherKey%253Dvalue1%252Cvalue2" \
  --compressed "https://dai.google.com/ssai/pods/api/v1/network/51636543/custom_asset/hls-podserving-manifest/stream"
  • Saída:
{
    "manifest_format": "hls",
    "media_verification_url": "https://dai.google.com/view/p/service/linear/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/loc/TUL/network/51636543/event/TFyZF0IoSpqvCLtLv8JdCw/media/",
    "metadata_url": "https://dai.google.com/linear/pods/hls/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/metadata",
    "pod_manifest_url": "https://dai.google.com/linear/pods/v1/hls/event/TFyZF0IoSpqvCLtLv8JdCw/pod/$pod-id$.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db%3ATUL",
    "polling_frequency": 10,
    "session_update_url": "https://dai.google.com/linear/v1/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/session",
    "stream_id": "24fd4e7c-95a0-42be-8874-00625139b9db:TUL"
}

JavaScript

  • Usando a API Fetch:
const response = await fetch("https://dai.google.com/ssai/pods/api/v1/network/51636543/custom_asset/hls-podserving-manifest/stream", {
  "headers": {
    "content-type": "application/x-www-form-urlencoded",
  },
  "body": "cust_params=channelID%3D1543216789%26anotherKey%3Dvalue1%2Cvalue2",
  "method": "POST",
});

  const stream = await response.json();
  console.log(stream);
  • Registro do console:
{
    "stream_id": "24fd4e7c-95a0-42be-8874-00625139b9db:TUL",
    "media_verification_url": "https://dai.google.com/view/p/service/linear/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/loc/TUL/network/51636543/event/TFyZF0IoSpqvCLtLv8JdCw/media/",
    "metadata_url": "https://dai.google.com/linear/pods/hls/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/metadata",
    "session_update_url": "https://dai.google.com/linear/v1/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/session",
    "polling_frequency": 10,
    "pod_manifest_url": "https://dai.google.com/linear/pods/v1/hls/event/TFyZF0IoSpqvCLtLv8JdCw/pod/$pod-id$.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db%3ATUL",
    "manifest_format": "hls"
}

Pesquisar metadados de intervalo de anúncio

Depois de fazer uma solicitação de registro de stream, faça uma pesquisa por metadados do anúncio. Para fazer uma pesquisa, defina um timer usando o polling_frequence na resposta do stream na etapa de registro para chamar os metadados do anúncio. Para cada pesquisa, você pode receber uma lista parcial de anúncios com metadados à medida que eles ficam disponíveis.

Gerar o URL do manifesto do conjunto de anúncios

Construa um URL para o recurso de pod da API Pod Serving. Depois, transmita o URL para um player de vídeo para começar a carregar o conjunto de anúncios.

O exemplo a seguir demonstra a estrutura do URL do manifesto do conjunto de anúncios:

https://dai.google.com/linear/pods/v1/hls/network/51636543/custom_asset/pod_serving_hls_manifest_mp4/ad_break_id/ab101.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db:TUL&pd=120000

É possível calcular os parâmetros de URL do manifesto do conjunto de anúncios com base nas informações do intervalo de anúncio recuperadas do player de vídeo ou de uma notificação do servidor. Para requisitos desses parâmetros, consulte Método: manifesto do pod.

Reproduzir o manifesto do conjunto de anúncios

No app player de vídeo do cliente, comece a reprodução do stream de conteúdo com um player de vídeo principal e siga a documentação do player para observar a programação de reprodução e de anúncios, se relevante.

Se você gerar os URLs do manifesto do conjunto de anúncios e inseri-los no manifesto no lado do servidor, observe os eventos de intervalo de anúncio futuro do player de vídeo e inscreva-se nos eventos ID3 durante cada reprodução de intervalo de anúncio. Se você programar os eventos de intervalo de anúncio do lado do cliente, inscreva-se nos eventos ID3 na criação.

Gerar relatórios de impressões e eventos de anúncio

Quando um player de vídeo reproduz o conjunto de anúncios e encontra metadados com carimbo de data/hora ID3, ouça os eventos de anúncio que o player de vídeo aciona e processe-os para enviar pings de verificação de mídia.