Mit einigen Änderungen an Ihrem Code können Sie native Anzeigen und Banneranzeigen in Ihren Anzeigenanfragen kombinieren.
Vorbereitung
- Version 7.20.0 oder höher von Google Mobile Ads SDK.
- Google Mobile Ads SDK einrichten
Anzeige wird geladen
Benutzerdefiniert gerenderte native Anzeigen werden über GADAdLoader-Objekte geladen. Das GADAdLoader-Objekt kann auch so konfiguriert werden, dass Anzeigenanfragen gestellt werden, die entweder zu einer Banner- oder einer nativen Anzeige führen können. Wenn Sie beim Erstellen des GADAdLoader-Objekts GADAdLoaderAdTypeGAMBanner dem Array-Parameter adTypes zusammen mit nativen Anzeigentypen wie GADAdLoaderAdTypeNative hinzufügen, wird angegeben, dass Banneranzeigen mit nativen Anzeigen konkurrieren sollen, um die Anfrage zu erfüllen.
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
Wenn Sie Banneranzeigen über die GADAdLoader anfordern, muss der Ad Loader-Delegate dem GAMBannerAdLoaderDelegate-Protokoll entsprechen. Dieses Protokoll enthält eine Nachricht, die gesendet wird, wenn eine Banneranzeige geladen wurde:
Swift
public func adLoader(_ adLoader: GADAdLoader, didReceive GAMBannerView: GAMBannerView)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader didReceiveGAMBannerView:(GAMBannerView *)bannerView;
Der Anzeigenlader-Delegate muss auch angeben, welche Banneranzeigengrößen angefordert werden sollen. Dazu muss er wie unten gezeigt auf die validBannerSizesForAdLoader-Nachricht antworten.
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))) ]; }
Manuelles Zählen von Impressionen
Wenn Sie die manuelle Impressionenzählung für Banneranzeigen aktivieren möchten, die über GADAdLoader geladen werden, legen Sie beim Initialisieren von GADAdLoader ein GAMBannerViewOptions mit enableManualImpressions auf YES fest.
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 ]];
Wenn eine Banneranzeige geladen wird, können Sie recordManualImpression aufrufen, wenn Sie feststellen, dass eine Anzeige erfolgreich zurückgegeben wurde und auf dem Bildschirm angezeigt wird, um eine Impression manuell auszulösen:
Swift
bannerView.recordImpression()
Objective-C
[self.bannerView recordImpression];