Automatiser les playlists d'annonces

Sélectionnez une plate-forme : HTML5 Android iOS tvOS

Le SDK IMA pour Android est compatible avec les playlists publicitaires entièrement automatisées. Cette fonctionnalité insère des pauses publicitaires dans le contenu, comme spécifié dans Google Ad Manager lors du trafficking de vos annonces. Il simplifie également considérablement le code du lecteur vidéo nécessaire pour prendre en charge les coupures publicitaires, y compris les annonces pré-roll, mid-roll et post-roll.

  • Lorsque vous diffusez des annonces dans Ad Manager, vous pouvez spécifier différentes règles publicitaires, comme "toujours diffuser une coupure publicitaire au début du contenu" ou "diffuser une coupure publicitaire d'une minute toutes les 30 minutes de contenu".
  • Lorsque des annonces sont demandées, l'ad server peut renvoyer une playlist d'annonces. Le SDK traite la playlist et planifie automatiquement les pauses publicitaires spécifiées.
  • Étant donné qu'Android utilise le même lecteur vidéo pour la lecture des annonces et du contenu, 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 lorsqu'une annonce commence, puis revenir à cette position lorsque l'annonce se termine. Veillez à implémenter l'interface VideoAdPlayer dans votre lecteur vidéo. Cela permet de s'assurer que 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 sont utilisés pour mettre en pause et reprendre le contenu lorsque des coupures publicitaires sont diffusées. Pour en savoir plus sur ces événements, consultez la documentation de l'API correspondante.

Remarque : Une fois le contenu lu ou lorsque l'utilisateur a arrêté la lecture, veillez à appeler AdsLoader.contentComplete pour signaler au SDK que le contenu est terminé. Le SDK lit ensuite l'encart publicitaire post-roll, s'il a été programmé. L'événement ALL_ADS_COMPLETED est déclenché lorsque TOUTES les coupures publicitaires ont été diffusées. De plus, notez que le suivi du contenu commence lorsque init() est appelé. Vous devez toujours appeler init() avant de lire du contenu.