Introdução à SGAI

A inserção de anúncios guiados pelo servidor (SGAI, na sigla em inglês) fornece um manifesto de conjunto de anúncios pronto para agrupamento em dispositivos clientes. Se você tiver ativado a DAI da disponibilização de pods na sua rede rede do Ad Manager, terá acesso à SGAI. Se você não tiver a disponibilização de pods A DAI está ativada. Entre em contato com seu gerente de contas.

Com a SGAI, você usa os endpoints da API de veiculação de pods para criar um stream Recuperar metadados e manifestos do conjunto de anúncios.

Se você tiver um servidor de manipulação de manifesto, poderá gerar o conjunto de anúncios URLs do manifesto e inserir marcadores de anúncios que contenham as informações do manifesto do conjunto de anúncios. na transmissão do conteúdo, de acordo com a especificação que você preferir.

Como alternativa, é possível programar um intervalo de anúncio usando um mecanismo diferente. do que os marcadores de anúncio no manifesto de stream. Nesses casos, o app pode detectar a outros eventos, como interação do usuário com o stream, o próprio app ou uma notificação push. Após esses eventos, o app pode gerar o anúncio URLs do manifesto do conjunto de anúncios e instrua o player a carregar o manifesto do conjunto de anúncios.

Pré-requisitos

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

  • A veiculação de conjunto da DAI ativada na sua rede do Google Ad Manager.
  • Um evento de transmissão ao vivo com o tipo manifesto de veiculação de pods. Para criar o evento: ver Configure uma transmissão ao vivo para DAI.

Seguir as recomendações

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

Para fluxos de produção e teste, chame a API EABN, principalmente se o anúncio não tem 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ê cria solicitação de registro com parâmetros de segmentação para criar uma sessão de streaming no Ad Manager. Para mais detalhes sobre como fazer uma solicitação de registro de transmissão, consulte Method:stream. Depois, 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"
}

Concha

  • 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

  • Como usar 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"
}

Pesquisa de metadados de intervalo de anúncio

Depois de fazer uma solicitação de registro de transmissão, pesquise os metadados do anúncio. Para você define um timer usando o polling_frequence na resposta do stream às a etapa de registro para chamar o anúncio metadados. Para cada enquete, você pode receber uma lista parcial de anúncios com metadados conforme eles fiquem disponíveis.

Gerar o URL do manifesto do conjunto de anúncios

Crie um URL para a recurso de pod da API Pod Serving. Em seguida, passe o URL a um player de vídeo para começar ao carregar o conjunto de anúncios.

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

https://dai.google.com/linear/pods/v1/hls/network/51636543/custom_asset/pod_serving_hls_manifest_mp4/pod/101.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 no intervalo de anúncio. informações 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 de player de vídeo cliente, inicie a reprodução do stream de conteúdo com uma instância principal player de vídeo e siga a documentação dele para observar a a reprodução e a programação de anúncios, se relevante.

Se você gerar os URLs do manifesto do conjunto de anúncios e inseri-los no manifesto da lado do servidor, observe os próximos eventos de intervalo de anúncio do player de vídeo e garanta inscrever-se em eventos id3 durante a reprodução de cada intervalo de anúncio. Se você programar o anúncio eventos de interrupção 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 marcação de tempo id3, ouvir eventos de anúncio que o player de vídeo aciona e processa enviar pings de verificação de mídia.