Dzięki kilku zmianom w kodzie możesz łączyć reklamy natywne i banery reklamowe w żądaniach reklam.
Wymagania wstępne
- Pakiet SDK do reklam mobilnych Google w wersji 7.20.0 lub nowszej
- Przeczytaj Przewodnik dla początkujących.
Wczytywanie reklamy
Reklamy natywne renderowane niestandardowo są ładowane za pomocą obiektów GADAdLoader
. Obiekt GADAdLoader
możesz też skonfigurować tak, aby wysyłał żądania reklam, które mogą prowadzić do wyświetlenia banera lub reklamy natywnej. Dodanie do parametru tablicy adTypes
wartości GADAdLoaderAdTypeGAMBanner
oraz typów reklam natywnych, takich jak GADAdLoaderAdTypeNative
, podczas tworzenia obiektu GADAdLoader
wskazuje, ż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 żądania banerów reklamowych za pomocą interfejsu GADAdLoader
delegowany ładownik reklam musi być zgodny z protokołem GAMBannerAdLoaderDelegate
. Ten protokół obejmuje wiadomość wysyłaną po załadowaniu banera reklamowego:
Swift
public func adLoader(_ adLoader: GADAdLoader, didReceive GAMBannerView: GAMBannerView)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader didReceiveGAMBannerView:(GAMBannerView *)bannerView;
Delegatem programu ładowania reklam musi też określić, o które rozmiary banerów ma być wysłane żądanie, 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 przez GADAdLoader
, ustaw GAMBannerViewOptions
, a w przypadku enableManualImpressions
ustaw wartość YES
podczas inicjowania GADAdLoader
.
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 załadowany, 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];