Bannières

Les bannières occupent un emplacement dans la mise en page d'une application, en haut ou en bas de l'écran de l'appareil. Elles restent à l'écran lorsque les utilisateurs interagissent avec l'application et peuvent s'actualiser automatiquement après un certain temps. Si vous découvrez la publicité mobile, elle constitue un excellent point de départ. Étude de cas.

Ce guide vous explique comment intégrer des bannièresAdMob dans une application Android. En plus des extraits de code et des instructions, il contient des informations sur le dimensionnement correct des bannières ainsi que des liens vers des ressources supplémentaires.

Conditions préalables

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. Pour ce faire, le plus simple est d'en ajouter un au fichier de mise en page XML correspondant. Voici un exemple qui montre l'élément AdView d'une activité:

# main_activity.xml
<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"
    ads:adSize="BANNER"
    ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
</com.google.android.gms.ads.AdView>

Notez les attributs obligatoires suivants:

  • ads:adSize: indiquez la taille d'annonce de votre choix. Si vous ne souhaitez pas utiliser la taille standard définie par la constante, vous pouvez définir une taille personnalisée à la place. Pour en savoir plus, consultez la section Taille de la bannière.

  • ads:adUnitId: indiquez l'identifiant unique attribué au bloc d'annonces dans votre application dans lequel les annonces doivent être diffusées. Si vous diffusez des bannières dans différentes activités, chacune d'elles nécessite un bloc d'annonces.

Vous pouvez également créer AdView par programmation:

Java

AdView adView = new AdView(this);

adView.setAdSize(AdSize.BANNER);

adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
// TODO: Add adView to your view hierarchy.

Kotlin

val adView = AdView(this)

adView.adSize = AdSize.BANNER

adView.adUnitId = "ca-app-pub-3940256099942544/6300978111"
// TODO: Add adView to your view hierarchy.

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. À 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/6300978111

Il est spécialement configuré pour renvoyer des annonces tests pour chaque demande. Vous pouvez l'utiliser dans vos propres applications lors du codage, des tests et du débogage. Veillez simplement à remplacer cet ID 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.

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. Elle utilise un paramètre AdRequest, qui contient les informations d'exécution, telles que les informations de ciblage, sur une seule demande d'annonce.

Voici un exemple de chargement d'une annonce dans la méthode onCreate() d'un Activity:

MainActivity (extrait)

Java

package ...

import ...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

public class MainActivity extends AppCompatActivity {
    private AdView mAdView;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });

        mAdView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    }
}

Kotlin

package ...

import ...
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView

class MainActivity : AppCompatActivity() {

    lateinit var mAdView : AdView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        MobileAds.initialize(this) {}

        mAdView = findViewById(R.id.adView)
        val adRequest = AdRequest.Builder().build()
        mAdView.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 dans l'interface WebAdMob . 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 du cycle de vie de l'annonce: 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

mAdView.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

mAdView.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 pouvant être remplacées
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 d'écouteur d'annonces AdMob pour 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 des annonces.
onAdImpression() La méthode onAdImpression() est appelée lorsqu'une impression est enregistrée pour une annonce.
onAdLoaded() La méthode onAdLoaded() s'exécute lorsque le chargement d'une annonce est terminé. Par exemple, si vous souhaitez retarder l'ajout de AdView à votre activité ou fragment jusqu'à ce que vous soyez sûr qu'une annonce va être chargée, vous pouvez le faire ici.
onAdOpened() La méthode onAdOpened() est appelée lorsqu'une annonce ouvre une superposition qui recouvre l'écran.

La taille du conteneur dans lequel vous placez votre annonce doit être au moins égale à celle de la bannière. Si votre conteneur dispose d'une marge intérieure, cela réduit sa taille. Si le conteneur ne peut pas accueillir la bannière, celle-ci ne s'affiche pas et l'avertissement suivant apparaît dans les journaux:

W/Ads: Not enough space to show ad. Needs 320x50 dp, but only has 288x495 dp.

Le tableau ci-dessous liste les tailles de bannières standards.

Taille en dp (LxH) Description Garantie de disponibilité Constante AdSize
320x50 Bannière Téléphones et tablettes BANNER
320 x 100 Grande bannière Téléphones et tablettes LARGE_BANNER
300 x 250 Rectangle moyen IAB Téléphones et tablettes MEDIUM_RECTANGLE
468 x 60 Bannière grande taille IAB Tablettes FULL_BANNER
728 x 90 Classement IAB Tablettes LEADERBOARD
Largeur fournie x Hauteur adaptative Bannière adaptative Téléphones et tablettes N/A
Largeur de l'écran x 32|50|90 Bannière intelligente Téléphones et tablettes SMART_BANNER

Pour définir une taille de bannière personnalisée, définissez la AdSize souhaitée, comme indiqué ci-dessous:

Java

AdSize adSize = new AdSize(300, 50);

Kotlin

val adSize = AdSize(300, 50)

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

Pour que les annonces vidéo s'affichent correctement dans les affichages de vos 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 affichages 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 sur l'activité elle-même.

Ressources supplémentaires

Exemples sur GitHub

  • Exemple de bannières : Java | Kotlin

  • Démonstration des fonctionnalités avancées : Java | Kotlin

  • Application exemple de bannière RecyclerView : Java

Tutoriels vidéo Mobile Ads pour les Pros

Témoignages

Étapes suivantes

Explorez les sujets suivants: