Les annonces natives sont des éléments qui sont présentés aux utilisateurs via des composants d'interface utilisateur qui sont natifs sur la plate-forme. Elles s'affichent avec les mêmes types de vues que que vous créez déjà vos mises en page. Vous pouvez les mettre en forme pour s'adapter la conception visuelle de l'application.
Lors du chargement d'une annonce native, votre application reçoit un objet d'annonce contenant ses éléments, et l'application, au lieu du SDK Google Mobile Ads, chargée de les afficher.
De manière générale, la mise en œuvre d'annonces natives s'effectue en deux étapes: Chargement d'une annonce à l'aide du SDK, puis affichage du contenu de l'annonce dans votre application.
Cette page explique comment utiliser le SDK pour charger annonces natives. Conseil: Pour en savoir plus sur les annonces natives, consultez notre page Annonces natives Playbook.
Vous pouvez également consulter des témoignages de clients: étude de cas 1, étude de cas 2.
Prérequis
- Suivez le guide de démarrage.
Toujours tester 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 Android:
ca-app-pub-3940256099942544/2247696110
Il a été spécialement configuré pour afficher des annonces tests pour chaque demande. et l'utiliser dans vos propres applications lors du codage, des tests et du débogage. Assurez-vous simplement que remplacez-le par votre propre ID de bloc d'annonces avant de publier votre application.
Pour en savoir plus sur le fonctionnement des annonces tests du SDK Google Mobile Ads, consultez Tester les annonces
Charger les annonces
Les annonces natives sont chargées
la classe AdLoader
,
qui possède sa propre
Builder
pour le personnaliser lors de la création. En ajoutant des écouteurs à AdLoader
lors de sa création, l'application spécifie les types d'annonces natives qu'elle est prête à diffuser
recevoir. Le AdLoader
ne demande alors que ces types.
Créer un adLoader
Le code suivant montre comment créer une AdLoader
capable de charger des éléments natifs
annonces:
Java
AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
// Show the ad.
}
})
.withAdListener(new AdListener() {
@Override
public void onAdFailedToLoad(LoadAdError adError) {
// Handle the failure by logging, altering the UI, and so on.
}
})
.withNativeAdOptions(new NativeAdOptions.Builder()
// Methods in the NativeAdOptions.Builder class can be
// used here to specify individual options settings.
.build())
.build();
Kotlin
val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110}")
.forNativeAd { ad : NativeAd ->
// Show the ad.
}
.withAdListener(object : AdListener() {
override fun onAdFailedToLoad(adError: LoadAdError) {
// Handle the failure.
}
})
.withNativeAdOptions(NativeAdOptions.Builder()
// Methods in the NativeAdOptions.Builder class can be
// used here to specify individual options settings.
.build())
.build()
La
forNativeAd()
est chargée de préparer AdLoader
pour le format NativeAd
.
Lorsqu'une annonce a bien été chargée, l'objet onNativeAdLoaded()
de l'objet écouteur
est appelée.
Configurer un objet AdListener avec AdLoader (facultatif)
Lors de la création de l'AdLoader
, la
withAdListener
définit une
AdListener
pour
Loader. La méthode utilise un AdListener
comme paramètre unique, qui reçoit
rappels à partir de AdLoader
lorsque des événements de cycle de vie d'annonce ont lieu:
Java
.withAdListener(new AdListener() {
// AdListener callbacks can be overridden here.
})
Kotlin
.withAdListener(object : AdListener() {
// AdListener callbacks can be overridden here.
})
Demander des annonces
Une fois que vous avez terminé de créer une AdLoader
, vous pouvez l'utiliser pour demander des annonces.
Deux méthodes sont disponibles pour cela: 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
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
adLoader.loadAds(AdRequest.Builder().build(), 3)
Les deux méthodes prennent une
AdRequest
comme premier paramètre. C'est la même chose
AdRequest
utilisée par les bannières et les interstitiels,
Vous pouvez aussi utiliser les méthodes de la classe AdRequest
pour
ajoutez des informations de ciblage, tout comme
que pour d'autres formats d'annonces.
Charger plusieurs annonces (facultatif)
La méthode loadAds()
utilise un paramètre supplémentaire: le nombre d'annonces que le SDK
doit tenter de charger la requête. Ce nombre est plafonné à cinq
et il est
il n'est pas garanti que le SDK affichera le nombre exact d'annonces demandées.
Les annonces Google renvoyées seront toutes différentes les unes des autres, bien que les annonces provenant de un inventaire réservé ou des acheteurs tiers ne sont pas forcément uniques.
N'utilisez pas la méthode loadAds()
si vous avez recours à la médiation, car les demandes de
plusieurs annonces natives ne fonctionnent pas pour les ID de bloc d'annonces
configuré pour la médiation.
Rappels
Après un appel à loadAd()
, un seul rappel est effectué au niveau précédemment défini.
méthodes d'écouteur pour diffuser 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 dans la limite du nombre d'annonces demandées). Applications demandant plusieurs annonces
doit appeler AdLoader.isLoading()
dans ses implémentations de rappel pour
pour déterminer si le processus de chargement est terminé.
Voici un exemple montrant comment vérifier isLoading()
dans
Rappel onNativeAdLoaded()
:
Java
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
...
// some code that displays the ad.
...
if (adLoader.isLoading()) {
// The AdLoader is still loading ads.
// Expect more adLoaded or onAdFailedToLoad callbacks.
} else {
// The AdLoader has finished loading ads.
}
}
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd {
...
// some code that displays the ad.
...
if (adLoader.isLoading) {
// The AdLoader is still loading ads.
// Expect more adLoaded or onAdFailedToLoad callbacks.
} else {
// The AdLoader has finished loading ads.
}
}.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)
Libérer les ressources
Veillez à utiliser la méthode destroy()
sur les annonces natives chargées. Cette date de sortie
utilise des ressources et empêche les fuites de mémoire.
Assurez-vous que toutes les références NativeAd
sont détruites dans le
onDestroy()
.
Dans votre rappel onNativeAdLoaded
, veillez à détruire tous les éléments existants
des annonces natives qui seront déréférencées.
Une autre vérification de clé consiste à vérifier si l'activité est détruite et, le cas échéant, à appeler destroy()
sur
l'annonce renvoyée et affiche immédiatement le résultat suivant:
Java
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
// If this callback occurs after the activity is destroyed, you
// must call destroy and return or you may get a memory leak.
// Note `isDestroyed()` is a method on Activity.
if (isDestroyed()) {
nativeAd.destroy();
return;
}
...
}
}).build();
Kotlin
lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd { nativeAd ->
// If this callback occurs after the activity is destroyed, you
// must call destroy and return or you may get a memory leak.
// Note `isDestroyed` is a method on Activity.
if (isDestroyed) {
nativeAd.destroy()
return@forNativeAd
}
...
}.build()
Bonnes pratiques
Suivez ces règles lors du chargement des annonces.
Les applications qui utilisent des annonces natives dans une liste doivent effectuer une mise en cache préalable de la liste d'annonces.
Lorsque vous mettez en cache des annonces, effacez votre cache et actualisez la page au bout d'une heure.
N'appelez pas
loadAd()
niloadAds()
sur unAdLoader
jusqu'au premier le chargement de la requête est terminé.
Accélération matérielle pour les annonces vidéo
Pour que vos annonces vidéo s'affichent correctement dans les visionnages d'annonces natives, matérielle accélération doit être activée.
L'accélération matérielle est activée par défaut, mais certaines applications peuvent choisir de le désactiver. Si votre application est concernée, nous vous recommandons d'activer le matériel pour les classes d'activité qui utilisent des annonces.
Activer l'accélération matérielle
Si votre application ne se comporte pas correctement avec l'accélération matérielle activée
de façon globale, mais vous pouvez aussi le contrôler pour des activités spécifiques. Pour activer ou
désactiver l'accélération matérielle, utiliser l'attribut android:hardwareAccelerated
pour le
<application>
et
<activity>
dans votre AndroidManifest.xml
. L'exemple suivant active le matériel
pour 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>
Reportez-vous à la métrique Accélération matérielle guide des en savoir plus sur les options de contrôle de l'accélération matérielle. Remarque que les visionnages d'annonces individuels ne peuvent pas être activés pour l'accélération matérielle L'activité est désactivée. L'activité elle-même doit donc disposer de l'accélération matérielle. est activé.
Afficher votre annonce
Une fois l'annonce chargée, il ne vous reste plus qu'à la présenter à vos utilisateurs. Accédez à notre atelier natif avancé guide pour savoir comment procéder.