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

Прежде чем начать
Прежде чем продолжить, убедитесь, что вы настроили баннерную рекламу .
Чтобы посмотреть полный пример адаптивного баннера, встроенного в текст, загрузите следующее демонстрационное приложение:
Внедрить адаптивные баннеры непосредственно в тексте.
Для внедрения адаптивных баннеров, отображаемых непосредственно в тексте, необходимо задать размер объявления, создать запрос на показ объявления и загрузить его.
Чтобы задать размер адаптивного баннера, нужно определить ширину объявления. Распространенные подходы включают следующие:
- Используется вся ширина экрана.
- Используется ширина родительского макета, содержащего рекламу.
- Корректировка ширины с учетом безопасных зон для устройств.
При создании объекта размера объявления используйте эту вычисленную ширину.
В следующем примере задается размер объявления, создается запрос на показ объявления и загружается объявление:
Котлин
private fun loadAd() {
// Create an inline adaptive ad size. 320 is a placeholder value.
// Replace 320 with your banner container width.
val adSize = AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, 320)
// Step 1 - Create a BannerAdRequest object with ad unit ID and size.
val adRequest = BannerAdRequest.Builder("AD_UNIT_ID", adSize).build()
// Step 2 - Load the ad.
BannerAd.load(
adRequest,
object : AdLoadCallback<BannerAd> {
override fun onAdLoaded(ad: BannerAd) {
// Assign the loaded ad to the BannerAd object.
bannerAd = ad
// Step 3 - Call BannerAd.getView() to get the View and add it
// to view hierarchy on the UI thread.
activity?.runOnUiThread {
binding.bannerViewContainer.addView(ad.getView(requireActivity()))
}
}
override fun onAdFailedToLoad(loadAdError: LoadAdError) {
bannerAd = null
}
}
)
}
Java
private void loadAd() {
// Create an inline adaptive ad size. 320 is a placeholder value.
// Replace 320 with your banner container width.
AdSize adSize = AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, 320);
// Step 1 - Create a BannerAdRequest object with ad unit ID and size.
BannerAdRequest adRequest = new BannerAdRequest.Builder("AD_UNIT_ID",
adSize).build();
// Step 2 - Load the ad.
BannerAd.load(
adRequest,
new AdLoadCallback<BannerAd>() {
@Override
public void onAdLoaded(@NonNull BannerAd ad) {
// Assign the loaded ad to the BannerAd object.
bannerAd = ad;
// Step 3 - Call BannerAd.getView() to get the View and add it
// to view hierarchy on the UI thread.
if (getActivity() != null) {
getActivity()
.runOnUiThread(() ->
binding.bannerViewContainer.addView(ad.getView(getActivity())));
}
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError adError) {
bannerAd = null;
}
});
}
Настройте адаптивный макет встроенного баннера.
Для предварительной загрузки адаптивного баннера, встроенного в текст, для определенного макета используйте следующие методы:
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) .