Firebase
Crashlytics
est un outil léger de création de rapports d'erreur en temps réel qui vous permet de gérer facilement les problèmes de stabilité dans votre application. Crashlytics vous fait gagner du temps en regroupant intelligemment les plantages et en mettant en évidence les circonstances qui les ont provoqués.
Ce guide explique comment intégrer Crashlytics à votre projet Android Studio afin de pouvoir consigner les ID de réponse des annonces. Plus tard, lorsque vous résolvez les plantages dans votre application, vous pouvez rechercher l'ID de réponse d'annonce et utiliser le centre de vérification des annonces dans AdMob pour trouver et bloquer les annonces.
Étape 1 : Ajouter Firebase à une application Android
Si vous souhaitez essayer de vous connecter avec Firebase à partir d'une application propre, vous pouvez télécharger ou cloner les exemples du SDK Google Mobile Ads pour Android repository sur GitHub. Ce guide utilise spécifiquement l'exemple de bannière.
Si vous avez déjà une application, vous devriez pouvoir passer aux autres étapes avec le nom de package de votre application. Les mêmes étapes peuvent également être appliquées à d'autres exemples du dépôt, avec quelques adaptations mineures.
Pour utiliser Firebase Crashlytics, vous devez créer un projet Firebase et y ajouter votre application. Si ce n'est pas déjà fait, créez un projet Firebase. Veillez à enregistrer votre application.
Sur la page Crashlytics de la console Firebase, cliquez sur Configurer Crashlytics.
Sur l'écran qui s'affiche, cliquez sur Non > Configurer une nouvelle application Firebase.
Dans votre fichier build.gradle, ajoutez les dépendances pour Google Analytics, Fabric et Crashlytics.
app/build.gradle
applyplugin:'com.android.application'applyplugin:'com.google.gms.google-services'// Add the Fabric pluginapplyplugin:'io.fabric'dependencies{// ...// Add Google Mobile Ads SDKimplementation'com.google.android.gms:play-services-ads:24.5.0'// Add the Firebase Crashlytics dependency.implementation'com.google.firebase:firebase-crashlytics:20.0.1'}
Créez et exécutez votre application pour vous assurer que Crashlytics est correctement configuré. Une fois l'opération réussie, vous pourrez accéder au tableau de bord Crashlytics.
Dans Android Studio, compilez et exécutez votre application sur un émulateur ou un appareil connecté.
Une fois l'application chargée, vous pouvez cliquer sur le bouton Crash (Plantage). Relancez l'application depuis l'appareil ou Android Studio pour que le rapport d'erreur soit importé dans Crashlytics.
Étape 2 : Enregistrez l'ID de réponse de l'annonce
Si vous chargez plusieurs annonces et les affichez à différents moments, il est conseillé de consigner l'ID de réponse de chaque annonce avec une clé distincte. Par exemple, ce guide utilise un exemple qui ne comporte qu'une seule bannière publicitaire. Par conséquent, nous enregistrons l'ID de réponse de l'annonce en tant que clé banner_ad_response_id dans l'extrait suivant. En effet, vous pouvez créer plusieurs paires clé / valeur personnalisées dans Firebase Crashlytics pour différents types d'annonces et d'événements publicitaires (voir AdListener pour le cycle de vie des annonces). Pour en savoir plus sur la journalisation personnalisée, consultez Personnaliser vos rapports d'erreur Firebase Crashlytics.
Ajoutez le code suivant à votre MyActivity.java. Essentiellement, il utilise la fonction FirebaseCrashlytics.setCustomKey() dans la fonction de rappel onAdLoaded() pour s'assurer que l'annonce a été chargée avant de tenter d'appeler getResponseInfo().
Félicitations ! Vous verrez désormais le banner_ad_response_id le plus récent dans la section clé des sessions de plantage de votre tableau de bord Crashlytics. Notez que certaines clés peuvent mettre jusqu'à une heure à s'afficher dans votre tableau de bord.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/05 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/05 (UTC)."],[[["\u003cp\u003eFirebase Crashlytics is integrated into your Android app to help manage and troubleshoot app stability issues.\u003c/p\u003e\n"],["\u003cp\u003eBy logging ad response IDs with Crashlytics, you can identify and block problematic ads using AdMob's Ad Review Center.\u003c/p\u003e\n"],["\u003cp\u003eThis guide provides step-by-step instructions to set up Crashlytics, log ad response IDs, and optionally test the implementation by forcing a crash.\u003c/p\u003e\n"],["\u003cp\u003eCustom keys, such as the ad response ID, might take up to an hour to appear in your Firebase Crashlytics dashboard.\u003c/p\u003e\n"]]],[],null,["Select platform: [Android](/admob/android/crashlytics \"View this page for the Android platform docs.\") [iOS](/admob/ios/crashlytics \"View this page for the iOS platform docs.\") [Unity](/admob/unity/crashlytics \"View this page for the Unity platform docs.\")\n\n\u003cbr /\u003e\n\n[Firebase\nCrashlytics](//firebase.google.com/docs/crashlytics/get-started-new-sdk?platform=android)\nis a lightweight, realtime crash reporter that makes it easy for you to manage\nstability issues in your app. Crashlytics saves you troubleshooting time by\nintelligently grouping crashes and highlighting the circumstances that lead up\nto them.\n\nThis guide describes how to integrate Crashlytics into your Android Studio\nproject so that you can log ad response IDs. Later, when you troubleshoot\ncrashes in your app, you can look up the ad response ID and use the Ad Review\nCenter in\n\n[AdMob](//support.google.com/admob/answer/3500252)\n\nto find and block the ads.\n\n**Step 1:** Add Firebase to an Android application\n\n1. If you would like to try logging with Firebase from a clean app, you can\n download or clone Google Mobile Ads SDK examples for Android\n [repository](//github.com/googleads/googleads-mobile-android-examples) on\n GitHub. This guide specifically uses the\n\n [Banner Example](//github.com/googleads/googleads-mobile-android-examples/tree/main/java/admob/BannerExample).\n\n\n If you already have an app, you should be able to proceed to other steps\n with your app's package name. The same steps can also be applied to other\n examples in the repository with minor adaptations.\n2. In order to use Firebase Crashlytics, you must create a Firebase project and\n add your app to it. If you haven't already, create a Firebase project. Make\n sure to [register your\n app](//firebase.google.com/docs/android/setup#register-app) to it.\n\n 1. In the Crashlytics page of the Firebase console, click **Set up\n Crashlytics**.\n\n 2. In the screen that appears, click **No** \\\u003e **Set up a new Firebase\n app**.\n\n3. In your build.gradle, add the dependencies for Google Analytics, Fabric, and\n Crashlytics.\n\n app/build.gradle \n\n ```carbon\n apply plugin: 'com.android.application'\n apply plugin: 'com.google.gms.google-services'\n\n // Add the Fabric plugin\n apply plugin: 'io.fabric'\n\n dependencies {\n // ...\n\n // Add Google Mobile Ads SDK\n implementation 'com.google.android.gms:play-services-ads:24.5.0'\n\n // Add the Firebase Crashlytics dependency.\n implementation 'com.google.firebase:firebase-crashlytics:20.0.1'\n }\n ```\n\n project/build.gradle \n\n ```text\n buildscript {\n repositories {\n // ...\n // Add Google's Maven repository.\n google()\n }\n\n dependencies {\n // ...\n\n classpath 'com.google.gms:google-services:4.4.3'\n\n // Add the Fabric Crashlytics plugin.\n classpath 'com.google.firebase:firebase-crashlytics-gradle:3.0.6'\n }\n }\n\n allprojects {\n // ...\n repositories {\n // Check that Google's Maven repository is included (if not, add it).\n google()\n\n // ...\n }\n }\n ```\n4. Build and run your app to make sure to make sure Crashlytics is configured\n correctly. Once successful, you will be able to access the Crashlytics\n dashboard.\n\n**(Optional): Test your Setup**\n\nBy [Adding a crash\nbutton](//firebase.google.com/docs/crashlytics/test-implementation?platform=android)\nyou can force a crash for causing an app crash with each button press.\n\nHere's an example that shows how to add a crash button in the `onCreate()` method of an\n`Activity`:\n\nMainActivity (excerpt) \n\nJava \n\n```java\nprotected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n setContentView(R.layout.activity_my);\n\n // Gets the ad view defined in layout/ad_fragment.xml with ad unit ID set in\n // values/strings.xml.\n adView = findViewById(R.id.ad_view);\n\n // Start loading the ad in the background.\n adView.loadAd(new AdRequest.Builder().build());\n\n // Add a crash button.\n Button crashButton = new Button(this);\n crashButton.setText(\"Crash!\");\n crashButton.setOnClickListener(new View.OnClickListener() {\n public void onClick(View view) {\n throw new RuntimeException(\"Test Crash\"); // Force a crash\n }\n });\n\n addContentView(crashButton, new ViewGroup.LayoutParams(\n ViewGroup.LayoutParams.MATCH_PARENT,\n ViewGroup.LayoutParams.WRAP_CONTENT));\n}\n```\n\nKotlin \n\n```kotlin\noverride fun onCreate(savedInstanceState: Bundle?) {\n super.onCreate(savedInstanceState)\n setContentView(R.layout.activity_my)\n\n // Gets the ad view defined in layout/ad_fragment.xml with ad unit ID set in\n // values/strings.xml.\n adView = findViewById(R.id.ad_view)\n\n // Start loading the ad in the background.\n adView.loadAd(AdRequest.Builder().build())\n\n // Add a crash button.\n val crashButton = Button(this)\n crashButton.text = \"Crash!\"\n crashButton.setOnClickListener {\n throw RuntimeException(\"Test Crash\") // Force a crash\n }\n\n addContentView(crashButton, ViewGroup.LayoutParams(\n ViewGroup.LayoutParams.MATCH_PARENT,\n ViewGroup.LayoutParams.WRAP_CONTENT))\n}\n```\n\nIn Android Studio, build and run your app on an emulator or a connected device.\nAfter the app is loaded, you can click the **Crash** button. Relaunch the app\nfrom the device or Android Studio for the crash log to be uploaded to\nCrashlyics.\n| **Key Point:** While the crash and session data might be visible instantly in the Firebase console, custom keys may take an hour or more to propagate.\n\n**Step 2:** Log the ad response ID\n\nIf you load multiple ads and show them at different times, it is a good idea to\nlog each ad response Id with a separate key. For instance, this guide uses an\nexample that has only one banner ad. Hence, we log the ad response ID as the\n`banner_ad_response_id` key in the following snippet. Indeed you can create\nmultiple custom key / value pairs in Firebase Crashlytics for different ad types\nand ad events (see\n[`AdListener`](/admob/android/reference/com/google/android/gms/ads/AdListener) for\nad's life cycle). Visit [Customize your Firebase Crashlytics crash\nreports](//firebase.google.com/docs/crashlytics/customize-crash-reports?platform=android)\nfor more information on custom logging.\n\nAdd the following code to your `MyActivity.java`. Essentially, it uses the\n[`FirebaseCrashlytics.setCustomKey()`](//firebase.google.com/docs/reference/android/com/google/firebase/crashlytics/FirebaseCrashlytics#public-void-setcustomkey-string-key,-long-value)\nfunction in the `onAdLoaded()` callback function to ensure that the ad has\nloaded before attempting to call `getResponseInfo()`. \n\nJava \n\n```java\nprotected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n setContentView(R.layout.activity_my);\n\n // Gets the ad view defined in layout/ad_fragment.xml with ad unit ID set in\n // values/strings.xml.\n adView = findViewById(R.id.ad_view);\n\n adView.setAdListener(new AdListener() {\n @Override\n public void onAdLoaded() {\n String adResponseId = adView.getResponseInfo().getResponseId();\n FirebaseCrashlytics.getInstance().setCustomKey(\n \"banner_ad_response_id\", adResponseId);\n }\n });\n\n // Start loading the ad in the background.\n adView.loadAd(new AdRequest.Builder().build());\n\n // Add a crash button.\n Button crashButton = new Button(this);\n crashButton.setText(\"Crash!\");\n crashButton.setOnClickListener(new View.OnClickListener() {\n public void onClick(View view) {\n throw new RuntimeException(\"Test Crash\"); // Force a crash\n }\n });\n\n addContentView(crashButton, new ViewGroup.LayoutParams(\n ViewGroup.LayoutParams.MATCH_PARENT,\n ViewGroup.LayoutParams.WRAP_CONTENT));\n}\n```\n\nKotlin \n\n```kotlin\noverride fun onCreate(savedInstanceState: Bundle?) {\n super.onCreate(savedInstanceState)\n setContentView(R.layout.activity_my)\n\n // Gets the ad view defined in layout/ad_fragment.xml with ad unit ID set in\n // values/strings.xml.\n adView = findViewById(R.id.ad_view)\n\n adView.adListener = object : AdListener() {\n override fun onAdLoaded() {\n mAdView.responseInfo?.responseId?.let { adResponseId -\u003e\n FirebaseCrashlytics.getInstance().setCustomKey(\n \"banner_ad_response_id\", adResponseId)\n }\n }\n }\n\n // Start loading the ad in the background.\n adView.loadAd(AdRequest.Builder().build())\n\n // Add a crash button.\n val crashButton = Button(this)\n crashButton.text = \"Crash!\"\n crashButton.setOnClickListener {\n throw RuntimeException(\"Test Crash\") // Force a crash\n }\n\n addContentView(crashButton, ViewGroup.LayoutParams(\n ViewGroup.LayoutParams.MATCH_PARENT,\n ViewGroup.LayoutParams.WRAP_CONTENT))\n}\n```\n\nCongratulations! You will now see the most recent `banner_ad_response_id`\nin the key section of crash sessions on your Crashlytics dashboard. Note that\nsome keys may take up to an hour to become visible in your dashboard."]]