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

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

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

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

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

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

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

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

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

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

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

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

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

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

Выполните следующие шаги:

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

    Котлин

    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. Чтобы получить объект адаптивного размера рекламы, встроенный в текст, используйте статический метод класса размера рекламы:

    Котлин

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