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, ancrées en haut ou en bas de l'écran, ou intégrées au contenu lorsque l'utilisateur fait défiler la page. Les bannières peuvent s'actualiser automatiquement après un certain temps. Pour en savoir plus, consultez Présentation des bannières.

Ce guide vous 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 d'une largeur d'annonce que vous spécifiez.

Les bannières adaptatives ancrées sont des annonces au format fixe plutôt que les annonces standards de taille fixe. Le format est semblable à la norme du secteur : 320 x 50. Une fois que vous avez spécifié la largeur maximale disponible, vous obtenez une annonce dont la hauteur est optimale pour cette largeur. La hauteur optimale ne change pas entre les requêtes provenant d'un même appareil, et les vues environnantes n'ont pas besoin de bouger lors de l'actualisation de l'annonce.

Conditions préalables

Toujours tester avec des annonces tests

Lorsque vous créez et testez vos applications, veillez à utiliser des annonces tests plutôt que des annonces de production en ligne. À 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 a été 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 du Activity ou du Fragment dans lequel 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' AdView en place, l'étape suivante consiste à charger une annonce. Pour ce faire, utilisez la méthode loadAd() dans la classe AdView. Il utilise un paramètre AdRequest, qui contient des informations d'exécution, telles que des informations de ciblage, concernant une demande d'annonce donnée.

Voici un exemple qui montre 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 une autre de façon explicite 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 AdMob dans l'interface Web. Si vous n'avez pas activé l'actualisation, vous devrez envoyer une nouvelle requête.

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

Événements d'annonces

Vous pouvez écouter un certain nombre d'événements au cours du cycle de vie d'une annonce, y compris le chargement, les impressions et les clics sur l'annonce, ainsi que les événements d'ouverture et de fermeture de l'annonce. Nous vous recommandons de définir le rappel avant de charger la bannière.

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 du 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 à une interaction. Consultez l'exemple d'écouteur d'annonces AdMob pour découvrir comment implémenter les méthodes de l'écouteur d'annonces dans l'application de démonstration de l'API Android.
onAdFailedToLoad() La méthode onAdFailedToLoad() est la seule à inclure 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 du 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 des annonces vidéo s'affichent correctement dans vos bannières, vous devez activer l'accélération matérielle.

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 chaque activité. 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> dans 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>

Pour en savoir plus sur les options permettant de contrôler l'accélération matérielle, consultez le guide d'accélération matérielle. Notez que les visionnages d'annonces individuels ne peuvent pas être activés 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.

Autres ressources

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 superposition plus grande, avec un bouton permettant de réduire l'annonce. Pensez à l'utiliser pour optimiser davantage vos performances. Pour en savoir plus, consultez 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 hauts que l'écran de l'appareil. Les bannières adaptatives intégrées sont recommandées plutôt que les bannières adaptatives ancrées pour les applications qui affichent 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