How to send screen view event, in order to help Firebase prediction make more accurate prediction

273 views
Skip to first unread message

Yan Cheng Cheok

unread,
Dec 27, 2017, 12:12:48 PM12/27/17
to Firebase Google Group
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);
    }
Reply all
Reply to author
Forward
0 new messages