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];