Gagner de l’argent avec une application Android n’a rien d’une chimère réservée aux géants du secteur. Grâce à AdMob, la régie publicitaire mobile de Google, diffuser des annonces et générer des revenus devient accessible à quiconque maîtrise les bonnes pratiques techniques. Ici, pas de promesse creuse : il s’agit d’apprendre à intégrer concrètement AdMob à votre application pour que chaque affichage compte.
Vous avez plusieurs cartes en main pour monétiser votre application Android : proposer un téléchargement payant, instaurer des abonnements récurrents, activer des achats intégrés, ou miser sur la publicité. Certains cumulent les approches, mais il reste souvent plus pertinent de choisir un modèle principal. Ici, place à la publicité : vous allez voir comment l’intégrer pour en tirer un revenu régulier.
Trois formats d’annonces sont au programme : bannières, interstitiels et annonces natives express. Chacun a ses spécificités et sa manière de s’implémenter. Mais avant de passer à la mise en place, attaquons la base : intégrer le SDK publicitaire et l’initialiser proprement.
Création d’un projet Android Studio
Lancez Android Studio et créez un nouveau projet baptisé MainActivity. Ce point de départ vous permettra de suivre les étapes techniques dans un environnement propre.
Inclure le SDK Mobile Ads
Pour relier AdMob à votre application, ajoutez le SDK Mobile Ads dans le fichier build.gradle de votre module :
compiler ‘com.google.android.gms:play-services-annonces:11.0.2’
Si vous souhaitez tirer parti de Firebase, utilisez plutôt l’intégration dédiée :
compiler ‘com.google.firebase:firebase-ads:11.0.2’
Des ressources détaillées sont disponibles sur Envato Tuts pour ceux qui veulent explorer Firebase plus loin.
N’oubliez pas de synchroniser votre projet après avoir ajouté les dépendances, afin que les bibliothèques soient correctement téléchargées et intégrées à votre application.
Initialiser MobileAds
Avant de pouvoir charger la moindre annonce, le SDK Mobile Ads doit être initialisé. Faites-le le plus tôt possible dans le cycle de vie de l’application. Pour cela, créez une classe qui étend Application et initialisez le SDK dans la méthode onCreate(), appelée une seule fois au lancement de l’application.
import com.google.android.gms.ads.MobileAds;
import android.app.Application;
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
MobileAds.initialize(this, « ca-app-pub-3940256099942544/6300978111 »);
}
}
Le second paramètre passé à MobileAds.initialize() doit correspondre à l’identifiant de votre application AdMob, obtenu lors de votre inscription. Ici, l’exemple utilise un identifiant de démonstration fourni par Google.
Modifier le fichier manifeste
Déclarez la classe Application que vous venez de créer dans l’attribut name de la balise application du fichier AndroidManifest.xml.
Pensez aussi à demander l’autorisation INTERNET pour permettre l’affichage des annonces.
Dans l’extrait ci-dessous, AdActivity est ajouté au manifeste :
Fichier XML à placer dans la balise application.
Cette activité, fournie par le SDK, gère l’affichage d’une bannière lorsque l’utilisateur clique sur une annonce, ou lance une publicité interstitielle selon le contexte.
1. Bannières publicitaires
Les bannières publicitaires occupent une portion de l’écran visible, affichant simultanément le contenu de votre application et la publicité. L’utilisateur garde donc tout loisir d’utiliser l’application sans coupure, contrairement aux annonces interstitielles. Une bannière peut afficher texte ou image, selon la configuration.
Voici comment procéder pour intégrer une bannière à votre application.
Ajoutez une bannière publicitaire à votre mise en page
AdView, un ViewGroup dédié, accueille la bannière. Il faut donc modifier le fichier de mise en page XML de l’activité correspondante pour y insérer AdView.
Définissez la taille souhaitée via l’attribut ads:adSize (exemples : BANNER, LARGE_BANNER, FULL_BANNER, SMART_BANNER). Plusieurs options existent selon l’ergonomie recherchée.
L’attribut ads:adUnitId doit pointer vers un bloc d’annonces spécifique à votre compte AdMob, sauf pour les phases de test où l’identifiant fourni par Google convient. Cet identifiant permet à AdMob de reconnaître le format souhaité (image, texte, vidéo) et l’emplacement de diffusion.
Télécharger l’annonce
Pour afficher une annonce dans AdView, il faut d’abord effectuer une requête, puis l’afficher dans la vue prévue. Voici un exemple d’implémentation :
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class BannerAdActivity extends AppCompatActivity {
private AdView mAdView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.build();
mAdView.loadAd(adRequest);
}
}
Ici, AdRequest.Builder crée une requête d’annonce adaptée, avec la méthode addTestDevice pour s’assurer de ne recevoir que des annonces de test sur l’émulateur. L’appel à loadAd() lance le chargement de la publicité en arrière-plan, sans perturber le fil principal de l’application.
Tester l’annonce
Il est temps de lancer le projet pour vérifier l’affichage de la bannière.
Sur l’illustration, la bannière de test apparaît bien sous la vue principale. Cliquez dessus pour constater le comportement attendu.
Écouter les événements publicitaires avec AdListener
AdMob propose plusieurs rappels pour suivre le cycle de vie d’une annonce. Les événements disponibles sont les suivants :
- onAdLoaded() : déclenché lorsque l’annonce est correctement chargée.
- onAdOpened() : appelé quand l’annonce s’ouvre.
- onAdClosed() : activé à la fermeture de l’annonce.
- onAdLeftApplication() : lorsque l’utilisateur quitte l’application à cause de l’annonce.
- onAdFailedToLoad(int errorCode) : signale une demande non aboutie (codes : ERROR_CODE_NETWORK_ERROR, ERROR_CODE_INVALID_REQUEST, ERROR_CODE_NO_FILL, ERROR_CODE_INTERNAL_ERROR).
Exemple d’utilisation dans BannerAdActivity :
// …
@Override
protected void onCreate(Bundle savedInstanceState) {
// …
mAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
super.onAdLoaded();
Toast.makeText(MainActivity.this, « onAdLoaded() », Toast.LENGTH_SHORT).show();
}
@Override
public void onAdOpened() {
super.onAdOpened();
Toast.makeText(MainActivity.this, « onAdOpened() », Toast.LENGTH_SHORT).show();
}
@Override
public void onAdClosed() {
super.onAdClosed();
Toast.makeText(MainActivity.this, « onAdClosed() », Toast.LENGTH_SHORT).show();
}
@Override
public void onAdFailedToLoad(int i) {
super.onAdFailedToLoad(i);
Toast.makeText(MainActivity.this, « onAdFailedToLoad() », Toast.LENGTH_SHORT).show();
}
@Override
public void onAdLeftApplication() {
super.onAdLeftApplication();
Toast.makeText(MainActivity.this, « onAdLeftApplication() », Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onPause() {
if (mAdView != null) {
mAdView.pause();
}
super.onPause();
}
@Override
public void onResume() {
super.onResume();
if (mAdView != null) {
mAdView.resume();
}
}
@Override
public void onDestroy() {
if (mAdView != null) {
mAdView.destroy();
}
super.onDestroy();
}
Après avoir ajouté cet écouteur, relancez le projet et interagissez avec la bannière : chaque événement déclenché affiche un message pour valider le bon fonctionnement de l’intégration.
2. Publicité interstitielle
Après les bannières, passons à l’intégration des publicités interstitielles.
Ce format occupe l’intégralité de l’écran et masque tout le reste le temps de l’affichage. Mieux vaut éviter de l’imposer à n’importe quel moment : privilégiez les pauses naturelles, comme la fin d’un niveau de jeu, pour ne pas frustrer les utilisateurs. Attention aussi au temps de chargement, qui peut s’allonger si la connexion est lente.
Voici un exemple d’implémentation :
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.InterstitialAd;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
public class InterstitialAdActivity extends AppCompatActivity {
private InterstitialAd mInterstitialAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
loadInterstitialAd();
}
private void loadInterstitialAd() {
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId(« ca-app-pub-3940256099942544/1033173712 »);
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
super.onAdLoaded();
Toast.makeText(MainActivity.this, « onAdLoaded() », Toast.LENGTH_SHORT).show();
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
}
@Override
public void onAdFailedToLoad(int i) {
super.onAdFailedToLoad(i);
Toast.makeText(MainActivity.this, « onAdFailedToLoad() », Toast.LENGTH_SHORT).show();
}
});
AdRequest adRequest = new AdRequest.Builder().build();
mInterstitialAd.loadAd(adRequest);
}
}
Dans cet exemple, une instance de InterstitialAd est créée et liée à l’identifiant d’unité fourni par Google. Un écouteur gère les événements de chargement et d’échec, affichant une notification en conséquence. Dès que l’annonce est prête, elle s’affiche.
Il est possible d’utiliser d’autres méthodes d’AdListener, comme pour les bannières, afin de personnaliser la gestion des événements.
Tester l’annonce
Lancez l’application et validez l’apparition de la publicité interstitielle.
La capture montre l’annonce interstitielle de test active et fonctionnelle.
3. Annonces natives express
Le format Native Ads Express permet d’harmoniser l’apparence des annonces avec le style graphique de votre application. Vous pouvez personnaliser les modèles CSS (polices, couleurs, tailles) depuis votre compte AdMob, mais les éléments fournis par les annonceurs (images, textes) ne sont pas modifiables.
Pour afficher ces annonces personnalisées, utilisez NativeExpressAdView dans votre mise en page.
Utiliser NativeExpressAdView dans la mise en page
Intégrez la vue NativeExpressAdView dans le layout XML de l’activité concernée, en fixant android:layout_height et android:layout_width sur wrap_content. L’exemple ci-dessous configure une annonce de taille 320×300 et utilise un identifiant de bloc d’annonces de test.
Charger l’annonce
Créez l’AdRequest correspondant et chargez l’annonce dans la vue, en ajoutant également la gestion du cycle de vie de l’activité (pause, reprise, destruction). Un AdListener peut être ajouté pour suivre les événements, comme vu précédemment.
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.NativeExpressAdView;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class NativeExpressAdActivity extends AppCompatActivity {
private NativeExpressAdView mNativeExpressAdView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_native_ad);
mNativeExpressAdView = (NativeExpressAdView) findViewById(R.id.adView);
AdRequest.Builder adRequestBuilder = new AdRequest.Builder();
adRequestBuilder.addTestDevice(AdRequest.DEVICE_ID_EMULATOR);
mNativeExpressAdView.loadAd(adRequestBuilder.build());
}
@Override
public void onResume() {
super.onResume();
mNativeExpressAdView.resume();
}
@Override
public void onPause() {
mNativeExpressAdView.pause();
super.onPause();
}
@Override
public void onDestroy() {
mNativeExpressAdView.destroy();
super.onDestroy();
}
}
Tester l’annonce
Après cette configuration, lancez l’application et observez l’affichage de l’annonce native express.
Créer un compte AdMob
Pour passer à la vitesse supérieure et diffuser de véritables annonces générant des revenus, il faut un compte AdMob et des identifiants de blocs d’annonces liés à votre application. Rendez-vous sur le site officiel d’AdMob pour vous inscrire et obtenir tout le nécessaire.
À retenir
Maîtriser AdMob, c’est ouvrir la porte d’une monétisation efficace sur Android, en combinant bannières, interstitiels et annonces natives selon la nature de votre application. Les ressources officielles apportent des compléments précieux pour aller plus loin. Le reste ne tient qu’à une chose : tester, ajuster et trouver la configuration qui transformera chaque affichage en opportunité.






