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

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

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

Размер в dp (Ш 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