Wstępne ładowanie reklam (beta)

Wstępne ładowanie reklam to funkcja zarządzana przez Google w Google Mobile Ads SDK (Legacy), która zarządza ładowaniem i buforowaniem reklam w Twoim imieniu. Wstępne ładowanie reklam wymaga zmiany sposobu zarządzania wczytywaniem reklam. Aby zoptymalizować wydajność za pomocą wstępnego ładowania reklam, wyłącz niestandardowe buforowanie i przekaż tę odpowiedzialność Google Mobile Ads SDK (Legacy).

Wstępne ładowanie reklam ma następujące korzyści w porównaniu z ręcznym wczytywaniem reklam:

  • Zarządzanie odwołaniami: przechowuje wczytane reklamy, dzięki czemu nie musisz utrzymywać odwołań, dopóki nie będziesz gotowy do ich wyświetlenia.
  • Automatyczne ponowne wczytywanie: automatycznie wczytuje nową reklamę, gdy wyjmiesz ją z pamięci podręcznej.
  • Zarządzane ponowne próby: automatycznie ponawia nieudane żądania przy użyciu algorytmu wzrastający czas do ponowienia.
  • Obsługa wygasania: automatycznie odświeża reklamy przed ich wygaśnięciem (zwykle po godzinie).
  • Optymalizacja pamięci podręcznej: jeśli używasz rozmiaru pamięci podręcznej większego niż 1, Google Mobile Ads SDK (Legacy) optymalizuje kolejność w pamięci podręcznej, aby wyświetlać najlepszą reklamę.

Z tego przewodnika dowiesz się, jak skonfigurować wstępne wczytywanie reklam, sprawdzić ich dostępność i wyświetlić wstępnie wczytaną reklamę.

Wymagania wstępne

Zanim przejdziesz do tego samouczka, musisz skonfigurować Google Mobile Ads SDK (Legacy).

Rozpoczęcie wstępnego wczytywania reklam

Gdy aplikacja się uruchomi, wywołaj metodę start raz. Po wywołaniu metody start pakiet Google Mobile Ads SDK (Legacy) automatycznie wstępnie wczytuje reklamy i ponawia nieudane żądania wstępnie wczytanych konfiguracji.

Poniższy przykład pokazuje, jak rozpocząć wstępne wczytywanie reklam:

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);

Zastąp AD_UNIT_ID identyfikatorem jednostki reklamowej.

Pobieranie i wyświetlanie wstępnie wczytanej reklamy

Gdy używasz wstępnego ładowania reklam, Google Mobile Ads SDK (Legacy) przechowuje reklamy w pamięci podręcznej. Gdy chcesz wyświetlić reklamę, wywołaj metodę pollAd. Google Mobile Ads SDK (Legacy) pobiera dostępną reklamę i automatycznie wstępnie wczytuje następną reklamę w tle.

Nie wywołuj metody pollAd, dopóki nie będziesz gotowy do wyświetlenia reklamy. Przechowywanie reklam w pamięci podręcznej umożliwia Google Mobile Ads SDK (Legacy) automatyczne odświeżanie wygasłych reklam i optymalizowanie pamięci podręcznej.

Poniższy przykład pobiera i wyświetla wstępnie wczytaną reklamę:

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);
}

Sprawdzanie dostępności wstępnie wczytanej reklamy

Aby sprawdzić dostępność reklamy, wykonaj jedną z tych czynności:

Sprawdzanie dostępności wstępnie wczytanej reklamy

Poniższy przykład sprawdza dostępność reklamy:

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.
}

Sprawdzanie dostępności wstępnie wczytanej reklamy

Zarejestruj się, aby otrzymywać powiadomienia o wstępnym wczytywaniu reklam, gdy reklamy zostaną wstępnie wczytane, nie uda się ich wstępnie wczytać lub gdy pamięć podręczna reklam zostanie wyczerpana.

Zdarzenia wstępnego wczytywania są przeznaczone do celów analitycznych. W przypadku wywołań zwrotnych zdarzeń wstępnego ładowania:

  • Nie wywołuj metody start.
  • Unikaj wywoływania metody pollAd, chyba że reklama będzie wyświetlana natychmiast.

Poniższy przykład rejestruje zdarzenia związane z reklamami:

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.
      }
    };

Zatrzymywanie wstępnego wczytywania reklam

Jeśli nie musisz już wyświetlać reklam z identyfikatorem wstępnego wczytywania w sesji, możesz zatrzymać wstępne wczytywanie reklam. Aby zatrzymać wstępne wczytywanie reklam z określonym identyfikatorem wstępnego wczytywania, wywołaj metodę destroy z identyfikatorem wstępnego wczytywania. Aby zatrzymać wstępne wczytywanie dla wszystkich wstępnie wczytujących, wywołaj metodę destroyAll.

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();

Ustawianie rozmiaru bufora

Rozmiar bufora określa liczbę wstępnie wczytanych reklam przechowywanych w pamięci. Domyślnie Google optymalizuje rozmiar bufora, aby zrównoważyć zużycie pamięci i opóźnienie wyświetlania reklam. Jeśli Twoja aplikacja wyświetla reklamy, zanim zostanie wczytana następna reklama, możesz ustawić niestandardowy rozmiar bufora, aby zwiększyć liczbę reklam przechowywanych w pamięci.

Kotlin

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

Java

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

Limity pamięci podręcznej wstępnego wczytywania

Google Mobile Ads SDK (Legacy) wymusza limit całkowitej liczby wstępnie wczytanych reklam we wszystkich jednostkach reklamowych i identyfikatorach wstępnego wczytywania:

  • Domyślny limit: Google Mobile Ads SDK (Legacy) przechowuje w pamięci maksymalnie 6 wstępnie wczytanych reklam. Ten limit jest wspólny dla wszystkich formatów i identyfikatorów wstępnego wczytywania.
  • Zalecamy, aby rozmiar bufora wynosił 2 lub 3 na identyfikator wstępnego wczytywania.