In diesem Leitfaden wird gezeigt, wie Sie das IMA DAI SDK in eine einfache Videoplayer-App einbinden. Wenn Sie sich eine fertige Beispielintegration ansehen oder nachvollziehen möchten, laden Sie das BasicExample von GitHub herunter.
IMA DAI – Übersicht
Die Implementierung von IMA DAI umfasst vier Hauptkomponenten des SDK, die in diesem Leitfaden beschrieben werden:
StreamDisplayContainer: Ein Containerobjekt, das sich über dem Videowiedergabeelement befindet und die UI-Elemente der Anzeige enthält.AdsLoader: Ein Objekt, das Streams anfordert und Ereignisse verarbeitet, die durch Antwortobjekte auf Streamanfragen ausgelöst werden. Sie sollten nur einen Anzeigen-Loader instanziieren, der während der gesamten Lebensdauer der Anwendung wiederverwendet werden kann.StreamRequest: Ein Objekt, das eine Streamanfrage definiert. Streamanfragen können entweder für Video-on-Demand- oder Livestreams gestellt werden. Bei Livestream-Anfragen wird ein Asset-Schlüssel angegeben, bei VOD-Anfragen eine CMS-ID und eine Video-ID. Beide Anfragetypen können optional einen API-Schlüssel enthalten, der für den Zugriff auf bestimmte Streams erforderlich ist, sowie einen Google Ad Manager-Netzwerkcode, damit das IMA SDK Anzeigenkennungen gemäß den Google Ad Manager-Einstellungen verarbeiten kann.StreamManager: Ein Objekt, das Streams für die dynamische Anzeigenbereitstellung und Interaktionen mit dem Backend für die dynamische Anzeigenbereitstellung verarbeitet. Der Stream-Manager verarbeitet auch Tracking-Pings und leitet Stream- und Anzeigenereignisse an den Publisher weiter.
Vorbereitung
- Android Studio
- Beispiel-Videoplayer-App für die SDK-Integration
Beispiel-Videoplayer-App herunterladen und ausführen
Die Beispiel-App enthält einen funktionierenden Videoplayer, der HLS-Videos wiedergibt. Verwenden Sie dies als Ausgangspunkt für die Integration der DAI-Funktionen des IMA DAI SDK.
Laden Sie die Beispiel-Videoplayer-App herunter und extrahieren Sie sie.
Starten Sie Android Studio und wählen Sie Open an existing Android Studio project aus. Wenn Android Studio bereits ausgeführt wird, wählen Sie File > New > Import Project aus. Wählen Sie dann
SampleVideoPlayer/build.gradleaus.Führen Sie eine Gradle-Synchronisierung aus, indem Sie Tools > Android > Sync Project with Gradle Files auswählen.
Prüfen Sie, ob die Player-App auf einem physischen Android-Gerät oder einem virtuellen Android-Gerät kompiliert und ausgeführt wird. Verwenden Sie dazu Ausführen > „App“ ausführen. Es ist normal, dass es einen Moment dauert, bis der Videostream geladen ist und abgespielt wird.
Beispiel-Videoplayer ansehen
Der Beispiel-Videoplayer enthält noch keinen Integrationscode für das IMA SDK für die dynamische Anzeigenbereitstellung. Die Beispiel-App besteht aus zwei Hauptteilen:
samplevideoplayer/SampleVideoPlayer.java: Ein ExoPlayer-basierter HLS-Player, der als Grundlage für die IMA-DAI-Integration dient.videoplayerapp/MyActivity.java: Diese Aktivität erstellt den Videoplayer und übergibt ihm eineContextund einemedia3.ui.PlayerView.
IMA DAI SDK zur Player-App hinzufügen
Außerdem müssen Sie einen Verweis auf das IMA DAI SDK einfügen. Fügen Sie in Android Studio der Datei build.gradle auf Anwendungsebene (unter app/build.gradle) Folgendes hinzu: Für das IMA SDK muss die Entzuckerung der Bibliothek aktiviert sein. Dazu müssen Sie coreLibraryDesugaringEnabled true festlegen und 'com.android.tools:desugar_jdk_libs' als Abhängigkeit in der Datei build.gradle hinzufügen. Weitere Informationen finden Sie unter Java 11+-APIs, die durch Entzuckerung mit der nio-Spezifikation verfügbar sind.
IMA DAI SDK einbinden
Erstellen Sie im Paket
videoplayerapp(inapp/java/com.google.ads.interactivemedia.v3.samples/videoplayerapp/) eine neue Klasse mit dem NamenSampleAdsWrapper, um die vorhandeneSampleVideoPlayerzu umschließen und Logik zur Implementierung von IMA DAI hinzuzufügen. Dazu müssen Sie zuerst einAdsLoader-Objekt erstellen, mit dem der DAI-Stream angefordert wird.Dieses Snippet enthält Beispielparameter für HLS- und DASH- sowie Live- und VOD-Streams. Aktualisieren Sie die Variable
CONTENT_TYPE, um festzulegen, welcher Stream abgespielt wird.Erstellen Sie eine
createSampleVideoPlayerCallback()-Hilfsmethode, um eineSampleVideoPlayerCallback-Schnittstelleninstanz zu erstellen, dieVideoStreamPlayer.VideoStreamPlayerCallbackerweitert.Damit die dynamische Anzeigenbereitstellung funktioniert, muss der Player ID3-Ereignisse an das IMA DAI SDK übergeben. Im folgenden Beispielcode wird dies mit der Methode
callback.onUserTextReceived()erreicht.Fügen Sie eine
buildStreamRequest()-Methode hinzu, um dieSteamRequestzu erstellen. Bei dieser Methode wird je nach Einstellung der VariableCONTENT_TYPEzwischen verschiedenen Streams gewechselt. Der in diesem Leitfaden verwendete Standardstream ist der VOD-HLS-Beispielstream von IMA.Außerdem benötigen Sie einen
VideoStreamPlayer, um den Stream abzuspielen. Fügen Sie daher einecreateVideoStreamPlayer()-Methode hinzu, die eine anonyme Klasse erstellt, dieVideoStreamPlayerimplementiert.Implementieren Sie die erforderlichen Listener und fügen Sie Unterstützung für die Fehlerbehandlung hinzu.
Beachten Sie die
AdErrorListener-Implementierung, da eine Fallback-URL aufgerufen wird, wenn die Anzeigen nicht wiedergegeben werden können. Da sich Content und Anzeigen in einem Stream befinden, müssen Sie darauf vorbereitet sein, einen Fallback-Stream aufzurufen, wenn im Stream für die dynamische Anzeigenbereitstellung ein Fehler auftritt.Fügen Sie Code für das Logging hinzu.
Ändern Sie
MyActivityinvideoplayerapp, umSampleAdsWrapperzu instanziieren und aufzurufen. Rufen Sie hier auchImaSdkFactory.initialize()auf und verwenden Sie eine Hilfsmethode, um eineImaSdkSettings-Instanz zu erstellen.Fügen Sie die Hilfsmethode
getImaSdkSettings()hinzu, um eineImaSdkSettings-Instanz zu erstellen.Ändern Sie die Layoutdatei
activity_my.xmlder Aktivität, um UI-Elemente für das Logging hinzuzufügen.
Glückwunsch! Sie können jetzt Videoanzeigen in Ihrer Android-App anfordern und anzeigen lassen. Wenn Sie die Implementierung optimieren möchten, finden Sie weitere Informationen unter Lesezeichen, Snapback und in der API-Dokumentation.
Fehlerbehebung
Wenn bei der Wiedergabe einer Videoanzeige Probleme auftreten, lade das vollständige BasicExample herunter. Wenn es im BasicExample richtig funktioniert, liegt wahrscheinlich ein Problem mit dem IMA-Integrationscode Ihrer App vor.
Sollten weiterhin Probleme auftreten, besuchen Sie das IMA SDK-Forum.