Внеся несколько изменений в код, вы сможете комбинировать нативную и баннерную рекламу в своих запросах объявлений.
Предварительные условия
- Версия 7.20.0 или выше 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
Цель-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)
Цель-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: "/21775744923/example/native-and-banner", rootViewController: self, adTypes: [.native, .gamBanner], options: [bannerViewOptions])
Цель-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()
Цель-C
[self.bannerView recordImpression];