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