web-dev-qa-db-fra.com

Il est nécessaire d’initialiser Firebase Analytics dans chaque activité?

Je ne souhaite pas envoyer de journaux spéciaux à la console Firebase Analytics, il suffit de vérifier sur quels écrans l’utilisateur consacre le plus de temps, etc.

Lorsque j’utilisais AnalyticsTracker, il était obligatoire de l’ajouter partout. Vous pouvez donc définir le nom spécifique de chaque écran avec le fichier Tracker.xml.

La documentation officielle dit:

Ajoutez la dépendance de Firebase Analytics à votre fichier build.gradle au niveau de l'application:

compile 'com.google.firebase:firebase-core:9.2.1'

Déclarez l'objet FirebaseAnalytics en haut de votre activité:

private FirebaseAnalytics mFirebaseAnalytics;

Puis initialisez-le dans la méthode onCreate():

mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);

Donc, je suppose que je dois le faire dans chaque page où je veux obtenir des données, n'est-ce pas?

22
Óscar

Pour les rapports sur écran, vous n'avez pas besoin d'appeler FirebaseAnalytics.setCurrentScreen() dans chaque activité, car cette opération est effectuée automatiquement pour vous. Les documents officiels state:

Notez que le rapport d’écran est activé automatiquement et enregistre le nom de classe de l'activité en cours pour vous sans vous obliger à appelez cette fonction.

Vraisemblablement, pour que cela fonctionne, vous devez appeler FirebaseAnalytics.getInstance() dans votre méthode Application subclass onCreate().

7
Mark

Non, il vous suffit de créer une variable globale dans une classe qui étend la classe d'application



    public class MyApplication extends Application {
    public static  FirebaseAnalytics mFirebaseAnalytics;
    @Override
        public void onCreate() {
            super.onCreate();
          mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
    }
    }

Ensuite, vous ajoutez la ligne suivante dans votre manifeste, dans la balise Application

<application
  Android:name=".MyApplication"
  ...
16
H.S.H

Le suivi d'écran peut maintenant être effectué avec une seule ligne

**Your ApplicationClass**
    public FirebaseAnalytics mFirebaseAnalytics;
    @Override
        public void onCreate() {
     mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
    }

    public FirebaseAnalytics getmFirebaseAnalytics() {
            return mFirebaseAnalytics;
        }

Après cela, créez une activité de base et appelez le getter FirebaseAnalytics à partir d’ici. Ensuite, utilisez .setCurrentScreen comme suit ci-dessous

**Your BaseActivity**
    @Override
        protected void onResume() {

            FirebaseAnalytics firebaseAnalytics = ((ApplicationClass) getApplication()).getmFirebaseAnalytics();
            firebaseAnalytics.setCurrentScreen(this, getClass().getSimpleName(), null);
            Log.d("FAnalytics", "setCurrentScreen: " + getClass().getSimpleName());
            super.onResume();
        }

Ne pas oublier! Toute votre activité doit être étendue à partir de BaseActivity https://firebase.google.com/docs/analytics/screenviews

12
Emre Tekin

Le suivi automatique des écrans n’est pas encore pris en charge dans Firebase Analytics, mais c’est quelque chose que nous examinons avec soin pour le moment. 

4
Steve Ganem

Firebase suit automatiquement les activités des écrans à présent, mais vous pouvez toujours les suivre manuellement.

mFirebaseAnalytics.setCurrentScreen(this, screenName, null /* class override */);

la source:

https://firebase.google.com/docs/analytics/screenviews

0
Kőne Mátyás