Firebase Android SDKのリリースノート9.8 update によると、スクリーントラッキングサポートwith Android screens and activities ...ドキュメントには this event は次のように機能することが記載されています:
mFirebaseAnalytics.setCurrentScreen(activity,class_name,class_override_name);
私の場合、クラス名をオーバーライドする必要はなく、null値を送信しています...しかし、48時間待っていて、Firebase分析コンソールにこのイベントに関する情報が表示されていませんか?
前もって感謝します!
2日間の集中的な苦労の後に初めて気付いたもう1つの非常に重要なこと:setCurrentScreen
メソッド[〜#〜] must [〜#〜]は、UIスレッドで呼び出されます。
Firebaseの逆コンパイルされたコードでライトを探した後にのみ、それを確認できました。
@MainThread
@Keep
public final void setCurrentScreen(@NonNull Activity var1, @Size(min = 1L,max = 36L) @Nullable String var2, @Size(min = 1L,max = 36L) @Nullable String var3) {
//...
}
このメソッドが呼び出されるたびに、タイプscreen_view
のイベントがログに記録されます。
また、Firebaseのサイズ制限にも注意してください。画面名の最大サイズは36文字です。
最初に同じ質問がありました。Firebaseダッシュボードの現在のスクリーン名でのイベントはどこですか?結果としてメソッドmFirebaseAnalytics.setCurrentScreen(this, "MainActivity", null);
を呼び出しました。
Benoitのコメントのおかげで、このメソッドは暗黙的にparameterの値を示し、送信するイベントに自動的に付加されることに気付きました。つまり、これは独立したイベントではなく、設定したすべてのイベントに固定されるパラメーターです。
これは、単一のアクティビティ内で画面を変更する場合に役立ちます。たとえば、1つのホスティングアクティビティを持つ複数のフラグメントがある場合です。そして、このメソッドをonResume()
の各フラグメントで呼び出します。
画面の名前で個別のメトリックを使用する場合は、そのための新しいイベントを明示的に起動します。
Bundle params = new Bundle();
params.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "screen");
params.putString(FirebaseAnalytics.Param.ITEM_NAME, "MainActivity");
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.VIEW_ITEM, params);
firebaseAnalytics.setCurrentScreen(activity,screeenName,activity.getClass().getSimpleName());
firebaseAnalytics.setMinimumSessionDuration(100L);
params = new Bundle();
params.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "screen");
params.putString(FirebaseAnalytics.Param.ITEM_NAME, screeenName);
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.VIEW_ITEM, params);
Firebaseはデータをコンソールにすぐに送信しないため、setCurrentScreenと手動のイベントファイアを使用してみてください。
アプリの現在のビジュアルコンテキストを指定する現在の画面名を設定します。これは、ユーザーが時間を費やしているアプリ内の領域と、アプリとのやり取りを特定するのに役立ちます。
画面レポートは自動的に有効になり、この関数を呼び出さなくても現在のアクティビティのクラス名が記録されることに注意してください。クラス名は、アクティビティのonResumeコールバックでこの関数を呼び出し、screenClassOverrideパラメーターを指定することで、オプションでオーバーライドできます。
アプリが画面ごとに個別のアクティビティを使用しない場合は、この関数を呼び出して、新しい画面がユーザーに表示されるたびに個別のscreenNameを指定する必要があります。
名前とclassOverrideは、現在のアクティビティが変更されるか、setCurrentScreenへの新しい呼び出しが行われるまで有効です。このメソッドをonResumeメソッドに追加してみます。結果はわかりませんが、経験を共有します。
onResume()
でそのメソッドを呼び出し、DebugViewを介して追跡を確認するだけです。それは私のために働いた。
ドキュメント をご覧ください。