Combiner les demandes d'annonces natives avec affichage personnalisé et de bannières

En apportant quelques modifications à votre code, vous pouvez combiner des annonces natives et des bannières dans vos demandes d'annonces.

Prérequis

  • Version 7.20.0 ou ultérieure du SDK Google Mobile Ads
  • Suivez le guide de démarrage.

Charger une annonce

Les annonces natives affichées de manière personnalisée sont chargées via des objets GADAdLoader. L'objet GADAdLoader peut également être configuré pour effectuer des requêtes d'annonces pouvant générer une bannière ou une annonce native. Ajouter GADAdLoaderAdTypeGAMBanner au paramètre de tableau adTypes, ainsi que des types d'annonces natives tels que GADAdLoaderAdTypeNative lors de la création de l'objet GADAdLoader spécifie que les bannières doivent rivaliser avec les annonces natives pour répondre à la requête.

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

Lorsque vous demandez des bannières publicitaires via GADAdLoader, le délégué du chargeur d'annonces doit se conformer au protocole GAMBannerAdLoaderDelegate. Ce protocole inclut un message envoyé lorsqu'une bannière publicitaire a été chargée:

Swift

public func adLoader(_ adLoader: GADAdLoader,
    didReceive GAMBannerView: GAMBannerView)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didReceiveGAMBannerView:(GAMBannerView *)bannerView;

Le délégué du chargeur d'annonces doit également spécifier les tailles d'annonces en bannière à demander en répondant au message validBannerSizesForAdLoader, comme indiqué ci-dessous.

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

Comptage manuel des impressions

Pour activer le comptage manuel des impressions sur les bannières publicitaires chargées via GADAdLoader, définissez un GAMBannerViewOptions avec enableManualImpressions défini sur YES lors de l'initialisation de GADAdLoader.

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

Si une bannière publicitaire est chargée, vous pouvez appeler recordManualImpression lorsque vous déterminez qu'une annonce a bien été renvoyée et qu'elle est à l'écran pour déclencher manuellement une impression:

Swift

bannerView.recordImpression()

Objective-C

[self.bannerView recordImpression];