Premiers pas avec le SDK IMA DAI

Les SDK IMA facilitent l'intégration d'annonces multimédias dans vos sites Web et applications. Les SDK IMA peuvent demander des annonces à n'importe quel ad server compatible avec VAST et gérer la lecture des annonces dans vos applications. Avec les SDK IMA pour l'insertion dynamique d'annonce, les applications envoient une demande de flux pour l'annonce 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 basculement entre les annonces et les vidéos 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 à n'importe quel ad server compatible avec VAST et gérer la lecture des annonces dans vos applications. Avec les SDK IMA pour l'insertion dynamique d'annonce, les applications envoient une demande de flux pour l'annonce 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 basculement entre les annonces et les vidéos de contenu dans votre application.

Ce guide explique comment lire un flux d'insertion dynamique de séries d'annonces à l'aide du SDK IMA pour Android, avec un lecteur vidéo simple pour la lecture de flux en direct et de vidéos à la demande. Si vous souhaitez 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 via le SDK IMA

  • StreamRequest: objet qui définit une requête de flux vers les serveurs publicitaires de Google. Doit être créé à l'aide de ImaSdkFactory.createPodStreamRequest() ou de ImaSdkFactory.createPodVodStreamRequest() pour activer la diffusion de pods. Ces méthodes nécessitent un code de réseau, tandis que createPodStreamRequest 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'annonce, comme le déclenchement des pings de suivi et le transfert des événements de flux à l'éditeur.

Prérequis

Configurer les variables de diffusion de pods

Toutes les modifications nécessaires pour la diffusion de pods sont effectuées dans SampleAdsWrapper.java. La première étape consiste à mettre à jour les variables constantes.

Voici les constantes de demande de flux de séries d'annonces à ajouter:

  • STREAM_URL: utilisée uniquement pour les diffusions en direct. L'URL du flux vidéo fournie par votre outil de manipulation du fichier manifeste ou par votre partenaire tiers utilisant la diffusion de séries d'annonces. Avant d'envoyer une demande, vous devez insérer l'ID de flux fourni par le SDK IMA pour l'insertion dynamique d'annonce. Dans ce cas, l'URL de flux inclut un espace réservé, "[[STREAMID]]", qui est remplacé par l'ID de flux, avant d'envoyer 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é qui identifie l'événement de diffusion de séries d'annonces dans Ad Manager 360. Il peut être créé par votre outil de manipulation du fichier manifeste ou votre partenaire de diffusion de pods tiers.

  • API_KEY: utilisée uniquement pour les diffusions en direct. Clé API facultative pouvant être requise pour récupérer un ID de flux à partir du SDK IMA pour l'insertion dynamique d'annonce.

L'exemple d'insertion dynamique d'annonce Android BasicExample est conçu pour lire différents types de flux, mais pour la diffusion 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 à 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 demande de flux de pod en direct ou de vidéo à la demande pour activer la diffusion de pods

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

Supprimez la méthode buildStreamRequest() qui permettait de 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 de flux VOD

Supprimez la méthode buildStreamRequest() qui permettait de basculer entre différents types de flux. Modifiez ensuite requestAndPlayAds() pour appeler ImaSdkFactory.createPodVodStreamRequest() et 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 pour les diffusions en direct

Appelez StreamManager.getStreamId() pour obtenir l'ID de flux. Il doit ensuite être inséré dans STEAM_URL en remplaçant "[[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 de flux VOD

Appelez StreamManager.getStreamId() pour obtenir l'ID de flux. Demandez ensuite une URL de flux à votre partenaire technologique vidéo (VTP). Appelez ensuite StreamManager.loadThirdPartyStream() pour que IMA charge l'URL de 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() de celui-ci.

Et voilà ! Vous demandez et affichez maintenant des annonces dans un flux de diffusion de séries d'annonces avec le SDK IMA Android DAI. Pour voir d'autres exemples d'utilisation du SDK Android, consultez les exemples sur GitHub.