Firebase分析持续跟踪UINavigationController。

6
我正在从Google Analytics转换到Firebase Analytics。与Google Analytics不同,Firebase自动跟踪屏幕视图,这很好!但是,它不断尝试跟踪UINavigationController而不是跟踪屏幕。每次我导航到另一个视图控制器时,我会收到以下错误日志两次。
[Firebase/Analytics][I-ACS031006] 视图控制器已经被跟踪。类、ID:UINavigationController,-1770652405567491888
当你有一个导航控制器时,是否需要一些配置?在这种情况下,如何让自动屏幕跟踪工作?
更新:我还没有找到解决方案,但我至少找到了问题的原因。看起来如果你的初始视图控制器是标签栏控制器,Firebase无法理解你的视图控制器层次结构。我的主故事板中的初始视图控制器是标签栏控制器。如果我将其删除,则可以从我的应用程序获得良好的屏幕跟踪报告。
更新:看起来我已经找到了一个可行的解决方案,但我仍然想知道是否有更好的方法。由于Firebase将标签栏控制器下的所有视图控制器都视为同一个UINavigationController,因此我可以在viewDidAppear中手动调用setScreenName来跟踪它们所有的屏幕。
Analytics.setScreenName(screenName, screenClass: screenClass)

这是可以接受的,因为它不比Google Analyics差,但并不理想,因为系统仍然尝试每个视图控制器两次跟踪UINavigationController,并且我也没有享受到自动屏幕跟踪带来的好处。我尝试删除Firebase中的选项卡栏控制器,因为一些人似乎已经这样做了,但看起来这些方法已经从当前(v4.0.0)版本的Firebase SDK中删除了。


1
你有没有找到更好的解决方法?屏幕视图分析是无用的,因为这个问题。我也找不到其他人谈论这个问题。 - Steve
1个回答

0

Google Analytics for Firebase 自动跟踪屏幕。您可以在主面板上的用户参与卡中看到它。这是在 Firebase Version 3.8.0 中引入的,适用于 iOS。更多内容请参阅跟踪屏幕文档。引用文档中的内容:

在这些屏幕上发生的事件会自动标记为 firebase_screen_class 参数(例如,menuViewController 或 MenuActivity)和生成的 firebase_screen_id。如果您的应用程序为每个屏幕使用不同的 UIViewController 或 Activity,则分析可以自动跟踪每个屏幕转换并生成按屏幕分解的用户参与报告。

但是,您也可以使用 setCurrentScreen() 方法手动跟踪屏幕。当您从下拉菜单中选择ScreenName时,这个屏幕的详细信息应该在用户参与卡中可用,所有在代码中手动跟踪的屏幕都应该在那里显示,并显示平均持续时间的细节。

请注意,setScreenName不是一个事件,而是与在logEvent()方法调用中跟踪的事件相关的事件参数。

4
这些都是有用而且正确的信息,但它们并没有回答我的问题。 - Justin Domnitz
1
是否有一种方法可以关闭所有自动分析事件?例如“first_open”,“session_start”等等...我们有自己的系统,不希望增加额外的噪音。谢谢。 - Darko
请查看“禁用分析收集”文档firebase.google.com/support/guides/disable-analytics。 - AniV

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