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" />