Anfragen für benutzerdefiniert gerenderte native Anzeigen und Banneranzeigen kombinieren

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

Vorbereitung

  • Version 7.20.0 oder höher des Google Mobile Ads SDK
  • Führen Sie den Startleitfaden aus.

Anzeigen werden 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 zu einer nativen Anzeige führen können. Wenn Sie dem Arrayparameter adTypes beim Erstellen des GADAdLoader-Objekts GADAdLoaderAdTypeGAMBanner und native Anzeigentypen wie GADAdLoaderAdTypeNative hinzufügen, wird festgelegt, 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 Banneranzeigen über die GADAdLoader angefordert werden, muss der Anzeigen-Lade-Delegierte 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 AdLoader-Delegierte 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)))
  ];
}

Manuelle Impressionszählung

Wenn Sie die manuelle Impressionszählung für Banneranzeigen aktivieren möchten, die über GADAdLoader geladen werden, legen Sie beim Initialisieren von GADAdLoader eine GAMBannerViewOptions mit enableManualImpressions = 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 und auf dem Bildschirm angezeigt wird, um manuell eine Impression auszulösen:

Swift

bannerView.recordImpression()

Objective-C

[self.bannerView recordImpression];