Les SDK IMA permettent d'intégrer facilement des annonces multimédias à vos sites Web et 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 les vidéos de contenu (VOD ou contenu en direct). Le SDK renvoie ensuite un flux vidéo combiné, de sorte que vous n'ayez pas à gérer le basculement entre l'annonce et le contenu vidéo dans votre application.
Sélectionnez la solution de publicité display in-app qui vous intéresse.
Insertion dynamique de séries d'annonces
Les SDK IMA permettent d'intégrer facilement des annonces multimédias à vos sites Web et 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 les vidéos de contenu (VOD ou contenu en direct). Le SDK renvoie ensuite un flux vidéo combiné, de sorte que vous n'ayez pas à gérer le basculement entre l'annonce et le contenu vidéo dans votre application.
Ce guide explique comment lire une diffusion de séries d'annonces avec insertion dynamique des annonces à l'aide du SDK IMA DAI avec un lecteur vidéo pour la lecture de diffusions en direct et de VOD. Pour afficher ou suivre un exemple d'intégration terminée, téléchargez l'exemple de diffusion de pod.
Présentation de l'insertion dynamique de séries d'annonces IMA
StreamRequest
: objet qui définit une requête de flux vers les serveurs publicitaires de Google. Doit être créé à l'aide deImaSdkFactory.createPodStreamRequest()
ou deImaSdkFactory.createPodVodStreamRequest()
pour activer le service de pod. Ces méthodes nécessitent un code réseau, etcreatePodStreamRequest
nécessite également une clé d'élément personnalisé 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 des é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 DAI. Si vous ne disposez pas encore d'une telle application, nous vous recommandons de commencer par Android DAI BasicExample. BasicExample contient le code de base référencé dans ce guide.
Il est important que votre application envoie des événements ID3 à l'aide de
VideoStreamPlayerCallback.onUserTextReceived()
pour que la fonctionnalité DAI IMA fonctionne. Consultez cet exemple d'extrait de code DAI complet.
Configurer vos variables d'insertion de séries d'annonces
Toutes les modifications nécessaires pour l'insertion dynamique 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éries 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 dynamique de séries d'annonces. Vous devez insérer l'ID de flux fourni par le SDK IMA DAI avant d'envoyer 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 d'envoyer une requête.NETWORK_CODE
: code de réseau de votre compte Ad Manager 360.CUSTOM_ASSET_KEY
: Utilisé uniquement pour les diffusions en direct : clé d'élément personnalisée qui identifie votre événement de diffusion de série dans Ad Manager 360. Il peut être créé par votre outil de manipulation du fichier manifeste ou par un partenaire tiers de diffusion de séries d'annonces.API_KEY
: Utilisé uniquement 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 Android DAI est conçu pour lire différents types de flux, mais pour la diffusion de séries d'annonces, il est configuré pour lire 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 série de diffusions en direct ou de VOD pour activer la diffusion en série
Diffusion en direct de séries
Suppression de la méthode buildStreamRequest()
qui était utilisée pour passer de la création de divers types de flux à la création d'autres. Modifiez ensuite requestAndPlayAds()
pour appeler ImaSdkFactory.createPodStreamRequest()
afin de créer une requête d'annonces de diffusion de pods 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 dans les flux VOD
Suppression de la méthode buildStreamRequest()
qui était utilisée pour passer de la création de divers types de flux à la création d'autres. Modifiez ensuite requestAndPlayAds()
pour appeler ImaSdkFactory.createPodVodStreamRequest()
afin de créer une requête d'annonce de diffusion de pod 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 en direct de séries
Appelez StreamManager.getStreamId()
pour obtenir l'ID du flux. Il doit ensuite être inséré dans STEAM_URL
en remplacement de "[[STREAMID]]"
. Une fois ce changement effectué, 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 dans les flux VOD
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 demander à IMA de charger l'URL du flux et 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 pod est activée, IMA n'effectue pas d'appels à VideoStreamPlayer.loadUrl()
. Vous pouvez donc supprimer tous les appels à videoPlayer.setStreamUrl()
et videoPlayer.play()
.
Et voilà ! Vous demandez et affichez désormais des annonces dans un flux de diffusion de séries d'annonces avec le SDK DAI IMA. Pour voir d'autres exemples d'utilisation du SDK Android, consultez les exemples sur GitHub.