Através da API Video Stitcher, cria uma sessão em direto sempre que inicia a reprodução de uma stream em direto na qual os anúncios publicados pelo Google Ad Manager são unidos dinamicamente durante as pausas para anúncios. A resposta contém o URL de reprodução e a configuração da sessão em direto.
Esta página descreve como criar e gerir uma sessão em direto ativada pelo Google Ad Manager. Para ver informações sobre sessões em direto que não usam o Google Ad Manager, consulte o artigo Faça a gestão de uma sessão em direto.
Antes de começar
- Crie uma configuração em direto. Para a integração com o Google Ad Manager, certifique-se de que o objeto
gamLiveConfig
está definido. - Se estiver a especificar uma lista, certifique-se de que o objeto
gamSlate
está definido na lista que regista.
Crie uma sessão em direto
Pode criar uma sessão em direto através do SDK para IMA (que chama a API Video Stitcher) ou diretamente através da API Video Stitcher.
Use o SDK para IMA
Se estiver a fazer a integração com o SDK para IMA, o SDK para IMA cria a sessão em direto.
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); }
Pode definir ou substituir os seguintes parâmetros opcionais por sessão:
manifestOptions
: especifica que as renderizações de vídeo são geradas no manifesto de vídeo agrupado e a ordem das renderizações; consulte a documentação das opções do manifestoadTracking
: selecione o acompanhamento de anúncios do lado do cliente ou o acompanhamento de anúncios do lado do servidortargetingParameters
: uma etiqueta 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 para IMA
Consulte a secção seguinte para saber como definir estes parâmetros através do SDK para IMA.
Parâmetros e substituições opcionais
Pode definir parâmetros opcionais por sessão, como o campo manifestOptions
.
Este campo não está disponível na configuração em direto. Também pode substituir determinados parâmetros definidos na configuração em direto para uma determinada sessão.
Por exemplo, se o valor predefinido de adTracking
na configuração em direto estiver definido como SERVER
, pode substituir esse valor por CLIENT
e também definir o campo manifestOptions
no SDK 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 o artigo Adicione opções de sessão de streaming.
Use a API diretamente
Para criar uma sessão em direto através da API, use o método
projects.locations.liveSessions.create
.
O campo liveConfig
é o único campo obrigatório no corpo JSON. Pode definir ou substituir os seguintes parâmetros opcionais por sessão em direto (conforme mostrado no exemplo de REST seguinte):
manifestOptions
: especifica que as renderizações de vídeo são geradas no manifesto de vídeo agrupado e a ordem das renderizações; consulte a documentação das opções do manifestoadTracking
: selecione o acompanhamento de anúncios do lado do cliente ou o acompanhamento de anúncios do lado do servidor; isto substitui o valor na configuração em direto para a sessãotargetingParameters
: uma etiqueta do 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 qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_NUMBER
: o número do seu Google Cloud projeto localizado no campo Número do projeto na página Definições de IAMLOCATION
: a localização na qual criar a sua sessão; use uma das regiões suportadasMostrar localizaçõesus-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
LIVE_CONFIG_ID
: o identificador definido pelo utilizador para a configuração em direto
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "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 experimentar este exemplo, siga as C#instruções de configuração no guia de início rápido da API Video Stitcher com bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Video StitcherC#.
Para se autenticar na API Video Stitcher, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Antes de experimentar este exemplo, siga as Goinstruções de configuração no guia de início rápido da API Video Stitcher com bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Video StitcherGo.
Para se autenticar na API Video Stitcher, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Antes de experimentar este exemplo, siga as Javainstruções de configuração no guia de início rápido da API Video Stitcher com bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Video StitcherJava.
Para se autenticar na API Video Stitcher, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Antes de experimentar este exemplo, siga as Node.jsinstruções de configuração no guia de início rápido da API Video Stitcher com bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Video StitcherNode.js.
Para se autenticar na API Video Stitcher, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
PHP
Antes de experimentar este exemplo, siga as PHPinstruções de configuração no guia de início rápido da API Video Stitcher com bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Video StitcherPHP.
Para se autenticar na API Video Stitcher, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no guia de início rápido da API Video Stitcher com bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Video StitcherPython.
Para se autenticar na API Video Stitcher, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Ruby
Antes de experimentar este exemplo, siga as Rubyinstruções de configuração no guia de início rápido da API Video Stitcher com bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Video StitcherRuby.
Para se autenticar na API Video Stitcher, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
A resposta é um objeto de sessão em direto. O
playUri
é o URL que o dispositivo cliente usa para ver a stream com anúncios incorporados para esta sessão em direto.
A API Video Stitcher gera um ID de sessão exclusivo para cada pedido. Uma sessão expira se o playUri
não for pedido nos últimos 5 minutos.
Se estiver a gerar uma sessão em nome dos dispositivos dos seus clientes, pode definir os seguintes parâmetros através de cabeçalhos HTTP:
Parâmetro | Cabeçalho HTTP |
---|---|
CLIENT_IP | x-forwarded-for |
REFERRER_URL | referer |
USER_AGENT | user-agent |
Pode adicionar os seguintes cabeçalhos ao pedido 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 usa o endereço IP do cliente em pedidos de metadados de anúncios. Tenha em atenção que 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 dos dispositivos dos seus clientes.
Receba uma sessão
Para obter a sessão em direto, use o método projects.locations.liveSessions.get
.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_NUMBER
: o número do seu Google Cloud projeto localizado no campo Número do projeto na página Definições de IAMLOCATION
: a localização na qual criar a sua sessão; use uma das regiões suportadasMostrar localizaçõesus-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
SESSION_ID
: o identificador da sessão em direto
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "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 experimentar este exemplo, siga as C#instruções de configuração no guia de início rápido da API Video Stitcher com bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Video StitcherC#.
Para se autenticar na API Video Stitcher, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Antes de experimentar este exemplo, siga as Goinstruções de configuração no guia de início rápido da API Video Stitcher com bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Video StitcherGo.
Para se autenticar na API Video Stitcher, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Antes de experimentar este exemplo, siga as Javainstruções de configuração no guia de início rápido da API Video Stitcher com bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Video StitcherJava.
Para se autenticar na API Video Stitcher, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Antes de experimentar este exemplo, siga as Node.jsinstruções de configuração no guia de início rápido da API Video Stitcher com bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Video StitcherNode.js.
Para se autenticar na API Video Stitcher, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
PHP
Antes de experimentar este exemplo, siga as PHPinstruções de configuração no guia de início rápido da API Video Stitcher com bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Video StitcherPHP.
Para se autenticar na API Video Stitcher, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no guia de início rápido da API Video Stitcher com bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Video StitcherPython.
Para se autenticar na API Video Stitcher, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Ruby
Antes de experimentar este exemplo, siga as Rubyinstruções de configuração no guia de início rápido da API Video Stitcher com bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Video StitcherRuby.
Para se autenticar na API Video Stitcher, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Exemplo de playlist com anúncios integrados
A imagem seguinte mostra um exemplo de uma playlist em direto de origem antes da uniã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
A imagem seguinte mostra um exemplo de uma playlist em direto de origem após a uniã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
Inspecione sessões em direto ativadas pelo Google Ad Manager
Para ver detalhes das etiquetas de anúncios das sessões, use o monitorizador de atividade de stream no Ad Manager para ver detalhes sobre os pedidos de anúncios.