Как задать фиксированный размер баннера

Google Mobile Ads SDK (Legacy) поддерживает фиксированные размеры объявлений, если адаптивные баннеры вам не подходят.

В таблице ниже перечислены стандартные размеры баннеров.

Размер в единицах, не зависящих от плотности (ширина x высота) Описание Доступность Константа AdSize
320 x 50 Баннер Телефоны и планшеты BANNER
320 x 100 Большой баннер Телефоны и планшеты LARGE_BANNER
300 x 250 Средний прямоугольник (IAB) Телефоны и планшеты MEDIUM_RECTANGLE
468 x 60 Полноразмерный баннер IAB Планшеты FULL_BANNER
728 x 90 Полноразмерный баннер IAB Планшеты LEADERBOARD

Размер контейнера должен быть не меньше баннера, который в нем размещается Поля уменьшают размер контейнера. Если баннер не помещается в контейнер, он не показывается, а в журнале появляется следующее предупреждение:

W/Ads: Not enough space to show ad. Needs 320x50 dp, but only has 288x495 dp.

Задайте размер объявления, который не превышает размер экрана устройства. Чтобы определить максимальный размер экрана, используйте метод Resources.getDisplayMetrics. Размеры объекта AdSize указываются в пикселях, не зависящих от плотности экрана (dp). При сравнении преобразуйте размер экрана из пикселей в единицы dp. Подробнее об ограничениях по размеру см. в статье Устранение неполадок, связанных с невыполненными показами, в Менеджере рекламы.

Добавьте AdManagerAdView в макет

Вместо программного создания AdManagerAdView добавьте AdManagerAdView в XML-макет для Activity или Fragment, где вы хотите его показывать. Пример:

<com.google.android.gms.ads.admanager.AdManagerAdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/banner_ad_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"
    ads:adSize="BANNER"
    ads:adUnitId="/21775744923/example/fixed-size-banner" />

Обратите внимание на следующие обязательные атрибуты:

  • ads:adSize: укажите размер объявления, который вы хотите использовать. Если вы не хотите использовать стандартный размер, заданный константой, можно указать собственный. Пример: ads:adSize="320x50".

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

Специальный размер объявления

Если у вас есть позиции для резервирования в Менеджере рекламы с таргетингом на специальный размер, вы можете создать AdSize с шириной и высотой, соответствующими вашей позиции.

Java

AdSize customAdSize = new AdSize(250, 250);
AdManagerAdView adView = new AdManagerAdView(this);
adView.setAdSizes(customAdSize);

Kotlin

val customAdSize = AdSize(250, 250)
val adView = AdManagerAdView(this)
adView.setAdSizes(customAdSize)

Несколько размеров объявлений

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

Java

AdManagerAdView adView = new AdManagerAdView(this);
adView.setAdSizes(AdSize.BANNER, new AdSize(120, 20), new AdSize(250, 250));

Kotlin

val adView = AdManagerAdView(this)
adView.setAdSizes(AdSize.BANNER, AdSize(120, 20), AdSize(250, 250))

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

Вы также можете указать несколько размеров объявлений с помощью атрибута ads:adSizes в XML-файле макета:

<com.google.android.gms.ads.admanager.AdManagerAdView
   android:id="@+id/multiple_ad_sizes_view"
   android:layout_width="wrap_parent"
   android:layout_height="wrap_content"
   android:layout_alignParentBottom="true"
   android:layout_centerHorizontal="true"
   ads:adSizes="BANNER,120x20,250x250"
   ads:adUnitId="AD_UNIT_ID" />

Пример объявления с несколькими размерами

Java Kotlin