Как объединить запросы нативных объявлений и баннеров

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

Требования

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

Чтобы отправить комбинированный запрос на нативные объявления и баннеры, выполните следующие действия:

  1. Передайте типы NativeAdType.NATIVE и NativeAdType.BANNER в виде списка в NativeAdRequest.

  2. Укажите хотя бы один размер баннера.

В следующем примере загружается комбинированное нативное и баннерное объявление:

Kotlin

val adRequest =
  NativeAdRequest.Builder(AD_UNIT_ID, listOf(NativeAdType.NATIVE, NativeAdType.BANNER))
    // Use setAdSize() or setAdSizes() depending on if you want multiple ad sizes or not.
    .setAdSizes(listOf(AdSize.BANNER, AdSize.LARGE_BANNER))
    .build()

// Load the native and banner ad with the ad request and callback.
NativeAdLoader.load(adRequest, getNativeAdLoaderCallback())

Java

NativeAdRequest adRequest =
    new NativeAdRequest.Builder(AD_UNIT_ID, List.of(NativeAdType.NATIVE, NativeAdType.BANNER))
        // Use setAdSize() or setAdSizes() depending on if you want multiple ad sizes or not.
        .setAdSizes(Arrays.asList(AdSize.BANNER, AdSize.LARGE_BANNER))
        .build();

// Load the native and banner ad with the ad request and callback.
NativeAdLoader.load(adRequest, getNativeAdLoaderCallback());

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

Получите объявление из объекта NativeAdLoaderCallback

В зависимости от того, какой тип объявления был успешно загружен, объект NativeAdLoaderCallback вызывает метод onNativeAdLoaded() для нативных объявлений и метод onBannerAdLoaded() для баннеров.

В примере ниже запрашиваются баннеры или нативные объявления:

Kotlin

private fun getNativeAdLoaderCallback(): NativeAdLoaderCallback {
  return object : NativeAdLoaderCallback {
    override fun onNativeAdLoaded(nativeAd: NativeAd) {
      // Called when a native ad has loaded.
    }

    override fun onBannerAdLoaded(bannerAd: BannerAd) {
      // Called when a banner ad has loaded.
    }
  }
}

Java

private NativeAdLoaderCallback getNativeAdLoaderCallback() {
  return new NativeAdLoaderCallback() {
    @Override
    public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
      // Called when a native ad has loaded.
    }

    @Override
    public void onBannerAdLoaded(@NonNull BannerAd bannerAd) {
      // Called when a banner ad has loaded.
    }
  };
}