Les SDK IMA facilitent l'intégration d'annonces multimédias dans vos sites Web et applications. Les SDK IMA peuvent demander des annonces à partir de n'importe quel ad server compatible avec la norme VAST et gérer la lecture des annonces dans vos applications. Avec les SDK IMA DAI, les applications envoient une demande de flux pour des annonces et des contenus vidéo (VOD ou en direct). Le SDK renvoie ensuite un flux vidéo combiné pour vous éviter d'avoir à gérer le basculement entre l'annonce et la vidéo de contenu dans votre application.
Sélectionnez la solution d'insertion dynamique d'annonce qui vous intéresse
Insertion dynamique de séries d'annonces
Les SDK IMA facilitent l'intégration d'annonces multimédias dans vos sites Web et applications. Les SDK IMA peuvent demander des annonces à partir de n'importe quel ad server compatible avec la norme VAST et gérer la lecture des annonces dans vos applications. Avec les SDK IMA DAI, les applications envoient une demande de flux pour des annonces et des contenus vidéo (VOD ou en direct). Le SDK renvoie ensuite un flux vidéo combiné pour vous éviter d'avoir à gérer le basculement entre l'annonce et la vidéo de contenu dans votre application.
Ce guide explique comment lire un flux utilisant l'insertion dynamique de séries d'annonces en utilisant le SDK IMA DAI avec un lecteur vidéo pour la lecture de flux en direct et de vidéo à la demande. Pour afficher ou suivre un exemple d'intégration terminé, téléchargez l'exemple de diffusion de pods.
Présentation de l'insertion dynamique de séries d'annonces d'IMA
StreamRequest
: objet qui définit une requête de flux adressée aux serveurs publicitaires de Google. Doit être créé à l'aide deImaSdkFactory.createPodStreamRequest()
ou deImaSdkFactory.createPodVodStreamRequest()
pour activer la diffusion de pods. Ces méthodes nécessitent un code de réseau, etcreatePodStreamRequest
nécessite également une clé d'élément personnalisée et une clé API facultative. Tous deux incluent d'autres paramètres facultatifs.StreamManager
: objet qui gère la communication entre le flux vidéo et le SDK IMA pour l'insertion dynamique d'annonces, par exemple le déclenchement de pings de suivi et le transfert d'événements de flux à l'éditeur.
Prérequis
Une application Android déjà configurée avec le SDK IMA DAI pour lire des flux vidéo avec des annonces pour l'insertion dynamique d'annonce Si vous ne disposez pas encore d'une application de ce type, nous vous recommandons d'utiliser l'exemple de base pour l'insertion dynamique d'annonces sur Android comme point de départ. L'exemple de base utilise le codebase référencé dans ce guide.
Il est important que votre application envoie des événements ID3 à l'aide de
VideoStreamPlayerCallback.onUserTextReceived()
pour que l'insertion dynamique d'annonces IMA fonctionne. Consultez cet exemple d'extrait de code pour l'insertion dynamique d'annonce complète.
Configurer les variables de diffusion de séries d'annonces
Toutes les modifications nécessaires à la diffusion de pods sont effectuées dans SampleAdsWrapper.java. La première étape consiste à mettre à jour les variables constantes.
Voici les constantes des demandes de flux de séries d'annonces à ajouter:
STREAM_URL
: uniquement utilisé pour les diffusions en direct – URL du flux vidéo fournie par votre outil de manipulation du fichier manifeste ou par un partenaire tiers utilisant la diffusion de séries d'annonces. Vous devez insérer l'ID de flux fourni par le SDK IMA DAI avant d'envoyer une demande. Dans ce cas, l'URL de flux inclut un espace réservé,"[[STREAMID]]"
, qui est remplacé par l'ID de flux, avant l'envoi d'une requête.NETWORK_CODE
: code de réseau de votre compte Ad Manager 360.CUSTOM_ASSET_KEY
: utilisée uniquement pour les diffusions en direct – Clé d'élément personnalisée qui identifie votre événement de diffusion de séries d'annonces dans Ad Manager 360. Elle peut être créée par votre outil de manipulation du fichier manifeste ou par un partenaire tiers de diffusion de séries d'annonces.API_KEY
: uniquement utilisée pour les diffusions en direct. Clé API facultative pouvant être requise pour récupérer un ID de flux à partir du SDK IMA DAI.
L'exemple de base pour l'insertion dynamique d'annonces sur Android est conçu pour lire différents types de flux, mais pour la diffusion de pods, il est configuré pour ne lire qu'un seul flux. Modifiez la section des variables de l'exemple pour qu'elle corresponde à ce qui suit:
/** This class adds ad-serving support to Sample HlsVideoPlayer */
public class SampleAdsWrapper
implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {
// Podserving Stream Constants.
private static final String STREAM_URL =
"https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/" +
"master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample" +
"&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000" +
"&seg-host=dai.google.com&stream_id=[[STREAMID]]";
private static final String NETWORK_CODE = "51636543";
private static final String CUSTOM_ASSET_KEY = "google-sample";
private static final String API_KEY = "";
private static final String PLAYER_TYPE = "DAISamplePlayer";
/** Log interface, so we can output the log commands to the UI or similar. */
public interface Logger {
...
Créer une requête de flux de pod en direct ou à la demande pour activer la diffusion de séries d'annonces
Diffusion de séries d'annonces en direct
Suppression de la méthode buildStreamRequest()
qui avait été utilisée pour basculer entre différents types de flux. Modifiez ensuite requestAndPlayAds()
pour appeler ImaSdkFactory.createPodStreamRequest()
afin de créer une demande d'annonce pour la diffusion de séries d'annonces en direct. Enfin, demandez le flux à l'aide de AdsLoader.requestStream()
.
public void requestAndPlayAds() {
StreamRequest request =
sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);
request.setFormat(StreamFormat.HLS);
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
adsLoader.requestStream(request);
}
Diffusion de séries d'annonces en flux de vidéo à la demande
Suppression de la méthode buildStreamRequest()
qui avait été utilisée pour basculer entre différents types de flux. Modifiez ensuite requestAndPlayAds()
pour appeler ImaSdkFactory.createPodVodStreamRequest()
afin de créer une demande d'annonce pour la diffusion de séries d'annonces VOD. Enfin, demandez le flux à l'aide de AdsLoader.requestStream()
.
public void requestAndPlayAds() {
StreamRequest request =
sdkFactory.createPodVodStreamRequest(NETWORK_CODE);
request.setFormat(StreamFormat.HLS);
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
adsLoader.requestStream(request);
}
Modifier et définir l'URL du flux
Diffusion de séries d'annonces en direct
Appelez StreamManager.getStreamId()
pour obtenir l'ID du flux. Elle doit ensuite être insérée dans STEAM_URL
à la place de "[[STREAMID]]"
. Une fois cette modification effectuée, la nouvelle URL de flux peut être définie à l'aide de videoPlayer.setStreamUrl()
.
@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
streamManager = event.getStreamManager();
streamManager.addAdErrorListener(this);
streamManager.addAdEventListener(this);
// To enable streams
String streamID = streamManager.getStreamId();
String streamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);
streamManager.init();
videoPlayer.setStreamUrl(streamUrl);
videoPlayer.play();
}
Diffusion de séries d'annonces en flux de vidéo à la demande
Appelez StreamManager.getStreamId()
pour obtenir l'ID du flux. Demandez ensuite une URL de flux à votre partenaire technologique vidéo (VTP). Appelez ensuite StreamManager.loadThirdPartyStream()
pour que IMA charge l'URL du flux et tous les sous-titres renvoyés par votre TVP.
@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
streamManager = event.getStreamManager();
streamManager.addAdErrorListener(this);
streamManager.addAdEventListener(this);
// To enable streams
String streamID = streamManager.getStreamId();
// 'vtpInterface' is a place holder for your own video technology partner
// (VTP) API calls.
String streamUrl = vtpInterface.requestStreamURL(streamID);
streamManager.init();
// Pass any subtitles returned by your VTP in this step as well.
streamManager.loadThirdPartyStream(streamUrl, subtitles);
}
Lorsque la diffusion de séries d'annonces est activée, IMA n'appelle pas VideoStreamPlayer.loadUrl()
. Vous pouvez donc supprimer tous les appels à videoPlayer.setStreamUrl()
et videoPlayer.play()
à partir de cet élément.
Supprimer les éléments IMA pour l'insertion dynamique d'annonce
Une fois que vous avez fini de demander et d'afficher des annonces dans un flux de diffusion de séries d'annonces avec le SDK IMA DAI, nous vous suggérons de nettoyer toutes les ressources une fois la session de diffusion de séries terminée. Appelez StreamManager.destroy()
pour arrêter la lecture du flux, arrêter le suivi des annonces et libérer tous les éléments de flux chargés.
Pour voir d'autres exemples du SDK Android utilisé, consultez les exemples sur GitHub.