Wprowadzając kilka zmian w kodzie, możesz połączyć reklamy natywne i banerowe w żądaniach reklamy.
Wymagania wstępne
- Google Mobile Ads SDK w wersji 7.20.0 lub nowszej.
- Skonfiguruj Google Mobile Ads SDK.
Wczytywanie reklamy
Niestandardowo renderowane reklamy natywne 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 wartości 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 obiekt delegowany modułu do ładowania 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 ładującego reklamy musi też określić, o jakie rozmiary banerów reklamowych należy prosić, odpowiadając na wiadomość 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))) ]; }
Ustaw rozmiar reklamy mniejszy niż rozmiar ekranu urządzenia lub mu równy.
Aby określić maksymalny rozmiar ekranu w systemie iOS 26 lub nowszym, użyj właściwości UIWindowScene.effectiveGeometry.coordinateSpace. W systemie iOS 18 lub starszym użyj właściwości UIWindowScene.coordinateSpace.
Szczegółowe informacje o ograniczeniach rozmiaru znajdziesz w artykule Rozwiązywanie problemów z niewypełnionymi wyświetleniami w usłudze Ad Manager.
Ręczne zliczanie wyświetleń
Aby włączyć ręczne zliczanie wyświetleń w przypadku banerów reklamowych wczytywanych przez GADAdLoader, podczas inicjowania GADAdLoader ustaw GAMBannerViewOptions z parametrem enableManualImpressions ustawionym 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 się wczyta, możesz wywołać funkcję recordManualImpression, gdy ustalisz, że reklama została pomyślnie zwrócona i jest wyświetlana na ekranie, aby ręcznie wywołać wyświetlenie:
Swift
bannerView.recordImpression()
Objective-C
[self.bannerView recordImpression];