Внеся несколько изменений в свой код, вы можете объединить нативную и баннерную рекламу в запросах на показ рекламы.
Предварительные требования
- Версия 7.20.0 или выше Google Mobile Ads SDK .
- Настройте Google Mobile Ads SDK .
Загрузка рекламы
Пользовательские нативные объявления загружаются с помощью объектов GADAdLoader . Объект GADAdLoader также можно настроить для отправки запросов на показ рекламы, результатом которых может быть либо баннерная, либо нативная реклама. Добавление GADAdLoaderAdTypeGAMBanner в параметр массива adTypes вместе с типами нативной рекламы, такими как GADAdLoaderAdTypeNative при создании объекта GADAdLoader указывает, что баннерная реклама должна конкурировать с нативной рекламой за выполнение запроса.
Быстрый
adLoader = GADAdLoader(adUnitID: "/21775744923/example/native-and-banner", rootViewController: self, adTypes: [.native, .gamBanner], options: [... ad loader options objects ...]) adLoader.delegate = self
Objective-C
self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"/21775744923/example/native-and-banner" 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)
Objective-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)))] }
Objective-C
- (NSArray*)validBannerSizesForAdLoader:(GADAdLoader *)adLoader { return @[ @(GADAdSizeBanner), @(GADAdSizeMediumRectangle), @(GADAdSizeFromCGSize(CGSizeMake(120, 20))) ]; }
Ручной подсчет оттисков
Чтобы включить ручной подсчет показов баннерной рекламы, загружаемой через GADAdLoader , установите параметр GAMBannerViewOptions со enableManualImpressions равным YES при инициализации GADAdLoader .
Быстрый
let bannerViewOptions = GAMBannerViewOptions() bannerViewOptions.enableManualImpressions = true adLoader = GADAdLoader( adUnitID: "/21775744923/example/native-and-banner", rootViewController: self, adTypes: [.native, .gamBanner], options: [bannerViewOptions])
Objective-C
GAMBannerViewOptions *bannerViewOptions = [[GAMBannerViewOptions alloc] init]; bannerViewOptions.enableManualImpressions = YES; self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"/21775744923/example/native-and-banner" rootViewController:self adTypes:@[ GADAdLoaderAdTypeNative, GADAdLoaderAdTypeGAMBanner ] options:@[ bannerViewOptions ]];
Если загружается баннерная реклама, вы можете вызвать recordManualImpression когда убедитесь, что реклама успешно получена и отображается на экране, чтобы вручную запустить показ:
Быстрый
bannerView.recordImpression()
Objective-C
[self.bannerView recordImpression];