Reglas de anuncios

El SDK de IMA para Android admite listas de reproducción de anuncios completamente automatizadas. Esta función inserta pausas publicitarias en el contenido como se especifica en Google Ad Manager cuando se genera el tráfico de los anuncios. También simplifica en gran medida el código del reproductor de video necesario para admitir las pausas publicitarias, incluidos los anuncios previos al video, durante el video y al final del video.

  • Cuando se genera el tráfico de los anuncios en Ad Manager, es posible especificar varias reglas de anuncios, como "Reproducir siempre la pausa publicitaria al comienzo del contenido" o "Reproducir una pausa publicitaria de un minuto cada 30 minutos de contenido".
  • Cuando se solicitan anuncios, el servidor puede mostrar una lista de reproducción de anuncios. El SDK procesa la lista de reproducción y programa automáticamente las pausas publicitarias que se especificaron.
  • Dado que Android usa el mismo reproductor de video para la reproducción de anuncios y contenido, si tienes pensado implementar reglas de anuncios, debes guardar la posición del cabezal de reproducción de tu contenido cuando comienza un anuncio y, luego, buscar esa posición cuando finaliza el anuncio. Asegúrate de implementar la interfaz VideoAdPlayer en tu reproductor de video. Esto garantiza que las pausas publicitarias se inserten automáticamente en los momentos especificados en 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);
    }
    
  • Los eventos CONTENT_PAUSE_REQUESTED y CONTENT_RESUME_REQUESTED se usan para pausar y reanudar el contenido cuando se reproducen las pausas publicitarias. Consulta la documentación de la API relevante para obtener detalles sobre estos eventos.

Nota:Cuando el contenido termine de reproducirse o el usuario detenga la reproducción, asegúrate de llamar a AdsLoader.contentComplete para indicarle al SDK que el contenido está listo. Luego, el SDK reproduce la pausa publicitaria final del video, si está programada. El evento ALL_ADS_COMPLETED se genera cuando se reproducen TODAS las pausas publicitarias. Además, ten en cuenta que el seguimiento de contenido comienza cuando se llama a init() y siempre debes llamar a init() antes de reproducir contenido.