Как обеспечить конкуренцию между нативными объявлениями и баннерами

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

Требования

  • Google Mobile Ads SDK версии 11.0.0 или более поздней.

Как загрузить объявление

Нативные объявления со специальной обработкой загружаются с помощью класса AdLoader, у которого есть собственный класс AdLoader.Builder для настройки во время создания. Добавляя прослушиватели в AdLoader при его создании, приложение указывает, какие типы форматов объявлений оно готово получать. После этого AdLoader запрашивает только эти типы.

Объект AdLoader также можно настроить так, чтобы он отправлял запросы объявлений, которые могут привести к показу баннера или нативного объявления. Добавление элемента OnAdManagerAdViewLoadedListener в элемент AdLoader при создании запроса указывает, что баннеры должны конкурировать с нативными объявлениями за право заполнить запрос.

В примере кода ниже показано, как создать объект AdLoader, который может загрузить нативное объявление или баннер в рамках одного запроса.

Java

AdLoader adLoader = new AdLoader.Builder(context, "/21775744923/example/native-and-banner")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
      @Override
      public void onNativeAdLoaded(NativeAd nativeAd) {
        // Show the ad.
      }
    })
    .forAdManagerAdView(new OnAdManagerAdViewLoadedListener() {
      @Override
      public void onAdManagerAdViewLoaded(AdManagerAdView adView) {
        // Show the banner ad.
      }
    }, AdSize.BANNER, AdSize.MEDIUM_RECTANGLE)
    .withAdListener(new AdListener() {
      @Override
      public void onAdFailedToLoad(LoadAdError error) {
        // Handle the failure by logging, altering the UI, etc.
      }
    })
    .withAdManagerAdViewOptions(new AdManagerAdViewOptions.Builder()
      // Methods in the AdManagerAdViewOptions.Builder class can be
      // used here to specify individual options settings.
      .build())
    .build();

Kotlin

val adLoader = AdLoader.Builder(this, "/21775744923/example/native-and-banner")
    .forNativeAd { nativeAd ->
      // Show the ad.
    }
    .forAdManagerAdView({ adView ->
      // Show the banner ad.
    }, AdSize.BANNER, AdSize.MEDIUM_RECTANGLE)
    .withAdListener(object: AdListener() {
      override fun onAdFailedToLoad(adError: LoadAdError) {
        // Handle the failure by logging, altering the UI, etc.
      }
    })
    .withAdManagerAdViewOptions(AdManagerAdViewOptions.Builder()
      // Methods in the AdManagerAdViewOptions.Builder class can be
      // used here to specify individual options settings.
      .build())
    .build()

Метод forAdManagerAdView() подготавливает AdLoader к получению баннеров. При вызове forAdManagerAdView() вместе с OnAdManagerAdViewLoadedListener необходимо указать список допустимых размеров объявлений переменной длины.

Чтобы запрос объявления был действительным, необходимо указать хотя бы один допустимый размер объявления. Когда баннер загружен, вызывается метод onAdManagerAdViewLoaded() указанного объекта прослушивателя.

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

Настройте объект AdViewOptions

Последняя функция, включенная в создание AdLoader, – это ещё один необязательный метод withAdManagerAdViewOptions():

Java

.withAdManagerAdViewOptions(new AdManagerAdViewOptions.Builder()
    // Methods in the AdManagerAdViewOptions.Builder class can be
    // used here to specify individual banner options settings.
    .build()

Kotlin

.withAdManagerAdViewOptions(AdManagerAdViewOptions.Builder()
    // Methods in the AdManagerAdViewOptions.Builder class can be
    // used here to specify individual banner options settings.
    .build()

Объект AdManagerAdViewOptions позволяет издателям задавать определенные параметры для баннеров, загружаемых с помощью AdLoader, например:

setManualImpressionsEnabled()
Включает отчеты о показах, созданные вручную, для резервирований Google Менеджера рекламы. Приложения, в которых показы регистрируются вручную, могут самостоятельно определять, когда следует регистрировать показ, вызывая метод AdManagerAdView.recordManualImpression().