Как загрузить одно объявление при запуске приложения

Объявления при запуске приложения – это формат объявления, предназначенный для издателей, которые хотят монетизировать экраны загрузки своих приложений. Пользователи могут закрыть объявление при запуске приложения в любой момент. Объявления при запуске приложения показываются, когда пользователь открывает приложение.

Дополнительную информацию вы найдете в руководстве по объявлениям при запуске приложения.

В этом руководстве рассказывается, как интегрировать объявления при запуске приложения в приложение для Android.

Подготовка

Прежде чем продолжить, сделайте следующее:

  • Настройте GMA Next-Gen SDK.
  • Используйте идентификатор тестового рекламного блока для объявлений при запуске приложения: ca-app-pub-3940256099942544/9257395921.
    • При создании и тестировании приложения используйте тестовые объявления, а не реальные. Если вы не будете использовать идентификатор тестового рекламного блока, Google может заблокировать ваш аккаунт.
    • Перед публикацией приложения замените этот идентификатор на идентификатор своего рекламного блока.
    • Подробнее о тестовых объявлениях GMA Next-Gen SDK рассказывается в статье Как включить тестовые объявления.

Загрузка объявления

В следующем примере загружается одно объявление:

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

При тестировании используйте идентификатор тестового рекламного блока: ca-app-pub-3940256099942544/9257395921.

Покажите объявление

Чтобы показать объявление при запуске приложения, вызовите метод show. Объявления при запуске приложения перестают действовать через четыре часа после загрузки. Не показывайте объявление при запуске приложения, если оно загружается дольше четырех часов.

В примере ниже показано объявление:

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

Как обрабатывать холодные запуски и экраны загрузки

Холодный запуск происходит, когда приложение запускается с диска, а теплый – когда оно открывается из памяти. При холодном запуске у вас нет ранее загруженного объявления, которое можно показать. При теплом запуске у вас может быть загруженное объявление, готовое к показу.

При холодном запуске пользователи могут начать взаимодействовать с приложением до того, как оно загрузится и покажет объявление. Чтобы не ухудшать удобство использования, показывайте объявления при запуске приложения только на экране загрузки, пока загружаются объекты приложения. Пока пользователи ждут загрузки приложения, покажите им объявление при запуске приложения. Не показывайте объявление при запуске приложения, когда пользователь открывает его в первый раз. Если загрузка объектов завершилась и пользователи перешли к основному контенту до того, как загрузилось объявление, не показывайте его.

Загружайте объекты приложения в фоновом потоке, чтобы загрузка продолжалась во время показа объявления. Если загрузка завершится во время показа объявления, закройте экран загрузки в методе обратного вызова для закрытия объявления.

Как отслеживать события объявлений

Прежде чем показывать объявление, прослушайте события жизненного цикла объявления. В примере ниже регистрируются обратные вызовы для событий объявлений.

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