Vorabladen von Anzeigen (Alpha)

Die Funktion zum Vorabladen von Anzeigen ist eine von Google verwaltete Funktion in Google Mobile Ads SDK, die das Laden und Caching von Anzeigen für Sie verwaltet. Für das Vorabladen von Anzeigen muss die Art und Weise geändert werden, wie Sie das Laden von Anzeigen verwalten. Wenn Sie die Leistung durch das Vorabladen von Anzeigen optimieren möchten, deaktivieren Sie das benutzerdefinierte Caching und übertragen Sie diese Aufgabe an Google Mobile Ads SDK.

Das Vorabladen von Anzeigen bietet gegenüber dem manuellen Laden von Anzeigen folgende Vorteile:

  • Referenzverwaltung:Geladene Anzeigen werden gespeichert, sodass Sie Referenzen erst dann verwalten müssen, wenn Sie die Anzeigen präsentieren möchten.
  • Automatisches Neuladen:Wenn Sie eine Anzeige aus dem Cache abrufen, wird automatisch eine neue Anzeige geladen.
  • Verwaltete Wiederholungen:Fehlgeschlagene Anfragen werden automatisch mit exponentiellem Backoff wiederholt.
  • Ablaufverwaltung:Anzeigen werden automatisch aktualisiert, bevor sie ablaufen (in der Regel nach einer Stunde).
  • Cache-Optimierung: Wenn Sie eine Cache-Größe von mehr als 1 verwenden, Google Mobile Ads SDK optimiert die Cache-Reihenfolge, um die beste Anzeige auszuliefern.

In dieser Anleitung wird beschrieben, wie Sie Anzeigen zum Vorabladen konfigurieren, die Verfügbarkeit von Anzeigen zum Vorabladen prüfen und die vorab geladene Anzeige präsentieren.

Vorbereitung

Bevor Sie mit der Anleitung fortfahren, müssen Sie Folgendes tun:

  • Installieren Sie Google Mobile Ads SDK Version 24.4.0 oder höher. Entwicklerressourcen für frühere Versionen sind unter 23.6.1–24.3.0 verfügbar, wir empfehlen jedoch, Version 24.4.0 oder höher zu verwenden und dieser Anleitung zu folgen.
  • Einrichten Google Mobile Ads SDK.
  • Optional: Beispiel-App in Java oder Kotlin herunterladen und ausführen

Vorabladen von Anzeigen starten

Rufen Sie start() auf, um mit dem Vorabladen von Anzeigen zu beginnen. Rufen Sie diese Methode nur einmal zu Beginn der App auf. Nachdem Sie start() aufgerufen haben, lädt Google Mobile Ads SDK automatisch Anzeigen vorab und wiederholt fehlgeschlagene Anfragen für vorab geladene Konfigurationen.

Im folgenden Beispiel wird das Vorabladen von Anzeigen gestartet:

Kotlin

// Define a PreloadConfiguration.
val configuration = PreloadConfiguration.Builder("AD_UNIT_ID").build()
// Start the preloading with a given preload ID, preload configuration.
InterstitialAdPreloader.start("AD_UNIT_ID", configuration)

Java

// Define a PreloadConfiguration.
PreloadConfiguration configuration = new PreloadConfiguration.Builder("AD_UNIT_ID").build();
// Start the preloading with a given preload ID, preload configuration.
InterstitialAdPreloader.start("AD_UNIT_ID", configuration);

Ersetzen Sie AD_UNIT_ID durch Ihre Anzeigenblock-ID.

Vorab geladene Anzeigen abrufen und präsentieren

Wenn Sie das Vorabladen von Anzeigen verwenden, werden die im Cache gespeicherten Anzeigen von Google Mobile Ads SDK verwaltet. Wenn Sie eine Anzeige präsentieren möchten, rufen Sie pollAd() auf. Google Mobile Ads SDK ruft die verfügbare Anzeige ab und lädt automatisch die nächste Anzeige im Hintergrund vorab.

Rufen Sie diese Methode erst auf, wenn Sie bereit sind, eine Anzeige zu präsentieren. Wenn Anzeigen im Cache gespeichert werden, kann Google Mobile Ads SDK abgelaufene Anzeigen automatisch aktualisieren und die Cache-Optimierung durchführen.

Im folgenden Beispiel wird eine vorab geladene Anzeige abgerufen und präsentiert:

Kotlin

// pollAd() returns the next available ad and loads another ad in the background.
val ad = InterstitialAdPreloader.pollAd("AD_UNIT_ID")

// [Optional] Interact with the ad as needed.
ad?.onPaidEventListener = OnPaidEventListener {
  // [Optional] Send the impression-level ad revenue information to your preferred
  // analytics server directly within this callback.
}

// Show the ad immediately.
ad?.show(activity)

Java

// pollAd() returns the next available ad and loads another ad in the background.
InterstitialAd ad = InterstitialAdPreloader.pollAd("AD_UNIT_ID");

if (ad != null) {
  // [Optional] Interact with the ad object as needed.
  ad.setOnPaidEventListener(
      adValue -> {
        // [Optional] Send the impression-level ad revenue information to your preferred
        // analytics server directly within this callback.
      });

  // Show the ad immediately.
  ad.show(activity);
}

Verfügbarkeit von Anzeigen zum Vorabladen prüfen

Wählen Sie eine der folgenden Optionen aus, um die Verfügbarkeit von Anzeigen zu prüfen:

Verfügbarkeit von vorab geladenen Anzeigen abrufen

Im folgenden Beispiel wird die Verfügbarkeit von Anzeigen geprüft:

Kotlin

// Verify that a preloaded ad is available.
if (!InterstitialAdPreloader.isAdAvailable("AD_UNIT_ID")) {
  // No ads are available to show.
}

Java

// Verify that a preloaded ad is available.
if (!InterstitialAdPreloader.isAdAvailable("AD_UNIT_ID")) {
  // No ads are available to show.
}

Auf Verfügbarkeit von vorab geladenen Anzeigen warten

Registrieren Sie sich für Ereignisse zum Vorabladen, um benachrichtigt zu werden, wenn Anzeigen erfolgreich vorab geladen wurden, das Vorabladen fehlgeschlagen ist oder der Anzeigen-Cache erschöpft ist.

Ereignisse zum Vorabladen sind für Analysezwecke vorgesehen. Innerhalb von Rückrufen für Ereignisse zum Vorabladen gilt Folgendes:

  • Rufen Sie start() nicht auf.
  • Rufen Sie pollAd() nur auf, wenn die Anzeige sofort präsentiert wird.

Im folgenden Beispiel werden Anzeigenereignisse registriert:

Kotlin

// Define a callback to receive preload events.
val callback =
  object : PreloadCallbackV2() {
    override fun onAdPreloaded(preloadId: String, responseInfo: ResponseInfo?) {
      // Called when preloaded ads are available.
    }

    override fun onAdsExhausted(preloadId: String) {
      // Called when no preloaded ads are available.
    }

    override fun onAdFailedToPreload(preloadId: String, adError: AdError) {
      // Called when preloaded ads failed to load.
    }
  }

Java

// Define a callback to receive preload events.
PreloadCallbackV2 callback =
    new PreloadCallbackV2() {
      @Override
      public void onAdPreloaded(
          @NonNull String preloadId, @Nullable ResponseInfo responseInfo) {
        // Called when preloaded ads are available.
      }

      @Override
      public void onAdsExhausted(@NonNull String preloadId) {
        // Called when no preloaded ads are available.
      }

      @Override
      public void onAdFailedToPreload(@NonNull String preloadId, @NonNull AdError adError) {
        // Called when preloaded ads failed to load.
      }
    };

Vorabladen von Anzeigen beenden

Wenn Sie in der Sitzung keine Anzeigen mehr für eine Vorabladen-ID präsentieren müssen, können Sie das Vorabladen von Anzeigen beenden. Rufen Sie destroy() mit einer Vorabladen-ID auf, um das Vorabladen von Anzeigen für eine bestimmte Vorabladen-ID zu beenden.

Kotlin

// Stops the preloading and destroy preloaded ads.
InterstitialAdPreloader.destroy("AD_UNIT_ID")
// Stops the preloading and destroy all ads.
InterstitialAdPreloader.destroyAll()

Java

// Stops the preloading and destroy preloaded ads.
InterstitialAdPreloader.destroy("AD_UNIT_ID");
// Stops the preloading and destroy all ads.
InterstitialAdPreloader.destroyAll();

Zwischenspeichergröße festlegen

Mit der Zwischenspeichergröße wird die Anzahl der vorab geladenen Anzeigen gesteuert, die im Arbeitsspeicher gespeichert werden. Standardmäßig optimiert Google die Zwischenspeichergröße, um ein Gleichgewicht zwischen Arbeitsspeicherverbrauch und Latenz bei der Anzeigenauslieferung zu schaffen. Wenn in Ihrer App Anzeigen präsentiert werden, bevor die nächste Anzeige geladen wird, können Sie eine benutzerdefinierte Zwischenspeichergröße festlegen, um die Anzahl der im Arbeitsspeicher gespeicherten Anzeigen zu erhöhen. Wir empfehlen eine Zwischenspeichergröße von maximal vier.

Kotlin

// Define a PreloadConfiguration and buffer up to 5 preloaded ads.
val configuration = PreloadConfiguration.Builder("AD_UNIT_ID").setBufferSize(5).build()

Java

// Define a PreloadConfiguration and buffer up to 5 preloaded ads.
PreloadConfiguration configuration =
    new PreloadConfiguration.Builder("AD_UNIT_ID").setBufferSize(5).build();