我有一个Activity
, 有多个Fragment
s ViewPager
。
目前,这是我将屏幕视图事件发送到 Google Analytics 和 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());
}
在我ViewPager
的监听器中,这就是我发送屏幕视图事件的方式。
private ViewPager.OnPageChangeListener getOnPageChangeListener() {
return new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
if (position == 0) {
Utils.trackView(DetailedStockFragmentActivity.this, "InfoFragment");
经过一些测试,我意识到我确实在 GA 中收到了屏幕视图事件,但在 Firebase 中没有。
后来,我意识到firebaseAnalytics.setCurrentScreen
实际上并没有向 Firebase 发送屏幕视图事件。firebaseAnalytics.setCurrentScreen
只需准备一个隐式参数。它只会在下一个事件期间发送到 Firebase。
目前,在我的片段中,我没有明确触发任何事件。
我想知道,为了帮助 Firebase 做出更好的预测(帮助 Firebase 识别用户查看哪个屏幕),我想知道,我应该如下明确发送“屏幕视图”事件吗?
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);
}