Встроенные адаптивные баннеры

Выберите платформу: Android iOS Flutter Android (Legacy)

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

В этом руководстве рассматривается создание адаптивных баннеров, отображаемых непосредственно в тексте, и настройка размера баннера.

На следующем изображении показаны адаптивные баннеры, встроенные в прокручиваемый контент:

Диаграмма, демонстрирующая различия между адаптивными и встроенными адаптивными баннерами.

Прежде чем начать

Прежде чем продолжить, убедитесь, что вы настроили баннерную рекламу .

Чтобы посмотреть полный пример адаптивного баннера, встроенного в текст, загрузите следующее демонстрационное приложение:

Внедрить адаптивные баннеры непосредственно в тексте.

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

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

  • Используется вся ширина экрана.
  • Используется ширина родительского макета, содержащего рекламу.
  • Корректировка ширины с учетом безопасных зон для устройств.

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

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

Котлин

private fun loadAd() {
  // Create an inline adaptive ad size. 320 is a placeholder value.
  // Replace 320 with your banner container width.
  val adSize = AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, 320)

  // Step 1 - Create a BannerAdRequest object with ad unit ID and size.
  val adRequest = BannerAdRequest.Builder("AD_UNIT_ID", adSize).build()

  // Step 2 - Load the ad.
  BannerAd.load(
    adRequest,
    object : AdLoadCallback<BannerAd> {
      override fun onAdLoaded(ad: BannerAd) {
        // Assign the loaded ad to the BannerAd object.
        bannerAd = ad
        // Step 3 - Call BannerAd.getView() to get the View and add it
        // to view hierarchy on the UI thread.
        activity?.runOnUiThread {
          binding.bannerViewContainer.addView(ad.getView(requireActivity()))
        }
      }

      override fun onAdFailedToLoad(loadAdError: LoadAdError) {
        bannerAd = null
      }
    }
  )
}

Java

private void loadAd() {
  // Create an inline adaptive ad size. 320 is a placeholder value.
  // Replace 320 with your banner container width.
  AdSize adSize = AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, 320);

  // Step 1 - Create a BannerAdRequest object with ad unit ID and size.
  BannerAdRequest adRequest = new BannerAdRequest.Builder("AD_UNIT_ID",
      adSize).build();

  // Step 2 - Load the ad.
  BannerAd.load(
      adRequest,
      new AdLoadCallback<BannerAd>() {
        @Override
        public void onAdLoaded(@NonNull BannerAd ad) {
          // Assign the loaded ad to the BannerAd object.
          bannerAd = ad;
          // Step 3 - Call BannerAd.getView() to get the View and add it
          // to view hierarchy on the UI thread.
          if (getActivity() != null) {
            getActivity()
                .runOnUiThread(() ->
                    binding.bannerViewContainer.addView(ad.getView(getActivity())));
          }
        }

        @Override
        public void onAdFailedToLoad(@NonNull LoadAdError adError) {
          bannerAd = null;
        }
      });
}

Настройте адаптивный макет встроенного баннера.

Для предварительной загрузки адаптивного баннера, встроенного в текст, для определенного макета используйте следующие методы:

Если ваше приложение поддерживает портретный и альбомный режимы просмотра, и вы хотите предварительно загрузить адаптивный баннер в текущий макет, используйте метод AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(Context context, int width) . Этот метод загружает рекламу в текущий макет.

Ограничить высоту адаптивного баннера, расположенного в строке

По умолчанию, высота встроенных адаптивных баннеров, созданных без значения maxHeight равна высоте устройства. Чтобы ограничить высоту встроенного адаптивного баннера, используйте метод AdSize.getInlineAdaptiveBannerAdSize(int width, int maxHeight) .