Bannières

Les bannières sont des annonces rectangulaires qui occupent une partie de la mise en page d'une application. Elles restent à l'écran lorsque les utilisateurs interagissent avec l'application, soit ancrées en haut ou en bas de l'écran, soit intégrées au contenu lorsque l'utilisateur fait défiler la page. Les bannières peuvent s'actualiser automatiquement au bout d'un certain temps. Pour en savoir plus, consultez Présentation des bannières.

Ce guide explique comment faire vos premiers pas avec les bannières adaptatives ancrées, qui maximisent les performances en optimisant la taille d'annonce pour chaque appareil à l'aide de la largeur d'annonce que vous spécifiez.

Les bannières adaptatives ancrées sont des annonces dont le format est fixe plutôt que les annonces standards de taille fixe. Le format est similaire au standard industriel 320 x 50. Une fois que vous avez spécifié la largeur maximale disponible, vous obtiendrez une annonce avec une hauteur optimale pour cette largeur. La hauteur optimale ne change pas selon les requêtes provenant du même appareil, et les vues environnantes n'ont pas besoin de se déplacer lorsque l'annonce est actualisée.

Prérequis

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. À défaut, votre compte risque d'être suspendu.

Le moyen le plus simple de charger des annonces tests consiste à utiliser notre ID de bloc d'annonces test dédié aux bannières Android:

ca-app-pub-3940256099942544/9214589741

Il est spécialement configuré pour renvoyer des annonces tests pour chaque requête. 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 le fonctionnement des annonces tests du SDK Mobile Ads, consultez Annonces tests.

Ajouter AdView à la mise en page

Pour afficher une bannière, la première étape consiste à placer AdView dans la mise en page de l'élément Activity ou Fragment où vous souhaitez l'afficher :

Java

private AdSize getAdSize() {
  // Determine the screen width (less decorations) to use for the ad width.
  Display display = getWindowManager().getDefaultDisplay();
  DisplayMetrics outMetrics = new DisplayMetrics();
  display.getMetrics(outMetrics);

  float density = outMetrics.density;

  float adWidthPixels = adContainerView.getWidth();

  // If the ad hasn't been laid out, default to the full screen width.
  if (adWidthPixels == 0) {
    adWidthPixels = outMetrics.widthPixels;
  }

  int adWidth = (int) (adWidthPixels / density);
  return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
}

private void loadBanner() {
  
  // Create a new ad view.
  AdView adView = new AdView(this);
  adView.setAdSizes(getAdSize());
  adView.setAdUnitId("ca-app-pub-3940256099942544/9214589741");

  // Replace ad container with new ad view.
  adContainerView.removeAllViews();
  adContainerView.addView(adView);

  // Start loading the ad in the background.
  AdRequest adRequest = new AdRequest.Builder().build();
  adView.loadAd(adRequest);
}

Kotlin


// Determine the screen width (less decorations) to use for the ad width.
// If the ad hasn't been laid out, default to the full screen width.
private val adSize: AdSize
  get() {
    val display = windowManager.defaultDisplay
    val outMetrics = DisplayMetrics()
    display.getMetrics(outMetrics)

    val density = outMetrics.density

    var adWidthPixels = binding.adViewContainer.width.toFloat()
    if (adWidthPixels == 0f) {
      adWidthPixels = outMetrics.widthPixels.toFloat()
    }

    val adWidth = (adWidthPixels / density).toInt()
    return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
  }

private fun loadBanner() {
  
  // Create a new ad view.
  val adView = AdView(this)
  adView.adSizes = adSize
  adView.adUnitId = "ca-app-pub-3940256099942544/9214589741"

  // Create an ad request.
  val adRequest = AdRequest.Builder().build()

  // Start loading the ad in the background.
  adView.loadAd(adRequest)
}

Charger une annonce

Une fois l'élément AdView en place, l'étape suivante consiste à charger une annonce. Pour ce faire, utilisez la méthode loadAd() de la classe AdView. Il utilise un paramètre AdRequest, qui contient des informations d'exécution, telles que les informations de ciblage, sur une seule demande d'annonce.

Voici un exemple illustrant comment charger une annonce dans la méthode onCreate() d'un Activity:

Java

private void loadBanner() {
  // Create a new ad view.
  adView = new AdView(this);
  adView.setAdUnitId(AD_UNIT);
  adView.setAdSize(getAdSize());
  
  // Replace ad container with new ad view.
  adContainerView.removeAllViews();
  adContainerView.addView(adView);

  // Start loading the ad in the background.
  AdRequest adRequest = new AdRequest.Builder().build();
  adView.loadAd(adRequest);
}

Kotlin

private fun loadBanner() {
  // This is an ad unit ID for a test ad. Replace with your own banner ad unit ID.
  adView.adUnitId = "/6499/example/banner"
  adView.setAdSize(adSize)
  
  // Create an ad request.
  val adRequest = AdRequest.Builder().build()

  // Start loading the ad in the background.
  adView.loadAd(adRequest)
}

Si votre annonce ne se charge pas, vous n'avez pas besoin d'en demander explicitement une autre tant que vous avez configuré l'actualisation de votre bloc d'annonces. Le SDK Google Mobile Ads respecte la fréquence d'actualisation que vous avez spécifiée AdMobdans l'interface Web. Si vous n'avez pas activé l'actualisation, vous devez émettre une nouvelle requête.

Et voilà ! Votre application est maintenant prête à diffuser des bannières.

Événements d'annonce

Pour personnaliser davantage le comportement de votre annonce, vous pouvez vous connecter à un certain nombre d'événements qui font partie de son cycle de vie: chargement, ouverture, fermeture, etc. Vous pouvez écouter ces événements via la classe AdListener.

Pour utiliser un AdListener avec AdView, appelez la méthode setAdListener():

Java

AdView.setAdListener(new AdListener() {
    @Override
    public void onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    @Override
    public void onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
      // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    @Override
    public void onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
});

Kotlin

AdView.adListener = object: AdListener() {
    override fun onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    override fun onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    override fun onAdFailedToLoad(adError : LoadAdError) {
      // Code to be executed when an ad request fails.
    }

    override fun onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    override fun onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    override fun onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
}

Chacune des méthodes pouvant être remplacées dans AdListener correspond à un événement dans le cycle de vie d'une annonce.

Méthodes remplaçables
onAdClicked() La méthode onAdClicked() est appelée lorsqu'un clic est enregistré pour une annonce.
onAdClosed() La méthode onAdClosed() est appelée lorsqu'un utilisateur revient dans l'application après avoir consulté l'URL de destination d'une annonce. Votre application peut l'utiliser pour reprendre des activités suspendues ou effectuer toute autre tâche nécessaire pour se préparer à interagir. Reportez-vous à l'exemple AdListener AdMob pour découvrir comment implémenter les méthodes d'écouteur d'annonces dans l'application de démonstration de l'API Android.
onAdFailedToLoad() La méthode onAdFailedToLoad() est la seule qui inclut un paramètre. Le paramètre d'erreur de type LoadAdError décrit l'erreur qui s'est produite. Pour en savoir plus, consultez la documentation sur le débogage des erreurs de chargement d'annonces.
onAdImpression() La méthode onAdImpression() est appelée lorsqu'une impression est enregistrée pour une annonce.
onAdLoaded() La méthode onAdLoaded() est exécutée lorsque le chargement d'une annonce est terminé. Si vous souhaitez retarder l'ajout de AdView à votre activité ou fragment jusqu'à ce que vous soyez sûr qu'une annonce sera chargée, par exemple, vous pouvez le faire ici.
onAdOpened() La méthode onAdOpened() est appelée lorsqu'une annonce ouvre une superposition qui recouvre l'écran.

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

Pour que les annonces vidéo s'affichent correctement dans les affichages de bannières, 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 Activity qui utilisent des annonces.

Activer l'accélération matérielle

Si votre application ne se comporte pas correctement lorsque l'accélération matérielle est activée dans le monde entier, vous pouvez également la contrôler pour des activités individuelles. Pour activer ou désactiver l'accélération matérielle, vous pouvez utiliser l'attribut android:hardwareAccelerated pour les éléments <application> et <activity> de votre AndroidManifest.xml. L'exemple suivant active l'accélération matérielle 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>

Consultez le guide d'accélération matérielle pour en savoir plus sur les options de contrôle de 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 sur l'activité elle-même.

Ressources supplémentaires

Exemples sur GitHub

  • Exemple de bannières adaptatives ancrées : Java | Kotlin
  • Démonstration des fonctionnalités avancées : Java | Kotlin

Étapes suivantes

Bannières réductibles

Les bannières réductibles sont des bannières qui sont initialement présentées sous la forme d'une plus grande superposition, avec un bouton permettant de réduire l'annonce. Pensez à l'utiliser pour optimiser davantage vos performances. Pour en savoir plus, consultez l'article sur les bannières réductibles.

Bannières adaptatives intégrées

Les bannières adaptatives intégrées sont plus grandes et plus grandes que les bannières adaptatives ancrées. Ils sont de hauteur variable et peuvent être aussi grands que l’écran de l’appareil. Les bannières adaptatives intégrées sont recommandées par rapport aux bannières adaptatives ancrées pour les applications qui placent des bannières dans du contenu à faire défiler. Pour en savoir plus, consultez la section Bannières adaptatives intégrées.

Découvrir d'autres sujets