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

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

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

На изображении ниже показаны адаптивные встроенные баннеры в прокручиваемом контенте.

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

Подготовка

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

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

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

Чтобы реализовать встроенные адаптивные баннеры, задайте размер объявления, создайте запрос объявления и загрузите объявление.

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

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

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

Выполните следующие действия:

  1. Получите ширину устройства или задайте ширину:

    Kotlin

    private val adWidth: Int
      get() {
        val displayMetrics = resources.displayMetrics
        val adWidthPixels =
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
            val windowMetrics: WindowMetrics = this.windowManager.currentWindowMetrics
            windowMetrics.bounds.width()
          } else {
            displayMetrics.widthPixels
          }
        val density = displayMetrics.density
        return (adWidthPixels / density).toInt()
      }
    

    Java

    public int getAdWidth() {
      DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
      int adWidthPixels = displayMetrics.widthPixels;
    
      if (VERSION.SDK_INT >= VERSION_CODES.R) {
        WindowMetrics windowMetrics = this.getWindowManager().getCurrentWindowMetrics();
        adWidthPixels = windowMetrics.getBounds().width();
      }
    
      float density = displayMetrics.density;
      return (int) (adWidthPixels / density);
    }
    
  2. Чтобы получить объект размера встроенного адаптивного объявления, используйте статический метод в классе размера объявления:

    Kotlin

    val adView = AdView(this@MainActivity)
    adView.setAdSize(AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, adWidth))

    Java

    final AdView adView = new AdView(MainActivity.this);
    adView.setAdSize(AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, getAdWidth()));

Как задать макет встроенного адаптивного баннера

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

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

Ограничение высоты встроенного адаптивного баннера

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