Wczytywanie pojedynczej reklamy wyświetlanej przy otwarciu aplikacji

Reklamy wyświetlane przy otwarciu aplikacji to format przeznaczony dla wydawców, którzy chcą zarabiać na ekranach wczytywania aplikacji. Użytkownicy mogą w każdej chwili zamknąć reklamy wyświetlane przy otwarciu aplikacji. Gdy użytkownicy otwierają aplikację na pierwszym planie, wyświetlaj reklamy przy otwarciu aplikacji.

Więcej informacji znajdziesz w wytycznych dotyczących reklam wyświetlanych przy otwarciu aplikacji.

Z tego przewodnika dowiesz się, jak zintegrować reklamy wyświetlane przy otwarciu aplikacji z aplikacją na Androida.

Zanim zaczniesz

Zanim przejdziesz dalej, wykonaj te czynności:

  • Skonfiguruj GMA Next-Gen SDK.
  • Użyj identyfikatora testowej jednostki reklamowej wyświetlanej przy otwarciu aplikacji: ca-app-pub-3940256099942544/9257395921.
    • Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie gotowych reklam produkcyjnych. Jeśli nie użyjesz identyfikatora testowej jednostki reklamowej, Google może zawiesić Twoje konto.
    • Zanim opublikujesz aplikację, zastąp ten identyfikator identyfikatorem jednostki reklamowej.
    • Szczegółowe informacje o reklamach testowych w GMA Next-Gen SDK znajdziesz w artykule Włączanie reklam testowych.

Wczytywanie reklamy

Poniższy przykład wczytuje pojedynczą reklamę:

Kotlin

// Load ads after you initialize MobileAds.
AppOpenAd.load(
  AdRequest.Builder(adUnitId).build(),
  object : AdLoadCallback<AppOpenAd> {
    override fun onAdLoaded(ad: AppOpenAd) {
      // App open ad loaded.
      appOpenAd = ad
    }

    override fun onAdFailedToLoad(adError: LoadAdError) {
      // App open ad failed to load.
      Log.e(TAG, "App open ad failed to load: ${adError.message}")
      appOpenAd = null
    }
  },
)

Java

// Load ads after you initialize MobileAds.
AppOpenAd.load(
    new AdRequest.Builder(adUnitId).build(),
    new AdLoadCallback<AppOpenAd>() {
      @Override
      public void onAdLoaded(AppOpenAd ad) {
        // App open ad loaded.
        appOpenAd = ad;
      }

      @Override
      public void onAdFailedToLoad(LoadAdError adError) {
        // App open ad failed to load.
        Log.e(TAG, "App open ad failed to load: " + adError.getMessage());
        appOpenAd = null;
      }
    });

Podczas testowania używaj identyfikatora testowej jednostki reklamowej: ca-app-pub-3940256099942544/9257395921.

Wyświetl reklamę

Aby wyświetlić reklamę wyświetlaną przy otwarciu aplikacji, wywołaj metodę show. Reklamy wyświetlane przy otwarciu aplikacji wygasają po 4 godzinach od wczytania. Nie wyświetlaj reklamy wyświetlanej przy otwarciu aplikacji, która wczytuje się dłużej niż 4 godziny.

Poniższy przykład pokazuje reklamę:

Kotlin

private fun showAd(appOpenAd: AppOpenAd, activity: Activity) {
  // Show the ad.
  appOpenAd.show(activity)
}

Java

private void showAd(AppOpenAd appOpenAd, Activity activity) {
  // Show the ad.
  appOpenAd.show(activity);
}

Obsługa uruchomień „na zimno” i ekranów wczytywania

Uruchomienie „na zimno” ma miejsce, gdy aplikacja jest uruchamiana z dysku, a uruchomienie częściowo z pamięci – gdy otwierasz aplikację ponownie z pamięci. Podczas zimnego startu nie masz do dyspozycji wcześniej wczytanej reklamy. Podczas ciepłego startu możesz nadal mieć dostępną do wyświetlenia wczytaną reklamę.

Podczas uruchamiania „na zimno” użytkownicy mogą wejść w interakcję z aplikacją, zanim się ona załaduje i wyświetli reklamę. Aby zapewnić użytkownikom wygodę, wyświetlaj reklamy przy otwarciu aplikacji podczas uruchamiania „na zimno” wyłącznie na ekranie wczytywania, gdy wczytują się zasoby aplikacji. Gdy użytkownicy czekają na wczytanie aplikacji, wyświetlaj reklamy wyświetlane przy otwarciu aplikacji. Nie wyświetlaj reklamy wyświetlanej przy otwarciu aplikacji podczas pierwszego uruchomienia aplikacji. Jeśli wczytywanie zasobów zostanie zakończone i użytkownicy dotrą do głównej treści, zanim reklama się wczyta, nie wyświetlaj jej.

Wczytuj zasoby aplikacji w wątku w tle, aby kontynuować wczytywanie podczas wyświetlania reklamy. Jeśli ekran wczytywania zakończy wczytywanie, gdy reklama jest wyświetlana, zamknij go w metodzie wywołania zwrotnego zamknięcia reklamy.

Nasłuchiwanie zdarzeń reklamowych

Zanim wyświetlisz reklamę, nasłuchuj zdarzeń cyklu życia reklamy. Przykład poniżej pokazuje, jak zarejestrować wywołania zwrotne w przypadku zdarzeń reklamowych:

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