屏幕跟踪支持 - Firebase 9.8

时间:2016-11-07 12:31:42

标签: android firebase firebase-analytics

根据 Firebase Android SDK发行说明9.8 update,我们有屏幕跟踪支持与Android屏幕和活动...文档说{{3}这样的作品:

mFirebaseAnalytics.setCurrentScreen(activity,class_name,class_override_name);

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

提前致谢!

6 个答案:

答案 0 :(得分: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);

答案 1 :(得分:7)

另一个非常重要的事情是我在经过两天的艰苦努力之后才注意到:在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) {
    //...
}

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

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

答案 2 :(得分:0)

设置当前屏幕名称,该名称指定应用程序中的当前可视上下文。这有助于识别应用中用户花费时间以及与应用互动的方式区域。

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

如果您的应用不为每个屏幕使用不同的活动,则应在每次向用户显示新屏幕时调用此功能并指定不同的screenName。

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

答案 3 :(得分: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 ..

答案 4 :(得分:0)

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

签出documentation

答案 5 :(得分:0)

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

Firebase Analytic的屏幕跟踪也是自动的。无需明确的单独事件跟踪。