2016-07-22 10 views
15

Ich möchte keine speziellen Protokolle an die Firebase Analytics-Konsole senden, sondern einfach überprüfen, auf welchen Bildschirmen der Benutzer mehr Zeit verbringt und so weiter.Es ist notwendig Firebase Analytics in jeder Aktivität zu initialisieren?

Wenn ich AnalyticsTracker10 verwendet, war es obligatorisch, es überall hinzuzufügen, so können Sie den spezifischen Namen jedes Bildschirms mit der Tracker.xml Datei festlegen.

Die offizielle Dokumentation sagt:

die Abhängigkeit hinzu Firebase Analytics in Ihrer App-Ebene build.gradle Datei:

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

erklären die FirebaseAnalytics an der Spitze Ihrer Tätigkeit Objekt:

private FirebaseAnalytics mFirebaseAnalytics;

Dann initialisieren es in der onCreate() Methode:

mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);

Also ich denke, Ive dies auf jeder Seite zu tun, wo ich Daten erhalten möchten, haben ich?

Antwort

2

Für Bildschirm Berichterstattung Sie dies nicht tun anrufen müssen FirebaseAnalytics.setCurrentScreen() in jeder Aktivität, da diese automatisch für Sie erledigt wird. Der official docs Zustand:

Beachten Sie, dass Bildschirm Reporting automatisch aktiviert und zeichnet die Klassenname der aktuellen Aktivität für Sie, ohne dass Sie Aufruf dieser Funktion erforderlich ist.

Vermutlich dies funktioniert, müssen Sie FirebaseAnalytics.getInstance() in Ihrer Anwendung Unterklasse onCreate() Methode aufzurufen.

11

Nein, Sie brauchen nur globale Variable in einer Klasse zu erstellen, die Anwendungsklasse Automatische



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

Nachdem Sie die folgende Zeile in Ihrem Manifest, in dem Application-Tag

<application 
    android:name=".MyApplication" 
    ... 
+2

Dann hast, warum Steve Ganem sagen, dass es nicht unterstützt? –

+1

@ H.S.H sagt nicht, dass Seite/ScreenViews unterstützt werden. Er beantwortete nur die Frage, ob sie bei jeder Aktivität initialisiert werden muss. Und die Antwort ist nein, Sie können es in Application-Klasse instanziieren. – RenatoIvancic

+0

Hallo, ich bin Android-Noob und bin fasziniert von dem, was hier passiert ist. Ich denke, die wahre Magie passiert, sobald ".MyApplication" 'in Manifest hinzugefügt wurde. Könnten Sie sich bitte einen Moment Zeit nehmen und erklären, was genau hier passiert ist? – Anuj

4

erweitert Das Screen-Tracking wird in Firebase Analytics noch nicht unterstützt, aber dies wird derzeit sorgfältig geprüft.

7

Bildschirm-Tracking können nun mit nur einer Zeile

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

    public FirebaseAnalytics getmFirebaseAnalytics() { 
      return mFirebaseAnalytics; 
     } 

Danach erstellen Basisaktivität und rufen Sie die FirebaseAnalytics Getter von hier aus erfolgen. Verwenden Sie dann .setCurrentScreen wie folgt unter

**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(); 
     } 

Nicht vergessen! Alle Ihre Aktivität muss sein, erstreckt sich von BaseActivity https://firebase.google.com/docs/analytics/screenviews