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 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 vidéos d'annonces et de contenu dans votre application.
Sélectionnez la solution DAI qui vous intéresse.
Insertion dynamique d'annonces (service complet)
Ce guide explique comment intégrer le SDK IMA DAI dans une application de lecteur vidéo simple. Si vous souhaitez afficher ou suivre un exemple d'intégration complet, téléchargez BasicExample depuis GitHub.
Présentation d'IMA DAI
L'implémentation d'IMA DAI implique quatre composants SDK principaux, comme indiqué dans ce guide :
StreamDisplayContainer
: objet conteneur qui se trouve au-dessus de l'élément de lecture vidéo et qui contient les éléments de l'UI de l'annonce.AdsLoader
: objet qui demande des flux et gère les événements déclenchés par les objets de réponse aux demandes de flux. Vous ne devez instancier qu'un seul AdsLoader, qui peut être réutilisé tout au long de la durée de vie de l'application.StreamRequest
: objet qui définit une requête de flux. Les demandes de flux peuvent concerner des vidéos à la demande ou des diffusions en direct. Les demandes de flux en direct spécifient une clé d'élément, tandis que les demandes de VOD spécifient un ID CMS et un ID vidéo. Les deux types de demandes peuvent éventuellement inclure une clé API nécessaire pour accéder aux flux spécifiés, ainsi qu'un code de réseau Google Ad Manager pour que le SDK IMA gère les identifiants publicitaires comme spécifié dans les paramètres Google Ad Manager.StreamManager
: Objet qui gère les flux d'insertion dynamique d'annonces et les interactions avec le backend DAI. Le gestionnaire de flux gère également les pings de suivi et transmet les événements de flux et d'annonces à l'éditeur.
Prérequis
- Android Studio
- Exemple d'application de lecteur vidéo pour l'intégration du SDK
Télécharger et exécuter l'exemple d'application de lecteur vidéo
L'application exemple fournit un lecteur vidéo fonctionnel qui lit les vidéos HLS. Utilisez-le comme point de départ pour intégrer les fonctionnalités d'insertion dynamique d'annonces du SDK IMA DAI.
Téléchargez l'exemple d'application de lecteur vidéo et extrayez-le.
Lancez Android Studio et sélectionnez Open an existing Android Studio project (Ouvrir un projet Android Studio existant). Si Android Studio est déjà en cours d'exécution, sélectionnez File > New > Import Project (Fichier > Nouveau > Importer un projet). Ensuite, sélectionnez
SampleVideoPlayer/build.gradle
.Exécutez une synchronisation Gradle en sélectionnant Tools > Android > Sync Project with Gradle Files (Outils > Android > Synchroniser le projet avec les fichiers Gradle).
Assurez-vous que l'application du lecteur se compile et s'exécute sur un appareil Android physique ou sur un appareil virtuel Android à l'aide de Run > Run 'app' (Exécuter > Exécuter "application"). Il est normal que le flux vidéo mette quelques instants à se charger avant de démarrer.
Examiner l'exemple de lecteur vidéo
L'exemple de lecteur vidéo ne contient pas encore de code d'intégration du SDK IMA DAI. L'application exemple se compose de deux parties principales :
samplevideoplayer/SampleVideoPlayer.java
: lecteur HLS basé sur ExoPlayer qui sert de base à l'intégration IMA DAI.videoplayerapp/MyActivity.java
: cette activité crée le lecteur vidéo et lui transmet unContext
et unmedia3.ui.PlayerView
.
Ajouter le SDK IMA DAI à l'application du lecteur
Vous devez également inclure une référence au SDK IMA DAI. Dans Android Studio, ajoutez les éléments suivants au fichier build.gradle au niveau de l'application, situé sous app/build.gradle. Le SDK IMA nécessite que la désucrification de la bibliothèque soit activée. Pour ce faire, vous devez définir coreLibraryDesugaringEnabled true
et ajouter coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5'
en tant que dépendance dans le fichier build.gradle. Pour en savoir plus, consultez API Java 11 ou versions ultérieures disponibles via le désucrage avec la spécification nio.
Intégrer le SDK IMA DAI
Créez une classe appelée
SampleAdsWrapper
dans le packagevideoplayerapp
(dansapp/java/com.google.ads.interactivemedia.v3.samples/videoplayerapp/
) pour encapsuler leSampleVideoPlayer
existant et ajouter une logique implémentant IMA DAI. Pour ce faire, vous devez d'abord créer unAdsLoader
qui est utilisé pour demander le flux DAI.Cet extrait inclut des exemples de paramètres pour les flux HLS et DASH, en direct et de VOD. Pour définir le flux en cours de lecture, mettez à jour la variable
CONTENT_TYPE
.Créez une méthode d'assistance
createSampleVideoPlayerCallback()
pour gérer la création d'une instance d'interfaceSampleVideoPlayerCallback
qui étendVideoStreamPlayer.VideoStreamPlayerCallback
.Pour fonctionner avec l'insertion dynamique d'annonces, le lecteur doit transmettre les événements ID3 au SDK IMA DAI. La méthode
callback.onUserTextReceived()
effectue cette opération dans l'exemple de code suivant.Ajoutez une méthode
buildStreamRequest()
pour créer leSteamRequest
. Cette méthode permet de passer d'un flux à l'autre en fonction de la façon dont vous définissez la variableCONTENT_TYPE
. Le flux par défaut utilisé dans ce guide est l'exemple de flux HLS VOD d'IMA.Vous avez également besoin d'un
VideoStreamPlayer
pour lire le flux. Ajoutez donc une méthodecreateVideoStreamPlayer()
, qui crée une classe anonyme implémentantVideoStreamPlayer
.Implémentez les écouteurs requis et ajoutez la gestion des erreurs.
Notez l'implémentation de
AdErrorListener
, car elle appelle une URL de secours si les annonces ne sont pas diffusées. Étant donné que le contenu et les annonces se trouvent dans un même flux, vous devez être prêt à appeler un flux de secours si le flux d'insertion dynamique d'annonce rencontre une erreur.Ajoutez du code pour la journalisation.
Modifiez
MyActivity
dansvideoplayerapp
pour instancier et appelerSampleAdsWrapper
. Appelez égalementImaSdkFactory.initialize()
ici en utilisant une méthode d'assistance pour créer une instanceImaSdkSettings
.Ajoutez la méthode d'assistance
getImaSdkSettings()
pour créer une instanceImaSdkSettings
.Modifiez le fichier de mise en page de l'activité
activity_my.xml
pour ajouter des éléments d'interface utilisateur pour la journalisation.
Félicitations ! Vous demandez et affichez désormais des annonces vidéo dans votre application Android. Pour affiner votre implémentation, consultez les sections Signets, Retour arrière et la documentation de l'API.
Dépannage
Si vous rencontrez des problèmes de lecture d'une annonce vidéo, essayez de télécharger l'exemple BasicExample terminé. Si cela fonctionne correctement dans BasicExample, il y a probablement un problème avec le code d'intégration IMA de votre application.
Si vous rencontrez toujours des problèmes, consultez le forum IMA SDK.