屏幕跟踪支持 - Firebase 9.8

17
根据 Firebase Android SDK Release Notes 的说明,在 9.8 更新 中,我们可以使用安卓屏幕和活动的 屏幕跟踪支持... 文档说明了此事件的工作原理:
mFirebaseAnalytics.setCurrentScreen(activity,class_name,class_override_name);
在我的情况下,我不需要覆盖类名并发送空值...但是我等了48小时,我的Firebase Analytics控制台没有显示关于此事件的信息,有任何建议吗?
谢谢!

这方面有任何消息吗? - Vincent D.
1
该发布说明称:“在应用用户查看这些屏幕时,将firebase_screen参数添加到记录的每个事件中...” 我理解firebase生成了firebase_screen作为事件,但是什么意思呢? - Merlí Escarpenter Pérez
3
在分析中,我认为你对两个不同的概念存在混淆:事件参数。firebase_screen实际上是一个参数,会自动添加到所有后续记录的事件中,但它本身不是一个事件。当你根据事件类型创建受众时,可以进一步按事件参数进行过滤。 - Benoit
https://firebase.google.com/docs/analytics/debugview https://support.google.com/firebase/answer/7201382?hl=en&utm_id=ad&authuser=0 - yozhik
而且您可以在24小时后在Google Bigquery中查看已跟踪的事件,这些事件是通过SQL查询添加到Firebase中的。 - yozhik
显示剩余4条评论
6个回答

9

在经历了两天的紧张奋斗后,我注意到另一个非常重要的事情: setCurrentScreen 方法必须在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个字符。

2
必须在UI线程上调用 - 优秀的提示。此外,对于LibGDX游戏开发人员:Gdx.app.postRunnable() - 它与Android UI线程不同。您需要使用Android API,例如这里 - Sergei Bubenshchikov
超级有价值的信息 5/7会推荐 - 4ndro1d

7

一开始我也有同样的问题:我的Firebase控制台上当前屏幕名称的事件在哪里?但是,我调用了mFirebaseAnalytics.setCurrentScreen(this, "MainActivity", null);方法,结果没有显示。

感谢Benoit的评论,我意识到这个方法指示了一个隐式参数的值,该参数会自动附加到您发送的任何事件上。这意味着它不是独立的事件,而是一个参数,自从您设置以来将粘附在您所有的事件上。

如果您在单个活动中有多个更改屏幕的情况下,这将非常有用。例如,当您有多个片段与一个托管活动时。并且您在每个片段的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);

2
“setCurrentScreen”还是不起作用吗?我已经使用它了,logcat显示了正面的结果。请看我的答案:https://dev59.com/sFcO5IYBdhLWcg3wzEuf#45214101 - Artem Mostyaev

1
    val bundle = Bundle()
    bundle.putString(FirebaseAnalytics.Param.SCREEN_NAME, "YOUR SCREEN NAME")
    mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW, bundle)

Firebase分析的屏幕跟踪是自动的,无需明确的单独事件跟踪。

0

只需在onResume() 中调用该方法,然后通过DebugView检查跟踪情况。对我而言有效。

查看文档


0

设置当前屏幕名称,指定应用程序中的当前视觉上下文。这有助于识别用户在应用程序中花费时间的区域以及他们如何与应用程序交互。

请注意,屏幕报告已自动启用,并为您记录当前活动的类名,无需调用此函数。可以通过在Activity的onResume回调中调用此函数并指定screenClassOverride参数来选择性地覆盖类名。

如果您的应用程序不为每个屏幕使用不同的Activity,则应在向用户呈现新屏幕时调用此函数并指定不同的screenName。

名称和classOverride将保持有效,直到当前Activity更改或进行新的setCurrentScreen调用。我将尝试将此方法添加到onResume方法中。我不知道结果,但我会分享我的经验。


2
请注意,屏幕报告功能会自动启用。好的,在控制台中我可以在哪里找到这个报告? - Alex
在仪表板中,即 - JacksOnF1re
它可以在“事件”->“屏幕视图”下找到。 - Alp Altunel

0
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);

尝试使用setCurrentScreen以及手动触发事件,因为Firebase不会立即将数据发送到控制台...但如果事件被触发了...所有剩余的数据都会被发送到Firebase中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接