首页 文章

屏幕跟踪支持 - Firebase 9.8

提问于
浏览
16

根据Firebase Android SDK发行说明9.8 update我们有Android屏幕和活动的屏幕跟踪支持...文档说this event的工作原理如下:

mFirebaseAnalytics.setCurrentScreen(activity,class_name,class_override_name);

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

提前致谢!

5 回答

  • 5

    首先,我遇到了同样的问题:Firebase信息中心上当前屏幕名称的事件在哪里?我没有结果调用方法 mFirebaseAnalytics.setCurrentScreen(this, "MainActivity", null); .

    感谢Benoit的评论,我意识到这个方法表明隐式 parameter 的值会自动附加到您发送的任何事件上 . 这意味着's not independent event, it'是一个参数,它会在你设置它之后坚持你的所有事件 .

    如果您在单个活动中更改屏幕,这将非常有用 . 例如,当您有多个片段与一个托管活动时 . 然后在 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);
    
  • 0

    另一个非常重要的事情,我在经过两天的艰苦挣扎之后才注意到:在UI线程上调用 setCurrentScreen 方法 MUST .

    在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个字符 .

  • 6

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

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

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

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

  • 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 .

  • 0

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

    看看documentation .

相关问题