Firebase Analyticsコンソールに特別なログを送信するのではなく、ユーザーがより多くの時間を費やしている画面を確認するだけです。
AnalyticsTracker
を使用した場合、すべての場所に追加することが強制されたため、_Tracker.xml
_ファイルを使用して、すべての画面の特定の名前を設定できます。
公式ドキュメントには次のように書かれています:
Firebase Analyticsの依存関係をアプリレベルの_
build.gradle
_ファイルに追加します。_
compile 'com.google.firebase:firebase-core:9.2.1'
_アクティビティの上部でFirebaseAnalyticsオブジェクトを宣言します。
_
private FirebaseAnalytics mFirebaseAnalytics;
_次に、
onCreate()
メソッドで初期化します。
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
だから、データを取得したいすべてのページでこれをしなければならないと思いますか?
画面レポートの場合、自動的に行われるため、アクティビティごとにFirebaseAnalytics.setCurrentScreen()
を呼び出す必要はありません。 公式ドキュメント 状態:
画面レポートは自動的に有効になり、この関数を呼び出さなくても現在のアクティビティのクラス名が記録されることに注意してください。
おそらく、これが機能するには、アプリケーションのサブクラスFirebaseAnalytics.getInstance()
メソッドでonCreate()
を呼び出す必要があります。
いいえ。アプリケーションクラスを拡張するクラスにグローバル変数を作成するだけです
public class MyApplication extends Application {
public static FirebaseAnalytics mFirebaseAnalytics;
@Override
public void onCreate() {
super.onCreate();
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
}
}
その後、マニフェストのApplicationタグに次の行を追加します
<application
Android:name=".MyApplication"
...
画面追跡は1行のみで行えるようになりました
**Your ApplicationClass**
public FirebaseAnalytics mFirebaseAnalytics;
@Override
public void onCreate() {
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
}
public FirebaseAnalytics getmFirebaseAnalytics() {
return mFirebaseAnalytics;
}
その後、ベースアクティビティを作成し、ここからFirebaseAnalyticsゲッターを呼び出します。次に、以下のように.setCurrentScreenを使用します
**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();
}
忘れないで!すべてのアクティビティはBaseActivityから拡張する必要があります https://firebase.google.com/docs/analytics/screenviews
Firebase Analyticsでは自動スクリーントラッキングはまだサポートされていませんが、これは現在慎重に検討していることです。
Firebaseは画面のアクティビティを自動的に追跡するようになりましたが、手動で追跡することはできます。
mFirebaseAnalytics.setCurrentScreen(this, screenName, null /* class override */);
ソース: