Wystarczy wprowadzić kilka zmian w kodzie, aby połączyć reklamy natywne i banery reklamowe w żądaniach reklamy.
Wymagania wstępne
- Pakiet SDK do reklam mobilnych Google w wersji 7.20.0 lub nowszej
- Zapoznaj się z przewodnikiem dla początkujących.
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 w odpowiedzi na żądanie mają być wyświetlane reklamy banerowe i reklamy natywne.
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
W przypadku wysyłania żądań dotyczących 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ć żądania, 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 banerów reklamowych 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];