Внеся несколько изменений в свой код, вы можете объединить нативную и баннерную рекламу в запросах на показ рекламы.
Предварительные требования
- Version 7.20.0 or higher of Google Mobile Ads SDK .
- Настройте Google Mobile Ads SDK .
Загрузка рекламы
Custom-rendered native ads are loaded via GADAdLoader objects. The GADAdLoader object can also be configured to make ad requests that can result in either a banner or native ad. Adding GADAdLoaderAdTypeGAMBanner to the adTypes array parameter, along with native ad types such as GADAdLoaderAdTypeNative when creating the GADAdLoader object specifies that banner ads should compete with native ads to fill the request.
Быстрый
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];