Annonces natives

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Les annonces natives sont des éléments d'annonce présentés aux utilisateurs via des composants d'interface utilisateur natifs sur la plate-forme. Elles s'affichent à l'aide des mêmes classes que celles utilisées dans vos story-boards, et leur format peut être adapté à la conception visuelle de votre application. Lors du chargement d'une annonce native, votre application reçoit un objet publicitaire contenant ses éléments. L'affichage de l'application dépend de cette dernière (et non du SDK). Ce format diffère des autres formats d'annonces, qui ne vous permettent pas de personnaliser l'apparence de l'annonce.

Ce guide vous explique comment utiliser le SDK Google Mobile Ads pour implémenter les annonces natives dans une application iOS. Il vous explique également certains points importants à prendre en compte.

De manière générale, la mise en œuvre des annonces natives s'effectue en deux temps : le chargement d'une annonce via le SDK et l'affichage du contenu des annonces dans l'application. Cette page traite du chargement des annonces à l'aide du SDK.

Si vous chargez déjà des annonces natives et que vous avez juste besoin de savoir comment les afficher, n'hésitez pas à consulter nos guides sur les modèles natifs ou sur les annonces natives (niveau avancé).

Prérequis

Toujours tester avec les annonces tests

Avant de commencer, n'oubliez pas que lorsque vous créez et testez vos applications, assurez-vous d'utiliser des annonces tests plutôt que des annonces de production. Les tests sur des annonces en production peuvent entraîner la suspension de votre compte.

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

ca-app-pub-3940256099942544/3986624511

Elle a été spécialement configurée pour renvoyer des annonces tests à chaque demande, et vous êtes libre de l'utiliser dans vos propres applications pour coder, tester et déboguer. Veillez simplement à le remplacer par votre propre ID de bloc d'annonces avant de publier votre application.

Pour en savoir plus sur le fonctionnement des annonces de test du SDK Mobile Ads, consultez la page Tester les annonces.

Chargement des annonces...

Les annonces natives sont chargées via des objets GADAdLoader, qui envoient des messages à leurs délégués conformément au protocole GADAdLoaderDelegate.

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 = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    rootViewController: self,
    adTypes: [ .native ],
    options: [ ... ad loader options objects ... ])
adLoader.delegate = self

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

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 à demander et aux options que vous souhaitez définir dans le paramètre options. Vous trouverez la liste des valeurs possibles pour le paramètre options sur la page Définir des options d'annonces natives.

Le tableau adTypes doit contenir cette constante:

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

Le délégué du chargeur d'annonces doit mettre en œuvre des protocoles spécifiques à votre type d'annonce. Pour les annonces natives:

  • GADNativeAdLoaderDelegate Ce protocole inclut un message envoyé au délégué lors du chargement d'une annonce native:

    Swift

    public func adLoader(_ adLoader: GADAdLoader,
        didReceive nativeAd: GADNativeAd)
    

    Objective-C

    - (void)adLoader:(GADAdLoader *)adLoader
        didReceiveNativeAd:(GADNativeAd *)nativeAd;
    

Demander l'annonce

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

Swift

adLoader.load(GADRequest())

Objective-C

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

La méthode loadRequest: dans GADAdLoader accepte les mêmes objets GADRequest 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 pour d'autres types d'annonces.

Quand demander des annonces ?

Les applications qui diffusent des annonces natives sont libres de demander à l'avance leur date d'affichage effective. Cette pratique est souvent recommandée. Par exemple, une application affichant une liste d'éléments contenant des annonces natives peut charger des annonces natives pour toute la liste, sachant que certaines ne seront affichées qu'une fois que l'utilisateur a fait défiler la vue et que d'autres peuvent ne pas s'afficher du tout.

Bien que le préchargement des annonces soit une technique efficace, il est important de ne pas laisser les anciennes annonces indéfiniment sans les afficher. Tout objet d'annonce native conservé en l'absence d'affichage pendant plus d'une heure doit être supprimé et remplacé par de nouvelles annonces issues d'une nouvelle demande.

Détermination de la fin du chargement...

Lorsqu'une application appelle loadRequest:, elle peut obtenir les résultats de la requête via des appels à:

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é.

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

Swift

class ViewController: UIViewController, GADNativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdsOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdsOptions.numberOfAds = 5

    adLoader = GADAdLoader(adUnitID: YOUR_AD_UNIT_ID, rootViewController: self,
        adTypes: [.native],
        options: [multipleAdsOptions])
    adLoader.delegate = self
    adLoader.load(GADRequest())
  }

  func adLoader(_ adLoader: GADAdLoader,
                didReceive nativeAd: GADNativeAd) {
    // A native ad has loaded, and can be displayed.
  }

  func adLoaderDidFinishLoading(_ adLoader: GADAdLoader) {
      // The adLoader has finished loading ads, and a new request can be sent.
  }

}

Objective-C

@interface ViewController () <GADNativeAdLoaderDelegate, GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

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

  self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:YOUR_AD_UNIT_ID
          rootViewController:self
                     adTypes:@[GADAdLoaderAdTypeNative]
                     options:@[multipleAdsOptions]];
  self.adLoader.delegate = self;
  [self.adLoader loadRequest:[GADRequest request]];
}

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd {
   // A native ad has loaded, and can be displayed.
}

- (void)adLoaderDidFinishLoading:(GADAdLoader *) adLoader {
  // The adLoader has finished loading ads, and a new request can be sent.
}

@end

Gérer les requêtes ayant échoué

Les protocoles ci-dessus étendent le protocole GADAdLoaderDelegate, qui définit un message envoyé en cas d'échec du chargement des annonces.

Swift

public func adLoader(_ adLoader: GADAdLoader,
    didFailToReceiveAdWithError error: NSError)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didFailToReceiveAdWithError:(NSError *)error;

Recevez des notifications concernant les événements liés aux annonces natives

Pour recevoir des notifications en cas d'événements liés aux interactions avec les annonces natives, définissez la propriété de délégation de l'annonce native:

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

Ensuite, implémentez GADNativeAdDelegate pour recevoir les appels de délégués suivants:

Swift

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

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

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

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

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

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

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 application to become inactive and
  // open a new application.
}

Diffuser votre annonce

Une fois que vous avez chargé une annonce, il vous suffit de la présenter à vos utilisateurs. Pour en savoir plus, consultez notre guide sur les annonces natives (mode avancé).