Annonces natives

Sélectionnez une plate-forme : Android (bêta) Nouveau Android iOS Flutter Unity

Les annonces natives sont des composants d'annonce présentés aux utilisateurs à l'aide de composants d'interface utilisateur natifs pour la plate-forme. Ils sont affichés à l'aide des mêmes classes que celles que vous utilisez déjà dans vos storyboards et peuvent être mis en forme pour correspondre à la conception visuelle de votre application.

Lorsqu'une annonce native est chargée, votre application reçoit un objet d'annonce contenant ses composants. L'application, et non le SDK Google Mobile Ads, est alors responsable de leur affichage.

Pour implémenter correctement les annonces natives, vous devez effectuer deux étapes : charger une annonce à l'aide du SDK, puis afficher le contenu de l'annonce dans votre application.

Cette page explique comment utiliser le SDK pour charger des annonces natives.

Prérequis

Toujours effectuer des tests avec des annonces tests

Lorsque vous créez et testez vos applications, assurez-vous d'utiliser des annonces tests plutôt que des annonces de production.

Le moyen le plus simple de charger des annonces tests consiste à utiliser notre ID de bloc d'annonces test dédié pour les annonces natives sur iOS :

/21775744923/example/native

Il a été spécialement configuré pour renvoyer des annonces tests pour chaque demande. Vous pouvez l'utiliser dans vos propres applications lors du codage, des tests et du débogage. Veillez simplement à le remplacer par votre propre ID de bloc d'annonces avant de publier votre application.

Pour en savoir plus sur les annonces tests du SDK Google Mobile Ads, consultez Activer les annonces tests.

Charger des annonces

Les annonces natives sont chargées avec la classe GADAdLoader, qui envoie des messages à ses délégués en fonction du protocole GADAdLoaderDelegate.

En plus du format natif défini par le système, vous pouvez également créer vos propres formats d'annonces natives personnalisés qui peuvent être utilisés pour les annonces natives vendues directement. Les formats personnalisés d'annonces natives vous permettent de transmettre des données structurées arbitraires à votre application. Ces annonces sont représentées par la classe GADCustomNativeAd.

Initialiser le chargeur d'annonces

Avant de pouvoir charger une annonce, vous devez initialiser le chargeur d'annonces. Le code suivant montre comment initialiser un GADAdLoader :

Swift

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  // The UIViewController parameter is optional.
  rootViewController: self,
  // To receive native ads, the ad loader's delegate must
  // conform to the NativeAdLoaderDelegate protocol.
  adTypes: [.native],
  // Use nil for default options.
  options: nil)

Remplacez nativeAdUnitID par l'ID de votre bloc d'annonces.

Objective-C

self.adLoader =
    [[GADAdLoader alloc] initWithAdUnitID:"kNativeAdUnitID"
                       // The UIViewController parameter is optional.
                       rootViewController:self
                                  // To receive native ads, the ad loader's delegate must
                                  // conform to the NativeAdLoaderDelegate protocol.
                                  adTypes:@[ GADAdLoaderAdTypeNative ]
                                  // Use nil for default options.
                                  options:nil];

Remplacez kNativeAdUnitID par l'ID de votre bloc d'annonces.

Vous aurez besoin d'un ID de bloc d'annonces (vous pouvez utiliser l'ID de test), de constantes à transmettre dans le tableau adTypes pour spécifier les formats natifs que vous souhaitez demander, et de toutes les options que vous souhaitez définir dans le paramètre options. La liste des valeurs possibles pour le paramètre options est disponible sur la page Définir les options des annonces natives.

Le tableau adTypes doit contenir une ou plusieurs des constantes suivantes :

Implémenter le délégué du chargeur d'annonces

Le délégué du chargeur d'annonces doit implémenter des protocoles spécifiques à votre type d'annonce. Pour les annonces natives, le protocole GADNativeAdLoaderDelegate inclut un message envoyé au délégué lorsqu'une annonce native a été chargée.

Swift

func adLoader(_ adLoader: AdLoader, didReceive nativeAd: NativeAd) {
  // To be notified of events related to the native ad interactions, set the delegate property
  // of the native ad
  nativeAd.delegate = self

  // TODO: Display the native ad.
}

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didReceiveNativeAd:(GADNativeAd *)nativeAd {
  // To be notified of events related to the native ad interactions, set the delegate property
  // of the native ad
  nativeAd.delegate = self;

  // TODO: Display the native ad.
}

Le protocole GADCustomNativeAdLoaderDelegate inclut un message envoyé au délégué lorsqu'une annonce de modèle personnalisé a été chargée.

Swift

func adLoader(_ adLoader: AdLoader, didReceive customNativeAd: CustomNativeAd) {
  // To be notified of events related to the custom native ad interactions, set the delegate
  // property of the native ad
  customNativeAd.delegate = self

  // TODO: Display the custom native ad.
}

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveCustomNativeAd:(GADCustomNativeAd *)customNativeAd {
  // To be notified of events related to the custom native ad interactions, set the delegate
  // property of the native ad
  customNativeAd.delegate = self;

  // TODO: Display the custom native ad.
}

Demander des annonces

Une fois votre GADAdLoader initialisé, appelez sa méthode loadRequest: pour demander une annonce :

Swift

adLoader.load(AdManagerRequest())

Objective-C

[self.adLoader loadRequest:[GAMRequest request]];

La méthode loadRequest: dans GADAdLoader accepte les mêmes objets GAMRequest que les bannières et les interstitiels. Vous pouvez utiliser des objets de requête pour ajouter des informations de ciblage, comme vous le feriez avec d'autres types d'annonces.

Charger plusieurs annonces (facultatif)

Pour charger plusieurs annonces dans une même requête, définissez l'objet GADMultipleAdsAdLoaderOptions lors de l'initialisation d'un GADAdLoader.

Swift

let multipleAdOptions = MultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5
adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  // The UIViewController parameter is optional.
  rootViewController: self,
  adTypes: [.native],
  options: [multipleAdOptions])

Objective-C

GADMultipleAdsAdLoaderOptions *multipleAdOptions = [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdOptions.numberOfAds = 5;

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"kNativeAdUnitID"
                                   // The UIViewController parameter is optional.
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ multipleAdOptions ]];

Le nombre d'annonces par demande est limité à cinq. De plus, il n'est pas garanti que le SDK renvoie le nombre exact d'annonces demandées.

Les annonces Google renvoyées seront toutes différentes les unes des autres, mais il n'est pas garanti que les annonces provenant d'un inventaire réservé ou d'acheteurs tiers soient uniques.

N'utilisez pas la classe GADMultipleAdsAdLoaderOptions si vous utilisez la médiation, car les demandes pour plusieurs annonces natives ne fonctionnent pas pour les ID de blocs d'annonces qui ont été configurés pour la médiation.

Déterminer quand le chargement est terminé

Une fois qu'une application appelle loadRequest:, elle peut obtenir les résultats de la requête à l'aide des appels suivants :

Une demande pour une seule annonce entraînera un appel à l'une de ces méthodes.

Une demande pour plusieurs annonces entraînera au moins un rappel des méthodes ci-dessus, mais pas plus que le nombre maximal d'annonces demandées.

De plus, GADAdLoaderDelegate propose le rappel adLoaderDidFinishLoading. Cette méthode de délégué indique qu'un chargeur d'annonces a terminé de charger des annonces et qu'aucune autre annonce ni erreur ne sera signalée pour la demande. Voici un exemple d'utilisation lors du chargement de plusieurs annonces natives à la fois :

Swift

func adLoaderDidFinishLoading(_ adLoader: AdLoader) {
  // The adLoader has finished loading ads.
}

Objective-C

- (void)adLoaderDidFinishLoading:(GADAdLoader *)adLoader {
  // The adLoader has finished loading ads.
}

Gérer les demandes ayant échoué

Les protocoles étendent le protocole GADAdLoaderDelegate, qui définit un message envoyé lorsque les annonces ne parviennent pas à se charger.

Swift

func adLoader(_ adLoader: AdLoader, didFailToReceiveAdWithError error: any Error) {
  // The adLoader failed to receive an ad.
}

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didFailToReceiveAdWithError:(NSError *)error {
  // The adLoader failed to receive an ad.
}

Recevoir des notifications pour les événements d'annonces natives

Pour être averti des événements liés aux interactions avec les annonces natives, définissez la propriété déléguée de l'annonce native :

Swift

// Set the delegate before making an ad request.
adLoader.delegate = self

Objective-C

// Set the delegate before making an ad request.
self.adLoader.delegate = self;

Implémentez ensuite GADNativeAdDelegate pour recevoir les appels de délégué suivants :

Swift

func nativeAdDidRecordImpression(_ nativeAd: NativeAd) {
  // The native ad was shown.
}

func nativeAdDidRecordClick(_ nativeAd: NativeAd) {
  // The native ad was clicked on.
}

func nativeAdWillPresentScreen(_ nativeAd: NativeAd) {
  // The native ad will present a full screen view.
}

func nativeAdWillDismissScreen(_ nativeAd: NativeAd) {
  // The native ad will dismiss a full screen view.
}

func nativeAdDidDismissScreen(_ nativeAd: NativeAd) {
  // The native ad did dismiss a full screen view.
}

func nativeAdWillLeaveApplication(_ nativeAd: NativeAd) {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

Objective-C

- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
  // The native ad was shown.
}

- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
  // The native ad was clicked on.
}

- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
  // The native ad will present a full screen view.
}

- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad will dismiss a full screen view.
}

- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad did dismiss a full screen view.
}

- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

Bonnes pratiques

Suivez ces règles lorsque vous chargez des annonces.

  • Les applications qui utilisent des annonces natives dans une liste doivent précharger la liste des annonces.

  • Lorsque vous prémettez des annonces en cache, videz votre cache et rechargez la page au bout d'une heure.

  • N'appelez pas loadRequest: à nouveau sur un GADAdLoader tant que la requête précédente n'a pas fini de se charger, comme indiqué par adLoaderDidFinishLoading:.

  • Limitez la mise en cache des annonces natives à ce qui est nécessaire. Par exemple, lors de la mise en cache anticipée, ne mettez en cache que les annonces immédiatement visibles à l'écran. Les annonces natives ont une empreinte mémoire importante. La mise en cache des annonces natives sans les détruire entraîne une utilisation excessive de la mémoire.

  • Détruisez les annonces natives lorsqu'elles ne sont plus utilisées.

Diffuser votre annonce

Une fois l'annonce chargée, il ne vous reste plus qu'à la diffuser auprès de vos utilisateurs. Pour en savoir plus, consultez notre guide sur les annonces natives avancées.