App-Start-Anzeigen sind ein Anzeigenformat für Publisher, die die Ladebildschirme ihrer App monetarisieren möchten. Nutzer können App-Start-Anzeigen jederzeit schließen. Wenn Nutzer Ihre App in den Vordergrund bringen, werden App-Start-Anzeigen eingeblendet.
Weitere Informationen finden Sie im Leitfaden für App-Start-Anzeigen.In diesem Leitfaden 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 ID des Test-Anzeigenblocks 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 Testanzeigenblock-ID nicht verwenden, kann Google Ihr Konto sperren.
- Ersetzen Sie diese ID durch Ihre Anzeigenblock-ID, bevor Sie Ihre App veröffentlichen.
- Weitere Informationen zu GMA Next-Gen SDK-Testanzeigen finden Sie unter Testanzeigen aktivieren.
Vorabladen von Anzeigen (Beta)
Das Vorabladen von Anzeigen in GMA Next-Gen SDK automatisiert das Laden und Caching von Anzeigen.
Das Vorabladen von Anzeigen bietet folgende Vorteile:
- Referenzverwaltung: Referenzen werden beibehalten, bis Anzeigen ausgeliefert werden.
- Automatisches Aktualisieren: Es wird eine neue Anzeige geladen, wenn eine Anzeige aus dem Cache abgerufen wird.
- Verwaltete Wiederholungsversuche: Es wird eine neue Anzeige geladen, wenn das Laden einer Anzeige fehlschlägt.
- Ablaufbehandlung: Anzeigen werden vor dem Ablauf aktualisiert.
- Cache-Optimierung: Die Cache-Reihenfolge wird optimiert, um die Anzeige mit der höchsten Priorität auszuliefern.
Vorabladen von Anzeigen starten
Wenn Sie mit dem Vorabladen von Anzeigen beginnen möchten, rufen Sie die Methode start einmal auf, wenn Sie GMA Next-Gen SDK initialisieren. Nachdem Sie die Methode start aufgerufen haben, werden Anzeigen automatisch von GMA Next-Gen SDK vorab geladen und fehlgeschlagene Anfragen für vorab geladene Konfigurationen werden wiederholt.
Das folgende Beispiel zeigt, wie Sie das Vorabladen von Anzeigen starten:
Kotlin
Java
Ersetzen Sie AD_UNIT_ID durch die ID Ihres Anzeigenblocks.
Im vorherigen Beispiel wird die Anzeigenblock-ID als Vorablade-ID verwendet. Eine Vorablade-ID ist eine String-ID, die Sie erstellen, um eine Konfiguration für das Vorabladen von Anzeigen zu identifizieren. Wenn für Ihre App mehrere Targeting-Konfigurationen für dieselbe Anzeigenblock-ID erforderlich sind, übergeben Sie eine benutzerdefinierte String-ID.
Beim Vorabladen von Anzeigen können Targeting-Parameter oder Anzeigenanfragen nicht geändert werden. Wenn Sie die Targeting-Parameter zwischen Anfragen ändern müssen, verwenden Sie die einzelne Ladung.
Vorab geladene Anzeige abrufen und ausliefern
Rufen Sie vor dem Einblenden der Anzeige die Methode pollAd auf.
Speichern Sie das vorab geladene Anzeigenobjekt nicht. Wenn Sie die Methode pollAd aufrufen, ruft GMA Next-Gen SDK eine verfügbare Anzeige ab und lädt die nächste Anzeige automatisch im Hintergrund vor. Wenn keine Anzeige verfügbar ist, gibt GMA Next-Gen SDK keine Anzeigen zurück.
show auf, um die Anzeige zu präsentieren.
Im folgenden Beispiel wird gezeigt, wie eine vorab geladene Anzeige abgerufen und eingeblendet wird:
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 Preload-Callbacks oder nach dem Prüfen der Methode isAdAvailable auf, um eine Anzeige zu halten. Wenn Sie die Anzeigenmetadaten prüfen müssen, bevor die Anzeige ausgeliefert wird, lesen Sie die Antwortinformationen, ohne die Anzeige aus dem Cache zu entfernen.
Auf Anzeigenereignisse warten
Bevor die Anzeige ausgeliefert wird, müssen Sie auf Anzeigenereignisse warten. 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: Auf Vorablade-Ereignisse warten
Wenn Sie mit dem Vorabladen von Anzeigen beginnen, registrieren Sie sich für Vorablade-Ereignisse, um benachrichtigt zu werden, wenn Anzeigen erfolgreich vorab geladen wurden, das Vorabladen fehlgeschlagen ist oder der Anzeigencache erschöpft ist.
Im folgenden Beispiel wird gezeigt, wie Sie sich für das Vorabladen von Anzeigenereignissen 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 eine Anzeige nicht geladen werden kann, lädt GMA Next-Gen SDK automatisch Anzeigen vorab und wiederholt fehlgeschlagene Anfragen für vorab geladene Konfigurationen. Rufen Sie keine manuellen Ladeanfragen in Fehler-Callbacks auf. Rufen Sie in Callback-Methoden für Vorablade-Ereignisse nicht die Methoden pollAd, destroy oder start auf. Wenn Sie diese Methoden in Callbacks aufrufen, kann das zu rekursiven Ladeschleifen führen.
Optional: Verfügbarkeit von Anzeigen prüfen
Wenn Sie wissen möchten, ob eine Anzeige verfügbar ist, prüfen Sie die Anzeigenverfügbarkeit. 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 gehalten werden. Standardmäßig optimiert Google die Puffergröße, um den Arbeitsspeicherverbrauch und die Latenz bei der Anzeigenbereitstellung auszugleichen. 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 vorab geladenen Anzeigen. Wenn der Großteil Ihres Traffics von Geräten mit wenig Arbeitsspeicher stammt, sollten Sie die Puffergröße reduzieren.
Im folgenden Beispiel wird gezeigt, wie eine Puffergröße festgelegt wird:
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 Vorab-Cache
GMA Next-Gen SDK erzwingt ein appweites Limit für die Gesamtzahl der vorab geladenen Anzeigen für alle Anzeigenblöcke und Vorablade-IDs:
- Standardlimit: Google speichert maximal sechs vorab geladene Anzeigen im Arbeitsspeicher. Dieses Limit gilt für alle Formate und Vorablade-IDs.
- Wir empfehlen, für jede Vorablade-ID eine Puffergröße von zwei beizubehalten.
Optional: Vorabladen von Anzeigen beenden
Lassen Sie das Vorabladen aktiviert, während in Ihrer App Anzeigen ausgeliefert werden. Verwenden Sie während dieser Zeit nicht die Methode destroy. Wenn Sie in der Sitzung keine Anzeigen für eine bestimmte Vorablade-ID mehr ausliefern müssen, können Sie das Vorabladen von Anzeigen beenden. Wenn Sie das Laden von Anzeigen für eine bestimmte Vorablade-ID beenden möchten, rufen Sie die Methode destroy mit einer Vorablade-ID auf. Wenn Sie die Methode destroy aufrufen, werden alle vorab geladenen Anzeigen, die mit der Vorab-Lade-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: Informationen zur Antwort lesen
Die Antwortinformationen der nächsten vorab geladenen Anzeige lesen, ohne die Anzeige aus dem Cache zu entfernen. Wenn Sie Anzeigenmetadaten prüfen müssen, bevor Sie eine Anzeige einblenden, lesen Sie die Antwortinformationen, anstatt die Methode pollAd aufzurufen.
Im folgenden Beispiel wird gezeigt, wie Sie die Informationen zur 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 verwalten
Ein Kaltstart tritt auf, wenn Ihre App von einem Laufwerk gestartet wird. Ein Warmstart tritt auf, wenn Sie die App aus dem Arbeitsspeicher öffnen. Bei einem Kaltstart ist keine vorab geladene Anzeige vorhanden, die sofort eingeblendet werden kann. Bei einem Warmstart ist möglicherweise noch eine vorab geladene Anzeige vorhanden, die präsentiert werden kann.
Bei einem Kaltstart interagieren Nutzer möglicherweise mit Ihrer App, bevor sie geladen wird und eine Anzeige zu sehen ist. Um die Nutzerfreundlichkeit nicht zu beeinträchtigen, sollten Sie App-Start-Anzeigen bei Kaltstarts nur auf einem Ladebildschirm einblenden, während die App-Assets geladen werden. Wenn das Laden der Assets abgeschlossen ist und der Nutzer den Hauptinhalt erreicht, bevor die Anzeige geladen wird, sollte die Anzeige nicht mehr präsentiert werden.
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 während der Anzeige der Werbung vollständig geladen wurde, schließen Sie ihn in der Callback-Methode zum Schließen der Anzeige.
- App-Start-Anzeigen laufen vier Stunden nach dem Laden ab. App-Start-Anzeigen, die vor mehr als vier Stunden geladen wurden, dürfen nicht ausgeliefert werden.