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

Прежде чем начать
Прежде чем продолжить, убедитесь, что вы настроили баннерную рекламу .
Чтобы посмотреть полный пример адаптивного баннера, встроенного в текст, загрузите следующее демонстрационное приложение:
Внедрить адаптивные баннеры непосредственно в тексте.
Для внедрения адаптивных баннеров, встроенных в текст, необходимо задать размер объявления, создать запрос на показ объявления и загрузить объявление.
Чтобы задать размер адаптивного баннера, нужно определить ширину объявления. Распространенные подходы включают следующие:
- Используется вся ширина экрана.
- Используется ширина родительского макета, содержащего рекламу.
- Корректировка ширины с учетом безопасных зон для устройств.
При создании объекта размера объявления используйте эту вычисленную ширину.
Выполните следующие шаги:
Получите ширину вашего устройства или задайте её самостоятельно:
Котлин
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); }Чтобы получить объект адаптивного размера рекламы, встроенный в текст, используйте статический метод класса размера рекламы:
Котлин
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.getPortraitInlineAdaptiveBannerAdSize(Context context, int width)AdSize.getLandscapeInlineAdaptiveBannerAdSize(Context context, int width)
Если ваше приложение поддерживает портретный и альбомный режимы просмотра, и вы хотите предварительно загрузить адаптивный баннер в текущий макет, используйте метод AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(Context context, int width) . Этот метод загружает рекламу в текущий макет.
Ограничить высоту адаптивного баннера, расположенного в строке
По умолчанию, высота встроенных адаптивных баннеров, созданных без значения maxHeight равна высоте устройства. Чтобы ограничить высоту встроенного адаптивного баннера, используйте метод AdSize.getInlineAdaptiveBannerAdSize(int width, int maxHeight) .