Wystarczy wprowadzić kilka zmian w kodzie, aby połączyć reklamy natywne i banery reklamowe w żądaniach reklamy.
Wymagania wstępne
- wersja 7.20.0 lub nowsza Google Mobile Ads SDK;
- Skonfiguruj Google Mobile Ads SDK.
Wczytywanie reklamy
Reklamy natywne renderowane niestandardowo są wczytywane za pomocą obiektów
GADAdLoader. Obiekt GADAdLoader można też skonfigurować tak, aby wysyłał żądania reklam, które mogą skutkować wyświetleniem banera lub reklamy natywnej. Dodanie
GADAdLoaderAdTypeGAMBanner do parametru tablicy adTypes wraz z typami reklam natywnych, takimi jak GADAdLoaderAdTypeNative, podczas tworzenia obiektu GADAdLoader oznacza, że reklamy banerowe powinny konkurować z reklamami natywnymi o wypełnienie żądania.
Swift
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
Podczas wysyłania żądań banerów reklamowych za pomocą GADAdLoader delegat modułu wczytywania reklam musi być zgodny z protokołem GAMBannerAdLoaderDelegate. Protokół ten obejmuje komunikat wysyłany po załadowaniu banera reklamowego:
Swift
public func adLoader(_ adLoader: GADAdLoader, didReceive GAMBannerView: GAMBannerView)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader didReceiveGAMBannerView:(GAMBannerView *)bannerView;
Delegat modułu wczytywania reklam musi też określić, o jakie rozmiary reklam banerowych należy wysyłać prośby, odpowiadając na wiadomość validBannerSizesForAdLoader w sposób pokazany poniżej.
Swift
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))) ]; }
Ręczne zliczanie wyświetleń
Aby włączyć ręczne zliczanie wyświetleń w przypadku reklam banerowych wczytywanych za pomocą GADAdLoader, podczas inicjowania GADAdLoader ustaw wartość GAMBannerViewOptions na enableManualImpressions, a wartość YES na enableManualImpressions.
Swift
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 ]];
Jeśli baner reklamowy zostanie wczytany, możesz wywołać funkcję recordManualImpression, gdy stwierdzisz, że reklama została zwrócona i jest widoczna na ekranie, aby ręcznie wywołać wyświetlenie:
Swift
bannerView.recordImpression()
Objective-C
[self.bannerView recordImpression];