屏幕跟踪支持 - Firebase 9.8

Mer*_*rez 16 android firebase firebase-analytics

根据9.8更新的Firebase Android SDK发行说明,我们有Android屏幕和活动的屏幕跟踪支持 ...文档说这个事件是这样的:

mFirebaseAnalytics.setCurrentScreen(activity,class_name,class_override_name);
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我不需要覆盖类名称,我发送空值...但我等待48小时,我的firebase分析控制台没有显示有关此事件的信息,任何想法?

提前致谢!

Ale*_*cha 9

另一个非常重要的事情是我经过两天的密集挣扎之后才注意到:必须在UI线程上调用该setCurrentScreen方法.

在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) {
    //...
}
Run Code Online (Sandbox Code Playgroud)

每当调用此方法时,screen_view都会记录类型的事件.

请记住Firebase大小限制.屏幕名称的最大大小为36个字符.

  • _必须在UI线程上调用_ - 优秀的注释.除了LibGDX游戏开发者:`Gdx.app.postRunnable()` - 它与android UI线程不一样.你需要像[这里]一样使用android API(/sf/answers/779031781/) (2认同)

Kir*_*zin 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);
Run Code Online (Sandbox Code Playgroud)

  • `setCurrentScreen`仍然不能正常工作吗?我用过它,logcat显示阳性结果.请在此处查看我的答案/sf/answers/3164987101/ (2认同)

Col*_*bri 0

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

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

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

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

  • “请注意,屏幕报告已自动启用” - 好的,我可以在控制台的哪里找到此报告? (2认同)