Règles relatives aux annonces

Le SDK IMA pour Android est compatible avec les playlists d'annonces entièrement automatiques. Cette fonctionnalité insère des coupures publicitaires dans le contenu, comme spécifié dans Google Ad Manager lors du trafficking de vos annonces. Cela simplifie considérablement le code du lecteur vidéo requis pour les coupures publicitaires, y compris les annonces vidéo pré-roll, mid-roll et post-roll.

  • Lorsque vous procédez au trafficking des annonces dans Ad Manager, vous pouvez spécifier différentes règles telles que "Toujours diffuser la coupure publicitaire au début du contenu" ou "Lire une coupure publicitaire d'une minute toutes les 30 minutes".
  • Lorsque des annonces sont demandées, l'ad server peut renvoyer une playlist d'annonces. Le SDK traite la playlist et planifie automatiquement les coupures publicitaires spécifiées.
  • Android utilise le même lecteur vidéo pour la lecture des annonces et du contenu. Par conséquent, si vous prévoyez d'implémenter des règles relatives aux annonces, vous devez enregistrer la position de la tête de lecture de votre contenu au début de l'annonce, puis rechercher cette position une fois l'annonce terminée. Assurez-vous d'intégrer l'interface VideoAdPlayer dans votre lecteur vidéo. De cette manière, les coupures publicitaires sont insérées automatiquement aux moments spécifiés dans 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);
    }
    
  • Les événements CONTENT_PAUSE_REQUESTED et CONTENT_RESUME_REQUESTED permettent de mettre en pause et de réactiver le contenu lors de la lecture de coupures publicitaires. Pour en savoir plus sur ces événements, consultez la documentation de l'API correspondante.

Remarque : Lorsque la lecture du contenu est terminée ou que l'utilisateur a arrêté la lecture, veillez à appeler AdsLoader.contentComplete pour signaler au SDK que le contenu est terminé. Le SDK lit ensuite la coupure publicitaire post-roll, le cas échéant. L'événement ALL_ADS_COMPLETED est déclenché lorsque TOUTES les coupures publicitaires ont été lues. Notez également que le suivi de contenu commence lorsque la fonction init() est appelée. Vous devez toujours appeler init() avant de lire du contenu.