【发布时间】:2026-01-22 01:30:01
【问题描述】:
我有一个Activity,在ViewPager 中有多个Fragment。
目前,这是我将屏幕视图事件发送到 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 识别用户正在查看哪个屏幕),我想知道我是否应该如下显式发送“Screen 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);
// Question: Should I do this to help Firebase makes better prediction?
firebaseAnalytics.logEvent(view + "_ScreenView", null);
}
【问题讨论】:
标签: java android firebase firebase-analytics firebase-predictions