Firebase Analytics 未跟踪我的应用屏幕名称:屏幕名称(未设置)
Posted
技术标签:
【中文标题】Firebase Analytics 未跟踪我的应用屏幕名称:屏幕名称(未设置)【英文标题】:Firebase Analytics not tracking the name of my app screens: Screen name (not set) 【发布时间】:2018-07-10 20:11:51 【问题描述】:我正在使用最新版本的 Firebase 和 Analytics 来跟踪应用上的屏幕打开情况。我正在 Firebase 上检查是否正在跟踪屏幕打开,但它们仅在“屏幕类”表下显示活动 Java 类名。如果我切换到“屏幕名称”,则会显示(未设置)。没有屏幕名称被跟踪。
我尝试了在官方文档和 Stack Overflow 中找到的两种方法:
方式一:
mFirebaseAnalytics.setCurrentScreen(SectionManager.getInstance().getCurrentActivity(), name, null /* class override */);
方式二:
Bundle params = new Bundle();
params.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "screen");
params.putString(FirebaseAnalytics.Param.ITEM_NAME, name);
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.VIEW_ITEM, params);
我仔细检查了name
变量是否包含屏幕的真实名称。
它们都不起作用。在这里查看其他问题并查看官方文档,我似乎无法解决它。
【问题讨论】:
您是否在 Activity 生命周期方法中调用setCurrentScreen()
?哪一个?我在the documentation 中注意到这一点:屏幕名称和屏幕类保持不变,直到 Activity 更改。
@BobSnyder 是的,我在进行 startActivity 调用之前正在调用,但是.. 有问题吗?那为什么要注册活动呢?
如您所见,他们并没有告诉您在活动事件中跟踪它:“如果您的应用不为您可能希望跟踪的每个屏幕使用单独的活动,则手动跟踪屏幕很有用,比如在游戏中”
在看到这个问题之前,我没有使用过setCurrentScreen()
。作为一个实验,我将它添加到一个活动的onResume()
。我看到我分配的屏幕名称包含在 Analytics logcat 消息中。几个小时 (12+) 后,该名称出现在 Firebase 控制台的 screen_view
事件数据中。
setCurrentScreen()
事件只能从onResume()
方法推送。否则它不会在报告中显示屏幕的名称,它只会显示屏幕的类名。
【参考方案1】:
您似乎忘记初始化mFirebaseAnalytics
,您需要先在 onCreate 方法上对其进行初始化,并确保在此初始化后调用mFirebaseAnalytics.logEvent(..)
查看如何在每个屏幕上进行初始化
// [START declare_analytics]
private FirebaseAnalytics mFirebaseAnalytics;
// [END declare_analytics]
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
// here the initialization of instance
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
告诉我这个答案是否对你有用,或者你也可以更新你问题中的代码片段,我可以对这个问题进行适当的分析, 谢谢
【讨论】:
以上是关于Firebase Analytics 未跟踪我的应用屏幕名称:屏幕名称(未设置)的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Analytics 未跟踪 Vue 路由器路由
Firebase Analytics:事件参数未记录在 FB 控制台上
来自 iOS 的 Firebase Analytics 事件未显示
Firebase 函数 Google Analytics 触发器未针对 Web 事件触发