Wstępne ładowanie reklam (alfa)

Wstępne wczytywanie reklam to zarządzana przez Google funkcja wczytywania reklam w Google Mobile Ads SDK, która zarządza wczytywaniem i buforowaniem reklam w Twoim imieniu. Wstępne wczytywanie reklam wymaga zmiany sposobu zarządzania wczytywaniem reklam. Aby zoptymalizować wydajność za pomocą wstępnego wczytywania reklam, wyłącz niestandardowe buforowanie i przekaż to zadanie do Google Mobile Ads SDK.

Wstępne wczytywanie reklam ma te zalety w porównaniu z ręcznym wczytywaniem reklam:

  • Zarządzanie odwołaniami: przechowuje załadowane 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 jedną z pamięci podręcznej.
  • Zarządzane ponowne próby: automatycznie ponawia próby wysłania żądań, które zakończyły się niepowodzeniem, przy użyciu algorytmu wzrastający czas do ponowienia.
  • Obsługa wygasania: automatycznie odświeża reklamy, zanim wygasną (zwykle po godzinie).
  • Optymalizacja pamięci podręcznej: jeśli używasz rozmiaru pamięci podręcznej większego niż 1, Google Mobile Ads SDKoptymalizuje kolejność pamięci podręcznej, aby wyświetlać najlepszą reklamę.

Z tego przewodnika dowiesz się, jak skonfigurować reklamy wstępnie wczytywane, sprawdzić ich dostępność i wyświetlić je.

Wymagania wstępne

Zanim przejdziesz do samouczka, musisz wykonać te czynności:

  • Zainstaluj Google Mobile Ads SDK w wersji 24.4.0 lub nowszej. Materiały dla programistów dotyczące starszych wersji są dostępne w przypadku wersji 23.6.1–24.3.0, ale zalecamy korzystanie z wersji 24.4.0 lub nowszej i postępowanie zgodnie z tym przewodnikiem.
  • Skonfiguruj Google Mobile Ads SDK.
  • Opcjonalnie: pobierz i uruchom przykładową aplikację w Javie lub Kotlin.

Rozpocznij wstępne wczytywanie reklam

Aby rozpocząć wstępne wczytywanie reklam, wywołaj funkcję start(). Tę metodę wywołuj tylko raz na początku działania aplikacji. Po wywołaniu metody start() Google Mobile Ads SDK automatycznie wstępnie wczytuje reklamy i ponawia nieudane żądania wstępnie wczytanych konfiguracji.

Poniższy przykład rozpoczyna 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

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

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

Ten 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 reklamy do wstępnego wczytywania

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

Sprawdzanie dostępności wstępnie wczytanych reklam

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

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

Nasłuchiwanie dostępności wstępnie wczytanych reklam

Zarejestruj się, aby otrzymywać powiadomienia o zdarzeniach wstępnego wczytywania, 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 funkcjach zwrotnych zdarzenia wstępnego wczytywania:

  • Nie dzwoń pod numer start().
  • Nie wywołuj funkcji 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 chcesz już wyświetlać reklam dla identyfikatora wstępnego wczytywania w sesji, możesz zatrzymać wstępne wczytywanie reklam. Aby zatrzymać wstępne wczytywanie reklam dla konkretnego identyfikatora wstępnego wczytywania, wywołaj funkcję destroy() z identyfikatorem wstępnego wczytywania.

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 zachować równowagę między zużyciem pamięci a opóźnieniem wyświetlania reklam. Jeśli aplikacja wyświetla reklamy, zanim zostanie wczytana następna, możesz ustawić niestandardowy rozmiar bufora, aby zwiększyć liczbę reklam przechowywanych w pamięci. Zalecamy rozmiar bufora wynoszący maksymalnie 4.

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