Configurer avec l'insertion dynamique d'annonces (DAI) pour les pods

Sélectionner une plate-forme : HTML5 Android iOS tvOS Cast Roku

Les SDK IMA facilitent l'intégration d'annonces multimédias dans vos sites Web et vos applications. Les SDK IMA peuvent demander des annonces à n'importe quel ad server conforme à 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 les annonces et le contenu vidéo (VOD ou contenu en direct). Le SDK renvoie ensuite un flux vidéo combiné, ce qui vous évite d'avoir à gérer le passage de l'annonce au contenu vidéo dans votre application.

Ce guide explique comment lire un flux d'insertion de séries d'annonces DAI à l'aide du SDK IMA DAI avec un lecteur vidéo pour la lecture de flux en direct et de VOD. Pour afficher ou suivre un exemple d'intégration complet, téléchargez l'exemple d'insertion de séries d'annonces.

Présentation de l'insertion dynamique d'annonces IMA DAI

  • StreamRequest : objet qui définit une demande de flux adressée aux serveurs publicitaires de Google. Doit être créé à l'aide de ImaSdkFactory.createPodStreamRequest() ou de ImaSdkFactory.createPodVodStreamRequest() pour activer la diffusion de séries d'annonces. Ces méthodes nécessitent un code réseau. createPodStreamRequest nécessite également une clé d'élément personnalisée et une clé API facultative. Les deux incluent d'autres paramètres facultatifs.

  • StreamManager : objet qui gère la communication entre le flux vidéo et le SDK IMA DAI, par exemple en déclenchant des pings de suivi et en transmettant les événements de flux à l'éditeur.

Prérequis

Configurer vos variables de diffusion de séries d'annonces

Toutes les modifications nécessaires pour l'insertion de séries d'annonces sont effectuées dans SampleAdsWrapper.java. La première étape consiste à mettre à jour les variables constantes.

Voici les constantes de requête de flux de série d'annonces à ajouter :

  • STREAM_URL : utilisé uniquement pour les diffusions en direct. URL du flux vidéo fournie par votre manipulateur de fichier manifeste ou votre partenaire tiers utilisant l'insertion de séries d'annonces. Il doit vous demander d'insérer l'ID de flux fourni par le SDK IMA DAI avant d'effectuer une requête. Dans ce cas, l'URL du flux inclut un espace réservé, "[[STREAMID]]", qui est remplacé par l'ID du flux avant l'envoi d'une requête.

  • NETWORK_CODE : code de réseau de votre compte Ad Manager 360.

  • CUSTOM_ASSET_KEY : uniquement utilisé pour les diffusions en direct : clé d'asset personnalisée qui identifie votre événement d'insertion de pod dans Ad Manager 360. Il peut être créé par votre outil de manipulation du fichier manifeste ou par un partenaire tiers d'insertion de séries d'annonces.

  • API_KEY : utilisé uniquement pour les diffusions en direct : clé API facultative qui peut être requise pour récupérer un ID de flux à partir du SDK IMA DAI.

L'exemple BasicExample de l'insertion dynamique d'annonce pour Android est conçu pour lire différents types de flux, mais pour l'insertion de séries d'annonces, il est configuré pour ne lire qu'un seul flux. Modifiez la section des variables de l'exemple pour qu'elle corresponde aux éléments suivants :

/** This class implements IMA to add pod ad-serving support to SampleVideoPlayer */
@SuppressLint("UnsafeOptInUsageError")
/* @SuppressLint is needed for new media3 APIs. */
public class SampleAdsWrapper
    implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {

  // Set up the pod serving variables.
  private static final String NETWORK_CODE = "";
  private static final String CUSTOM_ASSET_KEY = "";
  private static final String API_KEY = "";
  private static final String STREAM_URL = "";
  private static final StreamFormat STREAM_FORMAT = StreamFormat.HLS;

Créer une demande de flux de série d'annonces en direct ou de VOD pour activer l'insertion de séries d'annonces

Diffusion de séries d'annonces dans les diffusions en direct

Supprimez la méthode buildStreamRequest() qui permettait de basculer entre la création de différents types de flux. Ensuite, modifiez requestAndPlayAds() pour appeler ImaSdkFactory.createPodStreamRequest() afin de créer une demande d'annonce pour la diffusion de pods en direct.

// Live pod stream request.
request = sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);

Diffusion de séries d'annonces dans un flux de VOD

Supprimez la méthode buildStreamRequest(), qui permettait de basculer entre la création de différents types de flux. Ensuite, modifiez requestAndPlayAds() pour appeler ImaSdkFactory.createPodVodStreamRequest() afin de créer une demande d'annonce de diffusion de pod de VOD.

// VOD pod stream request.
request = sdkFactory.createPodVodStreamRequest(NETWORK_CODE);

Après avoir créé l'instance de requête de flux, demandez le flux à l'aide de AdsLoader.requestStream() :

request.setFormat(STREAM_FORMAT);
adsLoader.requestStream(request);

Modifier et définir l'URL du flux

Diffusion de séries d'annonces dans les diffusions en direct

Appelez la méthode StreamManager.getStreamId() pour obtenir l'ID du flux. Il doit être inséré dans STEAM_URL en remplaçant "[[STREAMID]]". Une fois cette modification effectuée, définissez la nouvelle URL du flux à l'aide de la méthode videoPlayer.setStreamUrl() et appelez la méthode videoPlayer.play() pour lancer la lecture du flux.

// Play the live pod stream.
streamID = streamManager.getStreamId();
String liveStreamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);
// Call videoPlayer.play() here, because IMA doesn't call the VideoStreamPlayer.loadUrl()
// function for livestreams.
videoPlayer.setStreamUrl(liveStreamUrl);
videoPlayer.play();

Diffusion de séries d'annonces dans un flux de VOD

  1. Appelez la méthode StreamManager.getStreamId() pour obtenir l'ID du flux.
  2. Demandez une URL de flux à votre partenaire technologique vidéo (VTP).
  3. Une fois que vous avez reçu l'URL de votre VTP, appelez la méthode StreamManager.loadThirdPartyStream() avec l'URL pour charger le flux, ainsi que les sous-titres renvoyés par votre VTP.
// Play the VOD pod stream.
streamID = streamManager.getStreamId();
String vodStreamUrl = "";
// Refer to your Video Tech Partner (VTP) or video stitching guide to fetch the stream URL
// and the subtitles for a the ad stitched VOD stream.

// In the following commented out code, 'vtpInterface' is a place holder
// for your own video technology partner (VTP) API calls.
// vodStreamUrl = vtpInterface.requestStreamURL(streamID);
List<Map<String, String>> subtitles = new ArrayList<>();
streamManager.loadThirdPartyStream(vodStreamUrl, subtitles);

Pour les demandes de diffusion de pods de VOD, le SDK IMA appelle le rappel VideoStreamPlayer.loadUrl() lorsque le flux est chargé. Pour lancer la lecture du flux, ajoutez les appels videoPlayer.setStreamUrl() et videoPlayer.play() au rappel VideoStreamPlayer.loadUrl() :

private VideoStreamPlayer createVideoStreamPlayer() {
  return new VideoStreamPlayer() {
    @Override
    public void loadUrl(String url, List<HashMap<String, String>> subtitles) {
      // IMA doesn't make calls to VideoStreamPlayer.loadUrl() for pod serving live streams.
      // The following code is for VOD streams.
      videoPlayer.setStreamUrl(url);
      videoPlayer.play();
    }

Nettoyer les assets IMA DAI

Une fois que vous avez demandé et affiché 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 d'annonces terminée. Appelez StreamManager.destroy() pour arrêter la lecture du flux, arrêter tout le suivi des annonces et libérer tous les éléments de flux chargés.

Pour voir d'autres exemples d'utilisation du SDK Android, consultez les exemples sur GitHub.