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
ca-app-pub-3940256099942544/9257395921.- 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.
Anzeigen vorab laden (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 eingeblendet werden.
- Automatisches Neuladen: Wenn eine Anzeige aus dem Cache abgerufen wird, wird eine neue Anzeige geladen.
- Verwaltung von Wiederholungsversuchen: Wenn das Laden einer Anzeige fehlschlägt, wird eine neue Anzeige geladen.
- 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 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
vorab geladene Konfigurationen.
Im folgenden Beispiel wird gezeigt, 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-Identifier, 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-Identifier.
Vorab geladene Anzeige abrufen und einblenden
Wenn Sie eine Anzeige einblenden 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.
show auf, um die Anzeige einzublenden.
Im folgenden Beispiel wird gezeigt, wie Sie eine vorab geladene Anzeige abrufen und einblenden:
Kotlin
Java
Rufen Sie die Methode pollAd() erst auf, wenn Sie bereit sind, eine Anzeige einzublenden. Informationen zum Lesen der Anzeigenantwortinformationen, ohne die Anzeige einzublenden, finden Sie unter Antwortinformationen lesen.
Anzeigenereignisse beobachten
Beobachten Sie Anzeigenereignisse, bevor Sie die Anzeige einblenden. Im folgenden Beispiel werden Callbacks 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: 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 vorab geladen wurden, das Vorabladen fehlschlägt oder der Cache für Anzeigen erschöpft ist.
Im folgenden Beispiel wird gezeigt, 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, lädt GMA Next-Gen SDK automatisch Anzeigen vorab und wiederholt fehlgeschlagene Anfragen für vorab geladene Konfigurationen.
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 vorab geladene 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 bestimmt die Anzahl der vorab geladenen 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. Wir empfehlen eine Puffergröße von zwei vorab geladenen Anzeigen.
Im folgenden Beispiel wird gezeigt, 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 vorab geladenen Anzeigen für alle Anzeigenblöcke und Vorabladungs-IDs:
- Standardlimit: Google speichert maximal sechs vorab geladene 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 für eine bestimmte Vorabladungs-ID mehr 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 vorab geladenen Anzeigen, die mit der Vorabladungs-ID verknüpft sind, aus dem Cache entfernt.
Im folgenden Beispiel wird gezeigt, 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 vorab geladenen Anzeige, ohne die Anzeige aus dem Cache zu entfernen.
Im folgenden Beispiel wird gezeigt, wie Sie die Informationen der nächsten vorab geladenen Anzeigenantwort 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 vorab geladene Anzeige, die sofort eingeblendet werden kann. Bei einem Warmstart haben Sie möglicherweise noch eine vorab geladene Anzeige, die eingeblendet werden kann.
Bei einem Kaltstart können Nutzer mit Ihrer App interagieren, bevor sie geladen und eine Anzeige eingeblendet wird. Um eine schlechte Nutzererfahrung zu vermeiden, sollten Sie App-Start-Anzeigen bei Kaltstarts nur auf einem Ladebildschirm einblenden, 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 Callback-Methode 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.