Charger une annonce native

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 via des composants d'interface utilisateur natifs pour la plate-forme. Elles s'affichent à l'aide des mêmes types de vues que ceux que vous utilisez déjà pour créer vos mises en page, et peuvent être mises 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, et c'est ensuite l'application, et non Google Mobile Ads SDK, qui est responsable de leur affichage.

De manière générale, l'implémentation réussie des annonces natives comporte deux parties : le chargement d'une annonce à l'aide du SDK, puis l'affichage du contenu de l'annonce dans votre application.

Cette page explique comment utiliser le SDK pour charger des annonces natives. Conseil : Pour en savoir plus sur les annonces natives, consultez notre guide des annonces natives Playbook.

Vous pouvez également consulter des témoignages de clients : étude de cas 1, étude de cas 2.

Prérequis

Avant de continuer, configurez Google Mobile Ads SDK.

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 l'ID de bloc d'annonces tests dédié aux annonces natives sur Android :

ca-app-pub-3940256099942544/2247696110

Il a été spécialement configuré pour renvoyer des annonces tests pour chaque requête. Vous pouvez l'utiliser dans vos propres applications lors de la programmation, 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 Google Mobile Ads SDK, consultez Activer les annonces tests.

Charger des annonces

Les annonces natives sont chargées avec la AdLoader classe, qui possède sa propre Builder classe pour la personnaliser lors de la création. En ajoutant des écouteurs à AdLoader lors de sa création, une application spécifie les types d'annonces natives qu'elle est prête à recevoir. AdLoader ne demande alors que ces types.

Créer un AdLoader

Le code suivant montre comment créer un AdLoader capable de charger des annonces natives :

Java

// It is recommended to call AdLoader.Builder on a background thread.
new Thread(
        () -> {
          AdLoader adLoader =
              new AdLoader.Builder(context, "AD_UNIT_ID")
                  .forNativeAd(
                      new NativeAd.OnNativeAdLoadedListener() {
                        @Override
                        // The native ad loaded successfully. You can show the ad.
                        public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {}
                      })
                  .withAdListener(
                      new AdListener() {
                        @Override
                        // The native ad load failed. Check the adError message for failure
                        // reasons.
                        public void onAdFailedToLoad(@NonNull LoadAdError adError) {}
                      })
                  // Use the NativeAdOptions.Builder class to specify individual options
                  // settings.
                  .withNativeAdOptions(new NativeAdOptions.Builder().build())
                  .build();
        })
    .start();

Kotlin

// It is recommended to call AdLoader.Builder on a background thread.
CoroutineScope(Dispatchers.IO).launch {
  val adLoader =
    AdLoader.Builder(context, "AD_UNIT_ID")
      .forNativeAd { nativeAd ->
        // The native ad loaded successfully. You can show the ad.
      }
      .withAdListener(
        object : AdListener() {
          override fun onAdFailedToLoad(adError: LoadAdError) {
            // The native ad load failed. Check the adError message for failure reasons.
          }
        }
      )
      // Use the NativeAdOptions.Builder class to specify individual options settings.
      .withNativeAdOptions(NativeAdOptions.Builder().build())
      .build()
}

Remplacez AD_UNIT_ID par l'ID de votre appareil de test.

La forNativeAd() méthode est chargée de préparer le AdLoader pour le format NativeAd. Lorsqu'une annonce a été chargée, la méthode onNativeAdLoaded() de l'objet écouteur est appelée.

Configurer un AdListener avec AdLoader (facultatif)

Lors de la création de AdLoader, la withAdListener fonction définit un AdListener pour le chargeur. La méthode accepte un AdListener comme seul paramètre, qui reçoit des rappels de AdLoader lorsque des événements de cycle de vie des annonces se produisent :

Java

adLoaderBuilder.withAdListener(
    // Override AdListener callbacks here.
    new AdListener() {});

Kotlin

adLoaderBuilder.withAdListener(
  // Override AdListener callbacks here.
  object : AdListener() {}
)

Demander des annonces

Une fois que vous avez créé un AdLoader, il est temps de l'utiliser pour demander des annonces. Deux méthodes sont disponibles à cet effet : loadAd() et loadAds().

loadAd()

Cette méthode envoie une demande pour une seule annonce.

Java

adLoader.loadAd(new AdRequest.Builder().build());

Kotlin

adLoader.loadAd(AdRequest.Builder().build())

loadAds()

Cette méthode envoie une demande pour plusieurs annonces (jusqu'à cinq) :

Java

// Load three native ads.
adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

// Load three native ads.
adLoader.loadAds(AdRequest.Builder().build(), 3)

Les deux méthodes acceptent un AdRequest objet comme premier paramètre. Il s'agit de la même AdRequest classe que celle utilisée par les bannières et les interstitiels, et vous pouvez utiliser les méthodes de la AdRequest classe pour ajouter des informations de ciblage, comme vous le feriez avec d'autres formats d'annonces.

Charger plusieurs annonces (facultatif)

La méthode loadAds() accepte un paramètre supplémentaire : le nombre d'annonces que le SDK doit tenter de charger pour la requête. Ce nombre est limité à cinq, et 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 les annonces provenant d'un inventaire réservé ou d'acheteurs tiers ne sont pas garanties d'être uniques.

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

Rappels

Après un appel à loadAd(), un seul rappel est effectué vers les méthodes d'écouteur précédemment définies pour fournir l'objet d'annonce native ou signaler une erreur.

Après un appel à loadAds(), plusieurs rappels de ce type sont effectués (au moins un, et pas plus que le nombre d'annonces demandées). Les applications qui demandent plusieurs annonces doivent appeler AdLoader.isLoading() dans leurs implémentations de rappel pour déterminer si le processus de chargement est terminé.

Voici un exemple montrant comment vérifier isLoading() dans le rappel onNativeAdLoaded() :

Java

adLoaderBuilder
    .forNativeAd(
        nativeAd -> {
          // This callback is invoked when a native ad is successfully loaded.
        })
    .build();

Kotlin

adLoaderBuilder
  .forNativeAd { nativeAd ->
    // This callback is invoked when a native ad is successfully loaded.
  }
  .build()

Libérer les ressources

Veillez à utiliser la méthode destroy() sur les annonces natives chargées. Cela libère les ressources utilisées et évite les fuites de mémoire.

Vérifiez que toutes les références NativeAd sont détruites dans la méthode onDestroy() de votre activité.

Dans votre rappel onNativeAdLoaded, veillez à détruire toutes les annonces natives existantes qui seront déréférencées.

Une autre vérification clé consiste à déterminer si l'activité est détruite. Si c'est le cas, appelez destroy() sur l'annonce renvoyée et revenez immédiatement :

Java

nativeAd.destroy();

Kotlin

nativeAd.destroy()

Bonnes pratiques

Suivez ces règles lors du chargement des annonces.

  • Les applications qui utilisent des annonces natives dans une liste doivent mettre en cache la liste des annonces.

  • Lorsque vous mettez en cache des annonces, videz votre cache et rechargez-le au bout d'une heure.

  • N'appelez pas loadAd() ou loadAds() sur un AdLoader tant que le chargement de la première requête n'est pas terminé.
  • Limitez la mise en cache des annonces natives à ce qui est nécessaire. Par exemple, lors de la mise en cache, ne mettez en cache que les annonces immédiatement visibles à l'écran. Les annonces natives occupent une grande quantité de mémoire. 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.

Accélération matérielle pour les annonces vidéo

Pour que les annonces vidéo s'affichent correctement dans vos vues d'annonces natives, l'accélération matérielle doit être activée.

L'accélération matérielle est activée par défaut, mais certaines applications peuvent choisir de la désactiver. Si cela s'applique à votre application, nous vous recommandons d'activer l'accélération matérielle pour les classes d'activité qui utilisent des annonces.

Activer l'accélération matérielle

Si l'accélération matérielle est activée de façon globale et que votre application n'adopte pas le comportement attendu, vous pouvez également la contrôler pour chaque activité. Pour activer ou désactiver l'accélération matérielle, utilisez l'attribut android:hardwareAcceleratedpour les <application> et <activity> éléments dans votre AndroidManifest.xml. L'exemple suivant active l'accélération matérielle sur l'ensemble de l'application, mais la désactive pour une activité :

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

Pour en savoir plus sur les options de contrôle de l’accélération matérielle, consultez le guide sur l’ accélération matérielle. Notez que les vues d'annonces individuelles ne peuvent pas être activées pour l'accélération matérielle si l'activité est désactivée. L'accélération matérielle doit donc être activée pour l'activité elle-même.

Diffuser votre annonce

Une fois que vous avez chargé une annonce, il ne vous reste plus qu'à la diffuser auprès de vos utilisateurs. Pour savoir comment procéder, consultez notre guide sur le format natif avancé .