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, c'est ensuite l'application, et non GMA Next-Gen SDK, qui est responsable de leur affichage.
De manière générale, l'implémentation réussie d'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 sur les annonces natives Playbook.
Des exemples sont disponibles pour Java et Kotlin.Vous pouvez également consulter quelques témoignages de clients : étude de cas 1, étude de cas 2.
Prérequis
- Configurer GMA Next-Gen SDK.
- GMA Next-Gen SDK 0.6.0-alpha01 ou version ultérieure.
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. À défaut, votre compte risque d'être suspendu.
Le moyen le plus simple de charger des annonces tests consiste à utiliser l'ID de bloc d'annonces tests dédié aux annonces natives :
| Format d'annonce | Exemple d'ID de bloc d'annonces |
|---|---|
| Natif | ca-app-pub-3940256099942544/2247696110 |
| Création vidéo native | ca-app-pub-3940256099942544/1044960115 |
Charger une annonce
Pour charger une annonce native, appelez la NativeAdLoader.load()
méthode, qui prend un NativeAdRequest et un NativeAdLoaderCallback.
import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAd
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoader
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoaderCallback
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdRequest
class NativeFragment : Fragment() {
private var nativeAd: NativeAd? = null
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
loadAd()
}
private fun loadAd() {
// Build an ad request with native ad options to customize the ad.
val adRequest = NativeAdRequest
.Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
.build()
val adCallback =
object : NativeAdLoaderCallback {
override fun onNativeAdLoaded(nativeAd: NativeAd) {
// Called when a native ad has loaded.
}
override fun onAdFailedToLoad(adError: LoadAdError) {
// Called when a native ad has failed to load.
}
}
// Load the native ad with our request and callback.
NativeAdLoader.load(adRequest, adCallback)
}
companion object {
// Sample native ad unit ID.
const val AD_UNIT_ID = "ca-app-pub-3940256099942544/2247696110"
}
}
Définir le rappel d'événement d'annonce native
Lorsque vous gérez onNativeAdLoaded, définissez le NativeAd avec un
NativeAdEventCallback
pour définir des fonctions permettant de recevoir des événements de cycle de vie d'annonce native :
nativeAd.adEventCallback =
object : NativeAdEventCallback {
override fun onAdShowedFullScreenContent() {
// Native ad showed full screen content.
}
override fun onAdDismissedFullScreenContent() {
// Native ad dismissed full screen content.
}
override fun onAdFailedToShowFullScreenContent {
// Native ad failed to show full screen content.
}
override fun onAdImpression() {
// Native ad recorded an impression.
}
override fun onAdClicked() {
// Native ad recorded a click.
}
}
Facultatif : Charger plusieurs annonces
Pour charger plusieurs annonces, appelez load() avec le paramètre facultatif numberOfAds.
La valeur maximale que vous pouvez définir est 5, ce qui représente le nombre d'annonces.
Il est possible que le GMA Next-Gen SDK ne renvoie pas le nombre exact d'annonces que vous avez demandé.
private fun loadAd() {
// Build an ad request with native ad options to customize the ad.
val adRequest = NativeAdRequest
.Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
.build()
val adCallback =
object : NativeAdLoaderCallback {
override fun onNativeAdLoaded(nativeAd: NativeAd) {
// Called when a native ad has loaded.
}
override fun onAdFailedToLoad(adError: LoadAdError) {
// Called when a native ad has failed to load.
}
override fun onAdLoadingCompleted() {
// Called when all native ads have loaded.
}
}
// Load the native ad with our request and callback.
NativeAdLoader.load(adRequest, 3, adCallback)
}
Les annonces renvoyées par GMA Next-Gen SDK sont uniques, mais celles provenant d'un inventaire réservé ou d'acheteurs tiers peuvent ne pas l'être.
Si vous utilisez la médiation, n'appelez pas la méthode load(). Les demandes de plusieurs annonces natives ne fonctionnent pas pour les ID de blocs d'annonces configurés pour la médiation.
Bonnes pratiques
Suivez ces règles lorsque vous chargez des annonces.
Les applications qui utilisent des annonces natives dans une liste doivent mettre en cache la liste des annonces.
Lorsque vous mettez des annonces en cache, videz votre cache et rechargez-le au bout d'une heure.
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 partie de la 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.
Afficher votre annonce
Une fois que vous avez chargé une annonce, il ne vous reste plus qu'à l'afficher auprès de vos utilisateurs. Pour savoir comment procéder, consultez notre guide sur le format natif avancé .
Exemple
Téléchargez et exécutez l' exemple d'application qui illustre l'utilisation du GMA Next-Gen SDK.