Reklamy wyświetlane przy otwarciu aplikacji to format reklam przeznaczony dla wydawców, którzy chcą zarabiać na ekranach wczytywania aplikacji. Użytkownicy mogą w dowolnym momencie zamknąć reklamy otwierania aplikacji. Gdy użytkownicy przenoszą aplikację na pierwszy plan, wyświetlaj reklamy wyświetlane przy otwarciu aplikacji.
Więcej informacji znajdziesz w przewodniku po reklamach 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:
- 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 zamiast reklam gotowych. Jeśli nie użyjesz testowego identyfikatora jednostki reklamowej, Google może zawiesić Twoje konto.
- Zanim opublikujesz aplikację, zastąp ten identyfikator identyfikatorem jednostki reklamowej.
- Szczegółowe informacje o GMA Next-Gen SDK reklamach testowych znajdziesz w artykule Włączanie reklam testowych.
Wstępne ładowanie reklam (beta)
Wstępne ładowanie reklam (beta) w GMA Next-Gen SDK automatyzuje wczytywanie i buforowanie reklam.
Wstępne wczytywanie reklam zapewnia te korzyści:
- Zarządzanie plikami referencyjnymi: utrzymuje pliki referencyjne do momentu wyświetlenia reklam.
- Automatyczne ponowne wczytywanie: wczytuje nową reklamę, gdy jedna z nich zostanie pobrana z pamięci podręcznej.
- Zarządzane ponawianie: wczytuje nową reklamę, gdy nie uda się wczytać poprzedniej.
- Obsługa wygaśnięcia: odświeża reklamy przed wygaśnięciem.
- Optymalizacja pamięci podręcznej: optymalizuje kolejność w pamięci podręcznej, aby wyświetlać reklamy o najwyższym priorytecie.
Rozpocznij wstępne ładowanie reklam
Aby rozpocząć wstępne wczytywanie reklam, wywołaj metodę startPreload() raz na początku działania aplikacji. Po wywołaniu metody startPreload()GMA Next-Gen SDK automatycznie wstępnie wczytuje reklamy i ponawia nieudane żądania dotyczące wstępnie wczytanych konfiguracji.
Poniższy przykład pokazuje, jak rozpocząć wstępne wczytywanie reklam:
Kotlin
Java
Zastąp AD_UNIT_ID identyfikatorem jednostki reklamowej.
W poprzednim przykładzie pokazano, jak używać identyfikatora jednostki reklamowej jako identyfikatora wstępnego wczytywania. Identyfikator wstępnego ładowania reklam to ciąg znaków, który tworzysz w celu identyfikowania konfiguracji wstępnego ładowania reklam. Jeśli Twoja aplikacja wymaga wielu konfiguracji kierowania dla tego samego identyfikatora jednostki reklamowej, przekaż niestandardowy identyfikator w postaci ciągu znaków.
Pobieranie i wyświetlanie wstępnie wczytanej reklamy
Gdy chcesz wyświetlić reklamę, wywołaj metodę pollAd().
GMA Next-Gen SDK pobiera dostępną reklamę i automatycznie wstępnie wczytuje następną reklamę w tle. Jeśli żadna reklama nie jest dostępna, funkcja GMA Next-Gen SDK nie zwraca żadnych reklam.
show, aby wyświetlić reklamę.
Poniższy przykład pokazuje, jak pobrać i wyświetlić wstępnie wczytaną reklamę:
Kotlin
Java
Dopóki nie będziesz gotowy(-a) do wyświetlenia reklamy, nie wywołuj metody pollAd(). Aby przeczytać informacje o odpowiedzi na żądanie reklamy bez wyświetlania jej, zobacz Odczytywanie informacji o odpowiedzi.
Nasłuchiwanie zdarzeń reklamowych
Przed wyświetleniem reklamy nasłuchuj zdarzeń związanych z reklamą. W tym przykładzie rejestrujemy wywołania zwrotne zdarzeń związanych z reklamami:
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. } }); }
Opcjonalnie: nasłuchiwanie zdarzeń wstępnego wczytywania
Gdy zaczniesz wstępnie wczytywać reklamy, zarejestruj się, aby otrzymywać powiadomienia o zdarzeniach wstępnego wczytywania. Będziesz wtedy wiedzieć, kiedy reklamy zostaną wstępnie wczytane, kiedy nie uda się ich wstępnie wczytać lub kiedy wyczerpie się pamięć podręczna reklam.
Ten przykład pokazuje, jak zarejestrować się w celu otrzymywania zdarzeń związanych z wstępnym wczytywaniem reklam:
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);
Gdy nie uda się wczytać reklamy, GMA Next-Gen SDK automatycznie wstępnie wczytuje reklamy i ponawia nieudane żądania wstępnie wczytanych konfiguracji.
Opcjonalnie: sprawdzanie dostępności reklamy
Jeśli chcesz sprawdzić, czy reklama jest dostępna, sprawdź jej dostępność. W tym przykładzie sprawdzamy, czy wstępnie wczytana reklama jest dostępna:
Kotlin
private fun isAdAvailable(adUnitId: String): Boolean { return AppOpenAdPreloader.isAdAvailable(adUnitId) }
Java
private boolean isAdAvailable(String adUnitId) { return AppOpenAdPreloader.isAdAvailable(adUnitId); }
Opcjonalnie: ustaw rozmiar 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. Możesz ustawić niestandardowy rozmiar bufora, aby zwiększyć liczbę reklam przechowywanych w pamięci. Zalecamy rozmiar bufora wynoszący 2 wstępnie wczytane reklamy.
W przykładzie poniżej pokazujemy, jak ustawić rozmiar bufora:
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);
Limity wstępnego buforowania
GMA Next-Gen SDK wymusza w aplikacji limit łącznej liczby wstępnie wczytanych reklam we wszystkich jednostkach reklamowych i identyfikatorach wstępnego wczytywania:
- Limit domyślny: Google 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 zachowanie rozmiaru bufora wynoszącego 2 w przypadku każdego identyfikatora wstępnego wczytywania.
Opcjonalnie: zatrzymywanie wstępnego wczytywania reklam
Jeśli nie chcesz ponownie wyświetlać reklam dla określonego identyfikatora wstępnego wczytywania w sesji, możesz zatrzymać wstępne wczytywanie reklam. Aby przestać wczytywać reklamy dla określonego identyfikatora wstępnego wczytywania, wywołaj metodę destroy() z identyfikatorem wstępnego wczytywania. Wywołanie metody destroy() powoduje usunięcie z pamięci podręcznej wszystkich wstępnie wczytanych reklam powiązanych z identyfikatorem wstępnego wczytywania.
Poniższy przykład pokazuje, jak zatrzymać wstępne wczytywanie reklam:
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); }
Opcjonalnie: przeczytaj informacje o odpowiedzi
Odczytaj informacje o odpowiedzi na kolejną wstępnie wczytaną reklamę bez usuwania jej z pamięci podręcznej.
Ten przykład pokazuje, jak odczytać informacje o odpowiedzi na żądanie wstępnie wczytanej reklamy:
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());
Obsługa uruchomień „na zimno” i ekranów wczytywania
Uruchomienie „na zimno” następuje, gdy aplikacja jest uruchamiana z dysku, a uruchamianie częściowo z pamięci – gdy ponownie otwierasz aplikację z pamięci. Podczas uruchamiania „na zimno” nie masz wstępnie wczytanej reklamy, którą można by od razu wyświetlić. Podczas uruchamiania częściowo z pamięci możesz mieć wstępnie wczytaną reklamę gotową do wyświetlenia.
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 wczytywane są zasoby aplikacji. Jeśli wczytywanie komponentu zakończy się, a użytkownik dotrze do treści głównych, zanim reklama się wczyta, nie wyświetlaj reklamy.
Rekomendacje
W przypadku reklam wyświetlanych przy otwarciu aplikacji postępuj zgodnie z tymi zaleceniami:
- Nie wyświetlaj reklamy wyświetlanej przy otwarciu aplikacji przy pierwszym uruchomieniu aplikacji.
- Jeśli ekran wczytywania zakończy wczytywanie podczas wyświetlania reklamy, zamknij go w metodzie wywołania zwrotnego po zamknięciu reklamy.
- Reklamy wyświetlane przy otwarciu aplikacji wygasają po 4 godzinach od wczytania. Nie wyświetlaj reklam wyświetlanych przy otwarciu aplikacji, które zostały wczytane ponad 4 godziny temu.