Wystarczy 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ą
GADAdLoader
obiektów. Obiekt GADAdLoader można też skonfigurować tak, aby wysyłał żądania reklamy, które mogą skutkować wyświetleniem banera reklamowego lub reklamy natywnej. Dodanie
GADAdLoaderAdTypeGAMBanner do parametru tablicy adTypes wraz z
typami reklam natywnych, takimi jak GADAdLoaderAdTypeNative podczas tworzenia obiektu
GADAdLoader określa, że banery reklamowe 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. Ten protokół zawiera komunikat wysyłany po wczytaniu 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 banerów reklamowych należy wysyłać żądania, odpowiadając na komunikat validBannerSizesForAdLoader, jak pokazano 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ń
banerów reklamowych wczytywanych za pomocą GADAdLoader, podczas inicjowania GADAdLoader ustaw
GAMBannerViewOptions
z wartością enableManualImpressions ustawioną na YES.
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ć recordManualImpression, gdy stwierdzisz, że reklama została prawidłowo zwrócona i jest widoczna na ekranie, aby ręcznie uruchomić wyświetlenie:
Swift
bannerView.recordImpression()
Objective-C
[self.bannerView recordImpression];