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
etCONTENT_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.