Usando a API Video Stitcher, você cria uma sessão ao vivo sempre que inicia a reprodução de uma transmissão ao vivo em que os anúncios veiculados pelo Google Ad Manager são inseridos dinamicamente durante os intervalos de anúncio. A resposta contém o URL de reprodução e a configuração da sessão ao vivo.
Nesta página, descrevemos como criar e gerenciar uma sessão ao vivo ativada pelo Google Ad Manager. Para informações sobre sessões ao vivo que não usam o Google Ad Manager, consulte Gerenciar uma sessão ao vivo.
Antes de começar
- Crie uma configuração de transmissão ao vivo. Para a integração com o Google Ad Manager, verifique se o objeto
gamLiveConfig
está definido. - Se você estiver especificando uma seção, verifique se o objeto
gamSlate
está definido na seção que você registrou.
Criar uma sessão ao vivo
É possível criar uma sessão ao vivo usando o SDK do IMA (que chama a API Video Stitcher) ou diretamente com a API Video Stitcher.
Usar o SDK do IMA
Se você estiver integrando com o SDK do IMA, o SDK do IMA vai criar a sessão ao vivo.
function requestVideoStitcherStream() { const streamRequest = new google.ima.dai.api.VideoStitcherLiveStreamRequest(); streamRequest.liveStreamEventId = 'LIVE_CONFIG_ID'; streamRequest.region = 'LOCATION'; streamRequest.projectNumber = 'PROJECT_NUMBER'; streamRequest.oAuthToken = 'OAUTH_TOKEN'; streamRequest.networkCode = 'NETWORK_CODE'; streamRequest.customAssetKey = 'CUSTOM_ASSET_KEY'; streamManager.requestStream(streamRequest); }
É possível definir ou substituir os seguintes parâmetros opcionais por sessão:
manifestOptions
: especifica quais renderizações de vídeo são geradas no manifesto de vídeo costurado e a ordem das renderizações; consulte a documentação de opções de manifesto.adTracking
: selecione o rastreamento de anúncios do lado do cliente ou do lado do servidor.targetingParameters
: uma tag de anúncio do Google Ad Manager pode conter parâmetros de segmentação que podem ser atualizados por sessão. Consulte como definir parâmetros de segmentação com o SDK do IMA
Consulte a próxima seção para saber como definir esses parâmetros usando o SDK da IMA.
Parâmetros opcionais e substituições
É possível definir parâmetros opcionais por sessão, como o campo manifestOptions
.
Esse campo não está disponível na configuração ativa. Também é possível substituir alguns
parâmetros definidos na configuração da live para uma determinada sessão.
Por exemplo, se o adTracking
padrão na configuração ativa estiver definido como SERVER
,
você poderá substituir esse valor por CLIENT
e também definir o campo manifestOptions
no SDK do IMA definindo o campo do objeto
JSON videoStitcherSessionOptions
.
function requestVideoStitcherStream() { const streamRequest = new google.ima.dai.api.VideoStitcherLiveStreamRequest(); streamRequest.liveStreamEventId = 'LIVE_CONFIG_ID'; streamRequest.region = 'LOCATION'; streamRequest.projectNumber = 'PROJECT_NUMBER'; streamRequest.oAuthToken = 'OAUTH_TOKEN'; streamRequest.networkCode = 'NETWORK_CODE'; streamRequest.customAssetKey = 'CUSTOM_ASSET_KEY'; streamRequest.videoStitcherSessionOptions = { adTracking: 'CLIENT', 'manifestOptions': { 'includeRenditions': [ { 'bitrateBps': 150000, 'codecs': 'hvc1.1.4.L126.B0' }, { 'bitrateBps': 440000, 'codecs': 'hvc1.1.4.L126.B0' }, ], 'bitrateOrder': 'descending' } }; streamRequest.adTagParameters = { "key1": "value1", "key2": "value2", }; streamManager.requestStream(streamRequest); }
Para mais informações, consulte Adicionar opções de sessão de streaming.
Usar a API diretamente
Para criar uma sessão ao vivo usando a API diretamente, use o método
projects.locations.liveSessions.create
.
O campo liveConfig
é o único obrigatório no corpo JSON. É possível definir ou substituir os seguintes parâmetros opcionais por sessão ao vivo (conforme mostrado no exemplo REST a seguir):
manifestOptions
: especifica quais renderizações de vídeo são geradas no manifesto de vídeo costurado e a ordem das renderizações; consulte a documentação de opções de manifesto.adTracking
: selecione o acompanhamento de anúncios do lado do cliente ou do lado do servidor. Isso substitui o valor na configuração ativa da sessão.targetingParameters
: uma tag de anúncio do Google Ad Manager pode conter parâmetros de segmentação que podem ser atualizados por sessão. Forneça um mapeamento neste campo (por exemplo, para substituir a macro[my_key]
pela stringmy_value
, consulte o exemplo de REST).
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_NUMBER
: o número do seu Google Cloud projeto localizado no campo Número do projeto na página Configurações do IAMLOCATION
: o local em que você quer criar sua sessão. Use uma das regiões compatíveisMostrar locaisus-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
LIVE_CONFIG_ID
: o identificador definido pelo usuário para a configuração ativa
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/liveSessions/SESSION_ID", "playUri": "PLAY_URI", "manifestOptions": { "includeRenditions": [ { "bitrateBps": 150000, "codecs": "hvc1.1.4.L126.B0" }, { "bitrateBps": 440000, "codecs": "hvc1.1.4.L126.B0" } ], "bitrateOrder": "DESCENDING" }, "gamSettings": { "streamId": "STREAM_ID" }, "liveConfig": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/LIVE_CONFIG_ID", "adTracking": "SERVER" }
C#
Antes de testar esta amostra, siga as instruções de configuração do C# no Guia de início rápido da API Video Stitcher: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API C# Video Stitcher.
Para autenticar na API Video Stitcher, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido da API Video Stitcher: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Go Video Stitcher.
Para autenticar na API Video Stitcher, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido da API Video Stitcher: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Java Video Stitcher.
Para autenticar na API Video Stitcher, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Antes de testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido da API Video Stitcher: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Node.js Video Stitcher.
Para autenticar na API Video Stitcher, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Antes de testar esta amostra, siga as instruções de configuração do PHP no Guia de início rápido da API Video Stitcher: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API PHP Video Stitcher.
Para autenticar na API Video Stitcher, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido da API Video Stitcher: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Python Video Stitcher.
Para autenticar na API Video Stitcher, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Antes de testar esta amostra, siga as instruções de configuração do Ruby no Guia de início rápido da API Video Stitcher: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Ruby Video Stitcher.
Para autenticar na API Video Stitcher, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
A resposta é um objeto de sessão ao vivo. O
playUri
é o URL que o dispositivo cliente usa para reproduzir o stream de anúncios combinados para
essa sessão ao vivo.
A API Video Stitcher gera um ID de sessão exclusivo para cada solicitação. Uma sessão expira se o playUri
não for solicitado nos últimos cinco minutos.
Se você estiver gerando uma sessão em nome dos dispositivos dos seus clientes, poderá definir os seguintes parâmetros usando cabeçalhos HTTP:
Parâmetro | Cabeçalho HTTP |
---|---|
CLIENT_IP | x-forwarded-for |
REFERRER_URL | referer |
USER_AGENT | user-agent |
É possível adicionar os seguintes cabeçalhos à solicitação curl
anterior:
-H "x-forwarded-for: CLIENT_IP" \ -H "referer: REFERRER_URL" \ -H "user-agent: USER_AGENT" \
Se o cabeçalho x-forwarded-for
não for fornecido, a API Video Stitcher usará o endereço IP do cliente em solicitações de metadados de anúncios. O endereço IP do cliente pode não corresponder ao IP dos dispositivos dos seus clientes se as sessões forem geradas em nome deles.
Acessar uma sessão
Para acessar a sessão ativa, use o método
projects.locations.liveSessions.get
.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_NUMBER
: o número do seu Google Cloud projeto localizado no campo Número do projeto na página Configurações do IAMLOCATION
: o local em que você quer criar sua sessão. Use uma das regiões compatíveisMostrar locaisus-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
SESSION_ID
: o identificador da sessão ao vivo
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/liveSessions/SESSION_ID", "playUri": "ad-stitched-live-stream-uri", "manifestOptions": { "includeRenditions": [ { "bitrateBps": 150000, "codecs": "hvc1.1.4.L126.B0" }, { "bitrateBps": 440000, "codecs": "hvc1.1.4.L126.B0" } ], "bitrateOrder": "DESCENDING" }, "gamSettings": { "streamId": "STREAM_ID", "targetingParameters": { "my_key": "my_value" } }, "liveConfig": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/LIVE_CONFIG_ID", "adTracking": "SERVER" }
C#
Antes de testar esta amostra, siga as instruções de configuração do C# no Guia de início rápido da API Video Stitcher: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API C# Video Stitcher.
Para autenticar na API Video Stitcher, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido da API Video Stitcher: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Go Video Stitcher.
Para autenticar na API Video Stitcher, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido da API Video Stitcher: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Java Video Stitcher.
Para autenticar na API Video Stitcher, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Antes de testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido da API Video Stitcher: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Node.js Video Stitcher.
Para autenticar na API Video Stitcher, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Antes de testar esta amostra, siga as instruções de configuração do PHP no Guia de início rápido da API Video Stitcher: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API PHP Video Stitcher.
Para autenticar na API Video Stitcher, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido da API Video Stitcher: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Python Video Stitcher.
Para autenticar na API Video Stitcher, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Antes de testar esta amostra, siga as instruções de configuração do Ruby no Guia de início rápido da API Video Stitcher: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Ruby Video Stitcher.
Para autenticar na API Video Stitcher, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Exemplo de playlist com anúncios costurados
A seguir, mostramos um exemplo de playlist ao vivo de origem antes da junção de anúncios:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:5
#EXTINF:10.010
segment_00005.ts
#EXTINF:10.010
segment_00006.ts
#EXT-X-DATERANGE:ID="2415919105",START-DATE="2021-06-22T08:32:00Z",DURATION=60,SCTE35-OUT=0xF...
#EXTINF:10.010
segment_00007.ts
#EXTINF:10.010
segment_00008.ts
#EXT-X-DATERANGE:ID="2415919105",START-DATE="2021-06-22T08:39:20Z",SCTE35-IN=0xF...
#EXTINF:10.010
segment_00009.ts
Confira abaixo um exemplo de playlist ao vivo de origem após a junção de anúncios:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:5
#EXTINF:10.010
segment_00005.ts
#EXTINF:10.010
segment_00006.ts
#EXT-X-DISCONTINUITY
#EXTINF:6.000
https://dai.google.com/.../ad-1/seg-1.ts
#EXTINF:5.000
https://dai.google.com/.../ad-1/seg-2.ts
#EXT-X-DISCONTINUITY
#EXTINF:6.000
https://dai.google.com/.../ad-2/seg-1.ts
#EXTINF:5.000
https://dai.google.com/.../ad-2/seg-2.ts
#EXT-X-DISCONTINUITY
#EXTINF:10.010
segment_00009.ts
Inspecionar sessões ativas ativadas pelo Google Ad Manager
Para conferir detalhes da tag de anúncio das sessões, use o Monitoramento da atividade de streaming no Ad Manager e veja detalhes sobre as solicitações de anúncios.