Com os SDKs do IMA, é fácil integrar anúncios multimídia aos seus sites e apps. Os SDKs do IMA podem solicitar anúncios de qualquer de anúncios compatíveis com VAST e gerencie a reprodução de anúncios nos seus apps. Com os SDKs de DAI do IMA, os apps criam uma solicitação de streaming para anúncio e conteúdo de vídeo, seja VOD ou conteúdo ao vivo. Em seguida, o SDK retorna uma stream de vídeo combinado, para que você não precise alternar entre anúncios e conteúdo em vídeo no seu app.
Selecione a solução de DAI do seu interesse
DAI de veiculação de conjuntos
Com os SDKs do IMA, é fácil integrar anúncios multimídia aos seus sites e apps. Os SDKs do IMA podem solicitar anúncios de qualquer de anúncios compatíveis com VAST e gerencie a reprodução de anúncios nos seus apps. Com os SDKs de DAI do IMA, os apps criam uma solicitação de streaming para anúncio e conteúdo de vídeo, seja VOD ou conteúdo ao vivo. Em seguida, o SDK retorna uma stream de vídeo combinado, para que você não precise alternar entre anúncios e conteúdo em vídeo no seu app.
Este guia demonstra como reproduzir um stream de Veiculação de conjunto DAI usando a DAI do IMA SDK com um player de vídeo simples para reprodução de stream ao vivo e VOD. Se você quiser quiser visualizar ou acompanhar um exemplo completo de integração, faça o download do exemplo de veiculação de pod.
Visão geral da veiculação de conjunto DAI do IMA
StreamRequest
: um objeto que define uma solicitação de stream para servidores de publicidade do Google. Precisam ser criados usandoImaSdkFactory.createPodStreamRequest()
ouImaSdkFactory.createPodVodStreamRequest()
para ativar a disponibilização de pods. Esses métodos exigem um código de rede.createPodStreamRequest
também requer uma chave de recurso personalizada e um chave de API opcional. Ambos incluem outros parâmetros opcionais.StreamManager
: um objeto que gerencia a comunicação entre o stream de vídeo e o SDK de DAI do IMA, como disparar pings de rastreamento e encaminhando eventos de stream para o editor.
Pré-requisitos
Um app Android já configurado com o SDK de DAI do IMA para reproduzir streams de vídeo com da DAI. Se você ainda não possui esse aplicativo, recomendamos o uso do DAI do Android BasicExample como um ponto de partida. O BasicExample inclui a base de código mencionada neste guia.
É importante que o app envie eventos ID3 usando
VideoStreamPlayerCallback.onUserTextReceived()
para que a DAI do IMA funcione. Confira este exemplo de snippet de código DAI de serviço completo.
Configurar as variáveis de disponibilização de pods
Todas as mudanças necessárias para a veiculação de pods são feitas em SampleAdsWrapper.java. A a primeira etapa é atualizar as variáveis constantes.
Estas são as constantes de solicitação de stream do conjunto de anúncios que serão adicionadas:
STREAM_URL
: usado apenas para transmissões ao vivo, é o URL de stream de vídeo fornecido pelo o manipulador de manifesto ou um parceiro terceirizado usando a veiculação de pods. Ele deveria exigem que você insira o código de stream fornecido pelo SDK de DAI do IMA antes de fazer uma solicitação. Nesse caso, o URL de stream inclui um marcador,"[[STREAMID]]"
, que é substituído pelo ID de stream antes de fazer uma solicitação.NETWORK_CODE
: o código da rede da conta do Ad Manager 360.CUSTOM_ASSET_KEY
: usado apenas para transmissões ao vivo, a chave de recurso personalizada que identifica seu evento de veiculação de conjunto no Ad Manager 360. Ela pode ser criada seu manipulador de manifesto ou um parceiro terceirizado de veiculação de pod.API_KEY
: usado apenas para transmissões ao vivo, ou seja, uma chave de API opcional que pode ser necessário para recuperar um ID de stream do SDK de DAI do IMA.
O exemplo básico da DAI do Android foi criado para reproduzir vários tipos de mas para a disponibilização de conjuntos, ele é configurado para reproduzir um único stream. Altere a seção de variável do exemplo para corresponder ao seguinte:
/** This class adds ad-serving support to Sample HlsVideoPlayer */
public class SampleAdsWrapper
implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {
// Podserving Stream Constants.
private static final String STREAM_URL =
"https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/" +
"master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample" +
"&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000" +
"&seg-host=dai.google.com&stream_id=[[STREAMID]]";
private static final String NETWORK_CODE = "51636543";
private static final String CUSTOM_ASSET_KEY = "google-sample";
private static final String API_KEY = "";
private static final String PLAYER_TYPE = "DAISamplePlayer";
/** Log interface, so we can output the log commands to the UI or similar. */
public interface Logger {
...
Crie uma solicitação de stream de conjunto ao vivo ou de VOD para ativar a veiculação de conjuntos
Veiculação de conjunto de transmissão ao vivo
Remova o método buildStreamRequest()
que foi usado para alternar entre
criando uma variedade de tipos de fluxo. Em seguida, mude requestAndPlayAds()
para chamar
ImaSdkFactory.createPodStreamRequest()
para criar um anúncio de veiculação de conjunto em tempo real
solicitação. Por fim, solicite o stream usando AdsLoader.requestStream()
.
public void requestAndPlayAds() {
StreamRequest request =
sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);
request.setFormat(StreamFormat.HLS);
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
adsLoader.requestStream(request);
}
Veiculação de conjunto de stream de VOD
Remova o método buildStreamRequest()
que foi usado para alternar entre
criando uma variedade de tipos de fluxo. Em seguida, mude requestAndPlayAds()
para chamar
ImaSdkFactory.createPodVodStreamRequest()
para criar um anúncio de veiculação de conjunto de VOD
solicitação. Por fim, solicite o stream usando AdsLoader.requestStream()
.
public void requestAndPlayAds() {
StreamRequest request =
sdkFactory.createPodVodStreamRequest(NETWORK_CODE);
request.setFormat(StreamFormat.HLS);
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
adsLoader.requestStream(request);
}
Editar e definir o URL da transmissão
Veiculação de conjunto de transmissão ao vivo
Chame StreamManager.getStreamId()
para receber o ID de stream. Em seguida, ele precisa ser
inserido no STEAM_URL
, substituindo "[[STREAMID]]"
. Depois que essa alteração for
o novo URL de transmissão pode ser definido usando videoPlayer.setStreamUrl()
.
@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
streamManager = event.getStreamManager();
streamManager.addAdErrorListener(this);
streamManager.addAdEventListener(this);
// To enable streams
String streamID = streamManager.getStreamId();
String streamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);
streamManager.init();
videoPlayer.setStreamUrl(streamUrl);
videoPlayer.play();
}
Veiculação de conjunto de stream de VOD
Chame StreamManager.getStreamId()
para receber o ID de stream. Em seguida, solicite uma
o URL de transmissão do seu parceiro de tecnologia de vídeo (VTP). Em seguida, chame
StreamManager.loadThirdPartyStream()
para que o IMA carregue o URL de stream e quaisquer
legendas retornadas pelo TVP.
@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
streamManager = event.getStreamManager();
streamManager.addAdErrorListener(this);
streamManager.addAdEventListener(this);
// To enable streams
String streamID = streamManager.getStreamId();
// 'vtpInterface' is a place holder for your own video technology partner
// (VTP) API calls.
String streamUrl = vtpInterface.requestStreamURL(streamID);
streamManager.init();
// Pass any subtitles returned by your VTP in this step as well.
streamManager.loadThirdPartyStream(streamUrl, subtitles);
}
Quando a veiculação de conjuntos está ativada, o IMA não faz chamadas
VideoStreamPlayer.loadUrl()
, para que você possa remover as chamadas para
videoPlayer.setStreamUrl()
e videoPlayer.play()
a partir dela.
Pronto! Agora você está solicitando e exibindo anúncios em um fluxo de veiculação de conjunto com SDK de DAI do IMA. Para ver outros exemplos do SDK do Android em uso, consulte o no GitHub.