Selecione a solução de DAI do seu interesse
DAI de serviço completo
Este guia demonstra como reproduzir um stream da DAI usando o SDK de DAI do IMA CAF. Se você gostaria de visualizar ou acompanhar um exemplo completo de integração, faça o download do exemplo.
Antes de usar este guia, familiarize-se com os recursos do Chromecast
protocolo do receptor da Web do framework do aplicativo Isso
pressupõe um nível básico de familiaridade com os conceitos do receptor CAF, como
mensagem
interceptadores
e
mediaInformation
objetos, além da familiaridade com o comando e controle do Cast
para emular um remetente de CAF.
Para usar a DAI do IMA, é preciso ter uma conta do Ad Manager 360. Se você tiver um anúncio Conta de administrador. Entre em contato com o gerente de contas para mais detalhes. Para informações sobre a inscrição no Ad Manager, acesse a Ajuda do Ad Manager de Ajuda.
Para informações sobre a integração com outras plataformas ou o uso do SDK SDKs do lado do cliente, consulte SDKs do Interactive Media Ads.
Visão geral da DAI do CAF
A implementação da DAI usando o SDK de DAI do CAF do IMA envolve dois componentes principais: demonstrados neste guia:
StreamRequest
: Um objeto que define uma solicitação de stream para os servidores de publicidade do Google. As solicitações de stream têm duas variedades principais:LiveStreamRequest
: especifica uma chave de recurso e uma chave de API opcional, bem como outros parâmetros opcionais.VODStreamRequest
: Especifica um ID de origem do conteúdo, um ID de vídeo e uma API opcional key, além de outros parâmetros opcionais.
StreamManager
: Um objeto que gerencia a comunicação entre o stream de vídeo e a DAI do IMA do SDK, como disparar pings de acompanhamento e encaminhar eventos de stream para o editor.
Pré-requisitos
- Uma conta do Console para desenvolvedores do Google Cast com um dispositivo de teste registrado.
- Um receptor da Web hospedado app que é registrados no seu Console do desenvolvedor do Google Cast e que podem ser modificados para hospedar o código fornecido por este guia.
- Um app de envio configurado para usar seu app receptor da Web. Neste exemplo, usa a ferramenta de comando e controle do Cast como o remetente.
Configurar os objetos MediaInfo do remetente
Primeiro, configure o MediaInfo do app remetente objeto para incluir os seguintes campos:
contentId
|
Um identificador exclusivo para este item de mídia. | |
contentUrl
|
O URL do stream substituto a ser carregado se o StreamRequest da DAI falhar para qualquer motivo | |
streamType
|
Para transmissões ao vivo, esse valor precisa ser definido como "AO VIVO". Para streams de VOD, esse valor deve ser definido como BUFFERED | |
customData
|
assetKey
|
Apenas transmissões ao vivo. Identifica a transmissão ao vivo a ser carregada |
contentSourceId
|
Somente transmissões VOD. Identifica o feed de mídia que contém o stream solicitado. | |
videoId
|
Somente transmissões VOD. Identifica o stream solicitado dentro do feed de mídia especificado. | |
ApiKey
|
Uma chave de API opcional que pode ser necessária para recuperar o URL do stream de o SDK de DAI do IMA | |
senderCanSkip
|
Um valor booleano para informar ao destinatário se o dispositivo remetente a capacidade de exibir um botão "Pular", ativando o suporte para anúncios puláveis |
Para configurar esses valores na ferramenta de comando e controle de transmissão, clique no botão Carregar
Media (em inglês) e defina o tipo de solicitação de carregamento personalizado como LOAD
. Em seguida, substitua
Dados JSON na área de texto com um dos seguintes objetos JSON:
AO VIVO
{
"media": {
"contentId": "bbb",
"contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/bbb.m3u8",
"streamType": "LIVE",
"customData": {
"assetKey": "sN_IYUG8STe1ZzhIIE_ksA",
"ApiKey": "",
"senderCanSkip": true
}
},
"credentials": "testCredentials"
}
VOD
{
"media": {
"contentId": "tos",
"contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/tos.m3u8",
"streamType": "BUFFERED",
"customData": {
"contentSourceId": "2548831",
"videoId": "tears-of-steel",
"ApiKey": "",
"senderCanSkip": true
}
},
"credentials": "testCredentials"
}
Esse objeto de solicitação de carregamento personalizado pode ser enviado ao receptor para testar a etapas seguintes.
Criar um receptor CAF básico
Seguindo o Guia básico do receptor do SDK do CAF, crie um receptor da Web básico.
O código do seu receptor vai ficar assim:
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js">
</script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
cast.framework.CastReceiverContext.getInstance().start();
</script>
</body>
</html>
Importar o SDK de DAI do IMA e acessar o Gerenciador de player
Adicione uma tag de script para importar o SDK de DAI do IMA para CAF ao seu receptor da Web. após o carregamento do script no CAF. O SDK de DAI do CAF é permanente, então não é necessário para definir uma versão específica. Na tag de script a seguir, armazene os contexto do receptor e o gerenciador do player como constantes antes de iniciar o receptor.
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
castContext.start();
</script>
</body>
</html>
Inicializar o Gerenciador de streams do IMA
Inicializar o stream do SDK de DAI do CAF de usuário.
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
const streamManager = new google.ima.cast.dai.api.StreamManager();
castContext.start();
</script>
</body>
</html>
Criar o interceptador de mensagens de carregamento
O SDK de DAI do CAF usa a mensagem de carregamento do CAF
interceptador
para fazer solicitações de stream e substituir o URL de conteúdo pelo stream da DAI final.
O interceptador da mensagem chama streamManager.requestStream(), que processa
a definição de intervalos de anúncio, a solicitação do stream e a substituição da
contentURL
Só pode haver um interceptador de mensagens de carregamento, portanto, se o app exigir o uso do interceptador, você precisa incorporar funções personalizadas no mesmo o retorno de chamada.
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
const streamManager = new google.ima.cast.dai.api.StreamManager();
const getStreamRequest = (request) => null;
playerManager.setMessageInterceptor(
cast.framework.messages.MessageType.LOAD, (request) => {
return streamManager.requestStream(request, getStreamRequest(request))
.then((request) => {
this.broadcast('Stream request successful.');
return Promise.resolve(request);
})
.catch((error) => {
this.broadcast('Stream request failed.');
return Promise.resolve(request);
});
});
castContext.start();
</script>
</body>
</html>
Criar a solicitação de stream
Para concluir a integração da DAI do CAF, você precisa criar seu stream
solicitação
usando os dados incluídos no objeto mediaInfo
do remetente.
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
const streamManager = new google.ima.cast.dai.api.StreamManager();
const getStreamRequest = (request) => {
const imaRequestData = request.media.customData;
let streamRequest = null;
if (imaRequestData.assetKey) {
// Live stream
streamRequest = new google.ima.cast.dai.api.LiveStreamRequest();
streamRequest.assetKey = imaRequestData.assetKey;
} else if (imaRequestData.contentSourceId) {
// VOD stream
streamRequest = new google.ima.cast.dai.api.VODStreamRequest();
streamRequest.contentSourceId = imaRequestData.contentSourceId;
streamRequest.videoId = imaRequestData.videoId;
}
if (streamRequest && imaRequestData.ApiKey) {
streamRequest.ApiKey = imaRequestData.ApiKey;
}
if (streamRequest && imaRequestData.senderCanSkip) {
streamRequest.senderCanSkip = imaRequestData.senderCanSkip;
}
return streamRequest;
};
playerManager.setMessageInterceptor(
cast.framework.messages.MessageType.LOAD, (request) => {
return streamManager.requestStream(request, getStreamRequest(request))
.then((request) => {
return Promise.resolve(request);
})
.catch((error) => {
this.broadcast('Stream request failed.');
return Promise.resolve(request);
});
});
castContext.start();
</script>
</body>
</html>
Agora é possível solicitar e reproduzir streams de DAI com o SDK de DAI para CAF do Google. Para saber mais sobre recursos avançados do SDK, consulte os outros guias ou faça o download do nosso receptor de amostra aplicativos.