Anfragen für benutzerdefiniert gerenderte native Anzeigen und Banneranzeigen kombinieren

Mit einigen Änderungen an Ihrem Code können Sie native Anzeigen und Banneranzeigen in Ihren Anzeigenanfragen kombinieren.

Vorbereitung

  • Google Mobile Ads SDK: Version 7.20.0 oder höher
  • Führen Sie die Schritte im Startleitfaden aus.

Anzeige wird geladen

Benutzerdefiniert gerenderte native Anzeigen werden über GADAdLoader-Objekte geladen. Das GADAdLoader-Objekt kann auch so konfiguriert werden, dass Anzeigenanfragen gesendet werden, die entweder zu einer Banner- oder einer nativen Anzeige führen können. Wenn Sie GADAdLoaderAdTypeGAMBanner dem Array-Parameter adTypes zusammen mit nativen Anzeigentypen wie GADAdLoaderAdTypeNative beim Erstellen des GADAdLoader-Objekts 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 Anzeigenlader-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 Ad Loader-Delegat muss auch angeben, welche Banneranzeigengrößen angefordert werden sollen. Dazu muss er auf die validBannerSizesForAdLoader-Nachricht antworten, wie unten gezeigt.

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 Zählung von Impressionen 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];