O SDK do IMA para Android é compatível com playlists de anúncios totalmente automatizadas. Esse recurso insere intervalos de anúncio no conteúdo, conforme especificado no Google Ad Manager, ao programar seus anúncios. Isso também simplifica muito o código do player de vídeo necessário para oferecer suporte a intervalos de anúncio, incluindo anúncios precedentes, intermediários e finais.
- Ao programar anúncios no Ad Manager, é possível especificar várias regras de anúncios, como "sempre exibir o intervalo de anúncio no início do conteúdo" ou "reproduzir um intervalo de um minuto a cada 30 minutos de conteúdo".
- Quando os anúncios são solicitados, o servidor pode retornar uma playlist de anúncios. O SDK processa a playlist e programa automaticamente os intervalos de anúncio que foram especificados.
- Como o Android usa o mesmo player de vídeo para a reprodução de anúncios e conteúdo,
se você planeja implementar regras de anúncios, salve a posição do marcador no
conteúdo quando um anúncio for iniciado e procure essa posição quando o anúncio terminar.
Implemente a interface
VideoAdPlayer
no seu player de vídeo. Isso garante que os intervalos de anúncio sejam inseridos automaticamente nos horários especificados no Ad Manager.private boolean playingContent = true; private int contentPosition = -1; private List
callbacks = new ArrayList (); @Override public void addCallback(VideoAdPlayerCallback callback) { callbacks.add(callback); } @Override public void removeCallback(VideoAdPlayerCallback callback) { callbacks.remove(callback); } public void loadContent() playingContent = true; load(CONTENT_URL); } @Override public void loadAd(String mediaUrl) { playingContent = false; load(mediaUrl); } public void pauseContent() { savePosition(); pause(); } @Override public void pauseAd() { pause(); } private void pause() { myVideoView.pause(); for (VideoAdPlayerCallback callback : callbacks) { callback.onPause(); } } public void resumeContent() { loadContent(); if (contentPosition > 0) { restorePosition(); } resume(); } @Override public void resumeAd() { resume(); } private void resume() { myVideoView.start(); for (VideoAdPlayerCallback callback : callbacks) { callback.onResume(); } } public void savePosition() { contentPosition = myVideoView.getCurrentPosition(); } public void restorePosition() { myVideoView.seekTo(contentPosition); } - Os eventos
CONTENT_PAUSE_REQUESTED
eCONTENT_RESUME_REQUESTED
são usados para pausar e retomar o conteúdo quando os intervalos comerciais são reproduzidos. Consulte a documentação da API relevante para mais detalhes sobre esses eventos.
Observação:quando a reprodução do conteúdo for concluída ou
o usuário tiver interrompido a reprodução, chame
AdsLoader.contentComplete
para sinalizar ao SDK que o conteúdo foi concluído. Em seguida, o SDK
reproduz o intervalo de anúncio final, se ele tiver sido programado. O
evento ALL_ADS_COMPLETED
é acionado quando TODOS os intervalos
de anúncios foram reproduzidos. Além disso, o rastreamento de conteúdo começa quando init()
é chamado, e é preciso sempre chamar init()
antes de reproduzir o conteúdo.