App-Start-Anzeigen sind ein Anzeigenformat für Publisher, die ihre Ladebildschirme monetarisieren möchten. Nutzer können App-Start-Anzeigen jederzeit schließen. Wenn Nutzer Ihre App in den Vordergrund holen, werden App-Start-Anzeigen eingeblendet.
Weitere Informationen finden Sie in den Richtlinien für App-Start-Anzeigen.In dieser Anleitung wird beschrieben, wie Sie App-Start-Anzeigen 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 App-Start-Anzeigen
/21775744923/example/app-open.- 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)
Beim Vorabladen von Anzeigen 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 eingeblendet werden.
- Automatisches Neuladen: Eine neue Anzeige wird geladen, wenn eine aus dem Cache abgerufen wird.
- Verwaltung von Wiederholungen: Eine neue Anzeige wird geladen, wenn das Laden einer Anzeige fehlschlägt.
- Ablaufbehandlung: Anzeigen werden aktualisiert, bevor sie ablaufen.
- Cache-Optimierung: Die Reihenfolge im Cache wird optimiert, um die Anzeige mit der höchsten Priorität auszuliefern.
Vorabladen von Anzeigen starten
Rufen Sie zum Starten des Vorabladens von Anzeigen die start Methode einmal auf
wenn Sie GMA Next-Gen SDK initialisieren. Nachdem Sie die
start Methode aufgerufen haben, GMA Next-Gen SDKwerden Anzeigen automatisch vorabgeladen
und fehlgeschlagene Anfragen für vorabgeladene Konfigurationen werden wiederholt.
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 die Anzeigenblock-ID als Vorabladungs-ID verwendet. Eine Vorabladungs-ID ist eine String-Kennung, die 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 eine benutzerdefinierte String-Kennung.
Das Vorabladen von Anzeigen unterstützt keine Änderungen an Targeting-Parametern oder Anzeigenanfragen. Wenn Sie Targeting-Parameter zwischen Anfragen ändern müssen, verwenden Sie das einzelne Laden.
Vorabgeladene Anzeige abrufen und einblenden
Rufen Sie vor dem Einblenden der Anzeige die Methode pollAd auf.
Speichern Sie das vorabgeladene Anzeigenobjekt nicht. Wenn Sie die
pollAd Methode aufrufen, GMA Next-Gen SDK ruft eine verfügbare Anzeige ab
und lädt die nächste Anzeige automatisch im Hintergrund vorab. Wenn keine Anzeige
verfügbar ist, gibt GMA Next-Gen SDK keine Anzeigen zurück.
show auf, um die Anzeige einzublenden.
Das folgende Beispiel zeigt, wie Sie eine vorabgeladene Anzeige abrufen und einblenden:
Kotlin
Java
Wenn Ihre App ein Anzeigen-Placement erreicht und die Methode show aufrufen kann, rufen Sie die Methode pollAd auf. Rufen Sie die Methode pollAd nicht in Rückrufen für das Vorabladen oder nach dem Prüfen der Methode isAdAvailable auf, um eine Anzeige zu reservieren. Wenn Sie
die Metadaten der Anzeige prüfen müssen, bevor Sie sie einblenden,
lesen Sie die Antwortinformationen, ohne die Anzeige aus dem Cache zu entfernen.
Auf Anzeigenereignisse warten
Warten Sie vor dem Einblenden der Anzeige auf Anzeigenereignisse. Im folgenden Beispiel werden Rückrufe für Anzeigenereignisse registriert:
Kotlin
private fun listenToAdEvents() { // Listen for ad events. val ad = appOpenAd if (ad == null) { Log.e(TAG, "App open ad is not ready yet.") return } ad.adEventCallback = object : AppOpenAdEventCallback { override fun onAdShowedFullScreenContent() { // App open ad did show. } override fun onAdDismissedFullScreenContent() { // App open ad did dismiss. appOpenAd = null } override fun onAdFailedToShowFullScreenContent( fullScreenContentError: FullScreenContentError ) { // App open ad failed to show. Log.e(TAG, "App open ad failed to show: ${fullScreenContentError.message}") } override fun onAdImpression() { // App open ad did record an impression. } override fun onAdClicked() { // App open ad did record a click. } } }
Java
private void listenToAdEvents() { // Listen for ad events. if (appOpenAd == null) { Log.e(TAG, "App open ad is not ready yet."); return; } appOpenAd.setAdEventCallback( new AppOpenAdEventCallback() { @Override public void onAdShowedFullScreenContent() { // App open ad did show. } @Override public void onAdDismissedFullScreenContent() { // App open ad did dismiss. appOpenAd = null; } @Override public void onAdFailedToShowFullScreenContent( @NonNull FullScreenContentError fullScreenContentError) { // App open ad failed to show. Log.e(TAG, "App open ad failed to show: " + fullScreenContentError.getMessage()); } @Override public void onAdImpression() { // App open ad did record an impression. } @Override public void onAdClicked() { // App open ad did record a click. } }); }
Optional: Auf Ereignisse für das Vorabladen warten
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, "App open preload ad $preloadId failed to load with error: ${adError.message}") } override fun onAdsExhausted(preloadId: String) { Log.i(TAG, "App open preload ad $preloadId is not available") } override fun onAdPreloaded(preloadId: String, responseInfo: ResponseInfo) { Log.i(TAG, "App open preload ad $preloadId is available") } } val adRequest = AdRequest.Builder(adUnitId).build() val preloadConfig = PreloadConfiguration(adRequest) AppOpenAdPreloader.start(adUnitId, preloadConfig, preloadCallback)
Java
PreloadCallback preloadCallback = new PreloadCallback() { @Override public void onAdFailedToPreload(@NonNull String preloadId, @NonNull LoadAdError adError) { Log.d( TAG, String.format( "App open preload ad %s failed to load with error: %s", preloadId, adError.getMessage())); } @Override public void onAdsExhausted(@NonNull String preloadId) { Log.i(TAG, String.format("App open preload ad %s is not available", preloadId)); } @Override public void onAdPreloaded(@NonNull String preloadId, @NonNull ResponseInfo responseInfo) { Log.i(TAG, String.format("App open preload ad %s is available", preloadId)); } }; AdRequest adRequest = new AdRequest.Builder(adUnitId).build(); PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest); AppOpenAdPreloader.start(adUnitId, preloadConfig, preloadCallback);
Wenn das Laden einer Anzeige fehlschlägt, werden GMA Next-Gen SDK Anzeigen automatisch vorabgeladen und fehlgeschlagene Anfragen für vorabgeladene Konfigurationen werden wiederholt. Rufen Sie in Rückrufen für Fehler keine manuellen Ladeanfragen auf. Rufen Sie in Callback-Methoden für Vorablade-Ereignisse nicht die Methoden pollAd, destroy oder start auf. Wenn Sie diese Methoden in Rückrufen aufrufen, können rekursive Ladeschleifen ausgelöst werden.
Optional: Verfügbarkeit von Anzeigen prüfen
Wenn Sie wissen müssen, ob eine Anzeige verfügbar ist, prüfen Sie die Verfügbarkeit von Anzeigen. Im folgenden Beispiel wird geprüft, ob eine vorabgeladene Anzeige verfügbar ist:
Kotlin
private fun isAdAvailable(adUnitId: String): Boolean { return AppOpenAdPreloader.isAdAvailable(adUnitId) }
Java
private boolean isAdAvailable(String adUnitId) { return AppOpenAdPreloader.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 ein Gleichgewicht zwischen Arbeitsspeicherverbrauch und Latenz bei der Anzeigenauslieferung zu schaffen. Sie können eine benutzerdefinierte Puffergröße festlegen, um die Anzahl der im Arbeitsspeicher gespeicherten Anzeigen zu erhöhen oder zu verringern. Wir empfehlen eine Puffergröße von zwei vorabgeladenen Anzeigen. Wenn der Großteil Ihres Traffics von Geräten mit wenig Arbeitsspeicher stammt, reduzieren Sie die Puffergröße.
Das folgende Beispiel zeigt, wie Sie eine Puffergröße 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) AppOpenAdPreloader.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); AppOpenAdPreloader.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
Lassen Sie das Vorabladen aktiv, während Ihre App Anzeigen ausliefert. Rufen Sie in dieser Zeit nicht die Methode destroy auf. Wenn Sie in der Sitzung keine Anzeigen mehr für eine bestimmte Vorabladungs-ID einblenden 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. AppOpenAdPreloader.destroy(adUnitId) }
Java
private void stopPreloading(String adUnitId) { // Stops the preloading and destroy preloaded ads. AppOpenAdPreloader.destroy(adUnitId); }
Optional: Antwortinformationen lesen
Lesen Sie die Antwortinformationen der nächsten vorabgeladenen Anzeige, ohne die Anzeige aus dem Cache zu entfernen. Wenn Sie die Metadaten der Anzeige prüfen müssen, bevor Sie sie einblenden, lesen Sie die Antwortinformationen, anstatt die Methode pollAd aufzurufen.
Das folgende Beispiel zeigt, wie Sie die Antwortinformationen der nächsten vorabgeladenen Anzeige lesen:
Kotlin
val responseInfo = AppOpenAdPreloader.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 = AppOpenAdPreloader.peekAdResponseInfo(preloadId); if (responseInfo == null) { Log.e(TAG, "Failed to peek ad response info."); return; } Log.d(TAG, "Peeked ad response ID: " + responseInfo.getResponseId());
Kaltstarts und Ladebildschirme verarbeiten
Ein Kaltstart erfolgt, wenn Ihre App von der Festplatte gestartet wird. Ein Warmstart erfolgt, wenn Sie die App aus dem Arbeitsspeicher wieder öffnen. Bei einem Kaltstart haben Sie keine vorabgeladene Anzeige, die Sie sofort einblenden können. Bei einem Warmstart haben Sie möglicherweise noch eine vorabgeladene Anzeige, die Sie einblenden können.
Bei einem Kaltstart können Nutzer mit Ihrer App interagieren, bevor sie geladen und eine Anzeige eingeblendet wird. Um eine schlechte Nutzererfahrung zu vermeiden, blenden Sie App-Start-Anzeigen bei Kaltstarts nur auf einem Ladebildschirm ein, während die Assets der App geladen werden. Wenn das Laden der Assets abgeschlossen ist und der Nutzer den Hauptinhalt erreicht, bevor die Anzeige geladen wird, blenden Sie die Anzeige nicht ein.
Empfehlungen
Beachten Sie die folgenden Empfehlungen für App-Start-Anzeigen:
- Blenden Sie beim ersten Start der App keine App-Start-Anzeige ein.
- Wenn der Ladebildschirm geladen wird, während die Anzeige eingeblendet wird, schließen Sie den Ladebildschirm in der Rückrufmethode für das Schließen der Anzeige.
- App-Start-Anzeigen laufen vier Stunden nach dem Laden ab. Blenden Sie keine App-Start-Anzeige ein, die vor mehr als vier Stunden geladen wurde.