In dieser Anleitung wird beschrieben, wie Sie Anzeigen mit Prämie in eine Android-App einbinden.
Hinweis
Bevor Sie fortfahren, führen Sie die folgenden Schritte aus:
- Richten Sie GMA Next-Gen SDK ein.
- Verwenden Sie die Test-Anzeigenblock-ID für Anzeigen mit Prämie
ca-app-pub-3940256099942544/5224354917.- Verwenden Sie beim Erstellen und Testen Ihrer App Testanzeigen anstelle von Live-Anzeigen. Wenn Sie die Test-Anzeigenblock-ID nicht verwenden, kann Google Ihr Konto sperren.
- Ersetzen Sie diese ID vor der Veröffentlichung Ihrer App durch Ihre Anzeigenblock-ID.
- Weitere Informationen zu GMA Next-Gen SDK Testanzeigen finden Sie unter Testanzeigen aktivieren.
Vorabladen von Anzeigen (Beta)
Mit der Funktion zum Vorabladen von Anzeigen (Beta) in GMA Next-Gen SDK werden Anzeigen automatisch geladen und im Cache gespeichert.
Das Vorabladen von Anzeigen bietet folgende Vorteile:
- Referenzverwaltung: Referenzen werden beibehalten, bis Anzeigen ausgeliefert werden.
- Automatisches Neuladen: Eine neue Anzeige wird geladen, wenn eine aus dem Cache abgerufen wird.
- Verwaltung von Wiederholungsversuchen: Eine neue Anzeige wird geladen, wenn das Laden einer Anzeige fehlschlägt.
- Ablaufbehandlung: Anzeigen werden aktualisiert, bevor sie ablaufen.
- Cache-Optimierung: Die Cache-Reihenfolge wird optimiert, um die Anzeige mit der höchsten Priorität auszuliefern.
Vorabladen von Anzeigen starten
Rufen Sie die Methode startPreload() einmal beim Start der App auf, um mit dem Vorabladen von Anzeigen zu beginnen. Nachdem Sie die startPreload() Methode aufgerufen haben,
GMA Next-Gen SDK lädt automatisch Anzeigen vorab und wiederholt fehlgeschlagene Anfragen für
vorabgeladene Konfigurationen.
Das folgende Beispiel zeigt, wie Sie das Vorabladen von Anzeigen starten:
Kotlin
Java
Ersetzen Sie AD_UNIT_ID durch Ihre Anzeigenblock-ID.
Im vorherigen Beispiel wird gezeigt, wie Sie die Anzeigenblock-ID als Vorabladungs-ID verwenden. Eine Vorabladungs-ID ist ein String-Bezeichner, den Sie erstellen, um eine Konfiguration für das Vorabladen von Anzeigen zu identifizieren. Wenn Ihre App mehrere Targeting-Konfigurationen für dieselbe Anzeigenblock-ID erfordert, übergeben Sie einen benutzerdefinierten String-Bezeichner.
Vorabgeladene Anzeige abrufen und ausliefern
Wenn Sie eine Anzeige ausliefern möchten, rufen Sie die Methode pollAd() auf.
GMA Next-Gen SDK ruft eine verfügbare Anzeige ab und lädt automatisch die nächste Anzeige
im Hintergrund vorab. Wenn keine Anzeige verfügbar ist, gibt GMA Next-Gen SDK keine Anzeigen zurück.
Wenn Sie ein verfügbares Anzeigenobjekt haben, rufen Sie die Methode show auf, um die Anzeige auszuliefern.
Verwenden Sie einen Listener für Prämien, um Prämienereignisse zu verarbeiten. Das folgende Beispiel zeigt, wie Sie eine vorabgeladene Anzeige abrufen und ausliefern:
Kotlin
Java
Rufen Sie die Methode pollAd() erst auf, wenn Sie bereit sind, eine Anzeige auszuliefern. Informationen zum Lesen der Anzeigenantwort, ohne sie anzuzeigen, finden Sie unter
Antwortinformationen lesen.
Anzeigenereignisse beobachten
Beobachten Sie Anzeigenereignisse, bevor Sie die Anzeige ausliefern. Das folgende Beispiel zeigt, wie Sie Callbacks für Anzeigenereignisse registrieren:
Kotlin
private fun listenToAdEvents() { // Listen for ad events. val ad = rewardedAd if (ad == null) { Log.e(TAG, "Rewarded ad is not ready yet.") return } ad.adEventCallback = object : RewardedAdEventCallback { override fun onAdShowedFullScreenContent() { // Rewarded ad did show. } override fun onAdDismissedFullScreenContent() { // Rewarded ad did dismiss. rewardedAd = null } override fun onAdFailedToShowFullScreenContent( fullScreenContentError: FullScreenContentError ) { // Rewarded ad failed to show. Log.e(TAG, "Rewarded ad failed to show: ${fullScreenContentError.message}") } override fun onAdImpression() { // Rewarded ad did record an impression. } override fun onAdClicked() { // Rewarded ad did record a click. } } }
Java
private void listenToAdEvents() { // Listen for ad events. if (rewardedAd == null) { Log.e(TAG, "Rewarded ad is not ready yet."); return; } rewardedAd.setAdEventCallback( new RewardedAdEventCallback() { @Override public void onAdShowedFullScreenContent() { // Rewarded ad did show. } @Override public void onAdDismissedFullScreenContent() { // Rewarded ad did dismiss. rewardedAd = null; } @Override public void onAdFailedToShowFullScreenContent( FullScreenContentError fullScreenContentError) { // Rewarded ad failed to show. Log.e(TAG, "Rewarded ad failed to show: " + fullScreenContentError.getMessage()); } @Override public void onAdImpression() { // Rewarded ad did record an impression. } @Override public void onAdClicked() { // Rewarded ad did record a click. } }); }
Optional: Serverseitige Validierungs-Callbacks (SSV) validieren
Wenn Ihre App zusätzliche Daten in serverseitigen
Validierungs
Callbacks erfordert, verwenden Sie die Funktion für benutzerdefinierte Daten von Anzeigen mit Prämie. Jeder Stringwert, der für ein Anzeigenobjekt mit Prämie festgelegt wurde, wird an den Abfrageparameter custom_data des SSV-Callbacks übergeben. Wenn kein benutzerdefinierter Datenwert festgelegt ist, ist der custom_data Parameterwert des Abfrageparameters im SSV-Callback nicht vorhanden.
Das folgende Codebeispiel zeigt, wie Sie benutzerdefinierte Daten für ein Anzeigenobjekt mit Prämie festlegen, bevor Sie die Anzeige ausliefern:
Kotlin
Java
Ersetzen Sie SAMPLE_CUSTOM_DATA_STRING durch Ihre benutzerdefinierten Daten.
Optional: Ereignisse für das Vorabladen beobachten
Wenn Sie mit dem Vorabladen von Anzeigen beginnen, registrieren Sie sich für Ereignisse für das Vorabladen, um benachrichtigt zu werden, wenn Anzeigen erfolgreich vorabgeladen wurden, das Vorabladen fehlschlägt oder der Cache für Anzeigen erschöpft ist.
Das folgende Beispiel zeigt, wie Sie sich für Ereignisse für das Vorabladen von Anzeigen registrieren:
Kotlin
val preloadCallback = object : PreloadCallback { override fun onAdFailedToPreload(preloadId: String, adError: LoadAdError) { Log.d(TAG, "Rewarded preload ad $preloadId failed to load with error: ${adError.message}") } override fun onAdsExhausted(preloadId: String) { Log.i(TAG, "Rewarded preload ad $preloadId is not available") } override fun onAdPreloaded(preloadId: String, responseInfo: ResponseInfo) { Log.i(TAG, "Rewarded preload ad $preloadId is available") } } val adRequest = AdRequest.Builder(adUnitId).build() val preloadConfig = PreloadConfiguration(adRequest) RewardedAdPreloader.start(adUnitId, preloadConfig, preloadCallback)
Java
PreloadCallback preloadCallback = new PreloadCallback() { @Override public void onAdFailedToPreload(String preloadId, LoadAdError adError) { Log.d( TAG, String.format( "Rewarded preload ad %s failed to load with error: %s", preloadId, adError.getMessage())); } @Override public void onAdsExhausted(String preloadId) { Log.i(TAG, "Rewarded preload ad " + preloadId + " is not available"); } @Override public void onAdPreloaded(String preloadId, ResponseInfo responseInfo) { Log.i(TAG, "Rewarded preload ad " + preloadId + " is available"); } }; AdRequest adRequest = new AdRequest.Builder(adUnitId).build(); PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest); RewardedAdPreloader.start(adUnitId, preloadConfig, preloadCallback);
Wenn das Laden einer Anzeige fehlschlägt, lädt GMA Next-Gen SDK automatisch Anzeigen vorab und wiederholt fehlgeschlagene Anfragen für vorabgeladene Konfigurationen.
Optional: Anzeigenverfügbarkeit prüfen
Wenn Sie wissen müssen, ob eine Anzeige verfügbar ist, prüfen Sie die Anzeigenverfügbarkeit. Das folgende Beispiel zeigt, wie Sie prüfen, ob eine vorabgeladene Anzeige verfügbar ist:
Kotlin
private fun isAdAvailable(adUnitId: String): Boolean { return RewardedAdPreloader.isAdAvailable(adUnitId) }
Java
private boolean isAdAvailable(String adUnitId) { return RewardedAdPreloader.isAdAvailable(adUnitId); }
Optional: Puffergröße festlegen
Die Puffergröße steuert die Anzahl der vorabgeladenen Anzeigen, die im Arbeitsspeicher gespeichert werden. Standardmäßig optimiert Google die Puffergröße, um den Arbeitsspeicherverbrauch und die Latenz beim Ausliefern von Anzeigen auszugleichen. Sie können eine benutzerdefinierte Puffergröße festlegen, um die Anzahl der im Arbeitsspeicher gespeicherten Anzeigen zu erhöhen.
Das folgende Beispiel zeigt, wie Sie eine Puffergröße von zwei vorabgeladenen Anzeigen festlegen:
Kotlin
val adRequest = AdRequest.Builder(adUnitId).build() // Define a PreloadConfiguration and set the buffer size to 2 preloaded ads. val preloadConfig = PreloadConfiguration(adRequest, bufferSize = 2) RewardedAdPreloader.start(adUnitId, preloadConfig)
Java
AdRequest adRequest = new AdRequest.Builder(adUnitId).build(); // Define a PreloadConfiguration and set the buffer size to 2 preloaded ads. PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest, 2); RewardedAdPreloader.start(adUnitId, preloadConfig);
Limits für den Vorabladungs-Cache
GMA Next-Gen SDK erzwingt ein app-weites Limit für die Gesamtzahl der vorabgeladenen Anzeigen für alle Anzeigenblöcke und Vorabladungs-IDs:
- Standardlimit: Google speichert maximal sechs vorabgeladene Anzeigen im Arbeitsspeicher. Dieses Limit gilt für alle Formate und Vorabladungs-IDs.
- Wir empfehlen, für jede Vorabladungs-ID eine Puffergröße von zwei beizubehalten.
Optional: Vorabladen von Anzeigen beenden
Wenn Sie in der Sitzung keine Anzeigen mehr für eine bestimmte Vorabladungs-ID ausliefern müssen, können Sie das Vorabladen von Anzeigen beenden. Rufen Sie die Methode destroy() mit einer Vorabladungs-ID auf, um das Laden von Anzeigen für eine bestimmte Vorabladungs-ID zu beenden. Wenn Sie die Methode destroy() aufrufen, werden alle vorabgeladenen Anzeigen, die mit der Vorabladungs-ID verknüpft sind, aus dem Cache entfernt.
Das folgende Beispiel zeigt, wie Sie das Vorabladen von Anzeigen beenden:
Kotlin
private fun stopPreloading(adUnitId: String) { // Stops the preloading and destroy preloaded ads. RewardedAdPreloader.destroy(adUnitId) }
Java
private void stopPreloading(String adUnitId) { // Stops the preloading and destroy preloaded ads. RewardedAdPreloader.destroy(adUnitId); }
Optional: Antwortinformationen lesen
Lesen Sie die Antwortinformationen der nächsten vorabgeladenen Anzeige, ohne die Anzeige aus dem Cache zu entfernen.
Das folgende Beispiel zeigt, wie Sie die Informationen zur nächsten vorabgeladenen Anzeigenantwort lesen:
Kotlin
val responseInfo = RewardedAdPreloader.peekAdResponseInfo(preloadId) if (responseInfo == null) { Log.e(TAG, "Failed to peek ad response info.") return } Log.d(TAG, "Peeked ad response ID: ${responseInfo.responseId}")
Java
ResponseInfo responseInfo = RewardedAdPreloader.peekAdResponseInfo(preloadId); if (responseInfo == null) { Log.e(TAG, "Failed to peek ad response info."); return; } Log.d(TAG, "Peeked ad response ID: " + responseInfo.getResponseId());