Anfragen für benutzerdefiniert gerenderte native Anzeigen und Banneranzeigen kombinieren

Mit nur wenigen Änderungen am Code können Sie in Ihren Anzeigenanfragen native und Banneranzeigen kombinieren.

Voraussetzungen

  • Google Mobile Ads SDK: Version 7.20.0 oder höher
  • Arbeiten Sie den Startleitfaden durch.

Anzeige wird geladen

Benutzerdefinierte 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 nativen Anzeige führen können. Wenn Sie GADAdLoaderAdTypeGAMBanner zum Array-Parameter adTypes hinzufügen, geben Sie zusammen mit nativen Anzeigentypen wie GADAdLoaderAdTypeNative beim Erstellen des GADAdLoader-Objekts an, dass Banneranzeigen mit nativen Anzeigen konkurrieren sollen, um die Anfrage auszuführen.

Swift

adLoader = GADAdLoader(adUnitID: "/6499/example/nativeandbanner",
    rootViewController: self,
    adTypes: [.native, .gamBanner],
    options: [... ad loader options objects ...])
adLoader.delegate = self

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"/6499/example/nativeandbanner"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative, GADAdLoaderAdTypeGAMBanner ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

GAMBannerAdLoaderDelegate

Wenn Banneranzeigen über GADAdLoader angefragt werden, muss der AdLoader-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-Delegate muss außerdem angeben, welche Größen für Banneranzeigen angefordert werden sollen. Dazu wird auf die Meldung validBannerSizesForAdLoader geantwortet (siehe unten).

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

Manuelle Impressionszählung

Damit die manuelle Zählung von Impressionen für Banneranzeigen, die über GADAdLoader geladen werden, aktiviert werden kann, legen Sie einen GAMBannerViewOptions fest, wobei enableManualImpressions beim Initialisieren von GADAdLoader auf YES gesetzt ist.

Swift

let bannerViewOptions = GAMBannerViewOptions()
bannerViewOptions.enableManualImpressions = true
adLoader = GADAdLoader(
  adUnitID: "/6499/example/nativeandbanner", rootViewController: self,
  adTypes: [.native, .gamBanner], options: [bannerViewOptions])

Objective-C

GAMBannerViewOptions *bannerViewOptions = [[GAMBannerViewOptions alloc] init];
bannerViewOptions.enableManualImpressions = YES;
self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"/6499/example/nativeandbanner"
    rootViewController:self
               adTypes:@[ GADAdLoaderAdTypeNative, GADAdLoaderAdTypeGAMBanner ]
               options:@[ bannerViewOptions ]];

Wenn eine Banneranzeige geladen wird, können Sie recordManualImpression aufrufen, wenn Sie feststellen, dass eine Anzeige zurückgegeben wurde und auf dem Bildschirm zu sehen ist, um manuell eine Impression auszulösen:

Swift

bannerView.recordImpression()

Objective-C

[self.bannerView recordImpression];