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

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

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

  • Версия 7.20.0 или более поздняя версия Google Mobile Ads SDK
  • Завершить руководство по началу работы

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

Специально созданные нативные объявления загружаются через объекты GADAdLoader . Объект GADAdLoader также можно настроить на отправку запросов объявлений, результатом которых может стать баннер или собственная реклама. Добавление GADAdLoaderAdTypeGAMBanner в параметр массива adTypes вместе с нативными типами объявлений, такими как GADAdLoaderAdTypeNative , при создании объекта GADAdLoader указывает, что рекламные баннеры должны конкурировать с нативными объявлениями для выполнения запроса.

Быстрый

adLoader = GADAdLoader(adUnitID: "/6499/example/nativeandbanner",
    rootViewController: self,
    adTypes: [.native, .gamBanner],
    options: [... ad loader options objects ...])
adLoader.delegate = self

Цель-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"/6499/example/nativeandbanner"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative, GADAdLoaderAdTypeGAMBanner ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

GAMBannerAdLoaderDelegate

При запросе рекламных баннеров через GADAdLoader делегат загрузчика рекламы должен соответствовать протоколу GAMBannerAdLoaderDelegate . Этот протокол включает сообщение, которое отправляется при загрузке рекламного баннера:

Быстрый

public func adLoader(_ adLoader: GADAdLoader,
    didReceive GAMBannerView: GAMBannerView)

Цель-C

- (void)adLoader:(GADAdLoader *)adLoader didReceiveGAMBannerView:(GAMBannerView *)bannerView;

Делегат загрузчика рекламы также должен указать, какие размеры баннерной рекламы следует запрашивать, отвечая на сообщение validBannerSizesForAdLoader , как показано ниже.

Быстрый

public func validBannerSizes(for adLoader: GADAdLoader) -> [NSValue] {
  return [NSValueFromGADAdSize(GADAdSizeBanner),
    NSValueFromGADAdSize(GADAdSizeMediumRectangle),
    NSValueFromGADAdSize(GADAdSizeFromCGSize(CGSize(width: 120, height: 20)))]
}

Цель-C

- (NSArray *)validBannerSizesForAdLoader:(GADAdLoader *)adLoader {
  return @[
    @(GADAdSizeBanner),
    @(GADAdSizeMediumRectangle),
    @(GADAdSizeFromCGSize(CGSizeMake(120, 20)))
  ];
}

Ручной подсчет показов

Чтобы включить ручной подсчет показов рекламных баннеров, загружаемых через GADAdLoader , при инициализации GADAdLoader установите для параметра GAMBannerViewOptions enableManualImpressions со значением YES .

Быстрый

let bannerViewOptions = GAMBannerViewOptions()
bannerViewOptions.enableManualImpressions = true
adLoader = GADAdLoader(
  adUnitID: "/6499/example/nativeandbanner", rootViewController: self,
  adTypes: [.native, .gamBanner], options: [bannerViewOptions])

Цель-C

GAMBannerViewOptions *bannerViewOptions = [[GAMBannerViewOptions alloc] init];
bannerViewOptions.enableManualImpressions = YES;
self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"/6499/example/nativeandbanner"
    rootViewController:self
               adTypes:@[ GADAdLoaderAdTypeNative, GADAdLoaderAdTypeGAMBanner ]
               options:@[ bannerViewOptions ]];

Если рекламный баннер загружается, вы можете вызвать recordManualImpression , когда определите, что объявление было успешно возвращено и отображается на экране, чтобы запустить показ вручную:

Быстрый

bannerView.recordImpression()

Цель-C

[self.bannerView recordImpression];