I have a single `Activity`, with multiple `Fragment`s in a `ViewPager`.
Currently, this is my way, to send screen view event to both Google Analytics and Firebase
----------
public static void trackView(Activity activity, String view) {
trackFBView(activity, view);
trackGAView(view);
}
private static void trackFBView(Activity activity, String view) {
if (activity == null) {
return;
}
FirebaseAnalytics firebaseAnalytics = getFirebaseAnalytics();
if (firebaseAnalytics == null) {
return;
}
firebaseAnalytics.setCurrentScreen(activity, view, null);
}
private static void trackGAView(String view) {
Tracker tracker = Utils.getTracker();
if (tracker == null) {
return;
}
tracker.setScreenName(view);
tracker.send(new HitBuilders.ScreenViewBuilder().build());
}
public static FirebaseAnalytics getFirebaseAnalytics() {
if (false == isGooglePlayServicesAvailable()) {
return null;
}
return FirebaseAnalytics.getInstance(JStockApplication.instance());
}
----------
In my `ViewPager`'s listener, this is how I send the screen view event.
private ViewPager.OnPageChangeListener getOnPageChangeListener() {
return new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
if (position == 0) {
Utils.trackView(DetailedStockFragmentActivity.this, "InfoFragment");
----------
After some testing, I realize I do receive screen view event in GA, **but not in Firebase.**
Later, I realize `firebaseAnalytics.setCurrentScreen` doesn't actually send a screen view event to Firebase. `firebaseAnalytics.setCurrentScreen` merely prepare an implicit parameter. It will only sent across to firebase, during the next event.
Currently, in my fragments, I didn't fire any events explicitly.
I was wondering, in order to help Firebase make better prediction (Help Firebase to identify user in looking at which screen), I was wondering, should I send "Screen View" event explicitly as follow?
private static void trackFBView(Activity activity, String view) {
if (activity == null) {
return;
}
FirebaseAnalytics firebaseAnalytics = getFirebaseAnalytics();
if (firebaseAnalytics == null) {
return;
}
firebaseAnalytics.setCurrentScreen(activity, view, null);
// Question: Should I do this to help Firebase makes better prediction?
firebaseAnalytics.logEvent(view + "_ScreenView", null);
}