Объединение запросов настраиваемой нативной рекламы и баннерной рекламы

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

Предварительные условия

  • Версия 11.0.0 или более поздняя версия Google Mobile Ads SDK.
  • Полное начало работы .

Загрузка объявления

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

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

Следующий код демонстрирует, как создать AdLoader , который может загружать как нативную, так и баннерную рекламу одним запросом:

Джава

AdLoader adLoader = new AdLoader.Builder(context, "/6499/example/nativeandbanner")
    .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, and so on.
      }
    })
    .withAdManagerAdViewOptions(new AdManagerAdViewOptions.Builder()
      // Methods in the AdManagerAdViewOptions.Builder class can be
      // used here to specify individual options settings.
      .build())
    .build();

Котлин

val adLoader = AdLoader.Builder(this, "/6499/example/nativeandbanner")
    .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, and so on.
      }
    })
    .withAdManagerAdViewOptions(AdManagerAdViewOptions.Builder()
      // Methods in the AdManagerAdViewOptions.Builder class can be
      // used here to specify individual options settings.
      .build())
    .build()

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

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

Настройка параметров AdViewOptions

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

Джава

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

Котлин

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

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

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