我正在从Google Analytics过渡到Firebase Analytics。与Google Analytics不同,Firebase会自动跟踪屏幕视图,这非常棒!但是,它不是跟踪屏幕,而是不断尝试跟踪UINavigationController。每次导航到不同的视图控制器时,我都会收到以下错误日志两次。
[Firebase / Analytics] [I-ACS031006]已查看控制器 跟踪。类,ID:UINavigationController,-1770652405567491888
有导航控制器时是否需要一些配置?如何在这种情况下使自动屏幕跟踪工作?
更新:我还没有找到解决方法,但我至少找到了问题的原因。如果您的初始视图控制器是标签栏控制器,Firebase似乎无法理解您的视图控制器层次结构。我主要故事板中的初始视图控制器是Tab Bar Controller。如果我把它拿出来,我会从我的应用程序中获得良好的屏幕跟踪报告。
更新:看起来我找到了一个很好的解决方案,但我仍然想知道是否有人有更好的主意。由于Firebase将我的Tab Bar Controller下的所有视图控制器视为相同的UINavigationController,因此我可以在viewDidAppear中手动调用setScreenName。
Analytics.setScreenName(screenName, screenClass: screenClass)
这没关系,因为它并不比谷歌分析师差,但它并不理想,因为系统仍然试图为每个视图控制器跟踪UINavigationController两次,而且我也没有获得自动屏幕跟踪的好处。我试图从Firebase中删除Tab Bar Controller,就像有些人似乎已经完成的那样,但看起来这些方法已经从Firebase SDK的当前版本(v4.0.0)中删除了。
答案 0 :(得分:2)
Google Analytics for Firebase会自动跟踪屏幕。您可以在主仪表板的用户参与卡中看到它。这已在Firebase Version 3.8.0 for iOS中引入。更多track screen个文档。引用文档:
这些屏幕上发生的事件会使用参数firebase_screen_class(例如,menuViewController或MenuActivity)和生成的firebase_screen_id自动标记。如果您的应用为每个屏幕使用不同的UIViewController或Activity, Google Analytics可以自动跟踪每个屏幕转换,并生成按屏幕细分的用户参与度报告。
但是,您也可以使用setCurrentScreen()方法跟踪屏幕manually。当您从下拉列表中选择 ScreenName 时,应在用户参与卡中显示此屏幕上的详细信息,代码中手动跟踪的所有屏幕都应显示在那里,平均持续时间细分。 / p>
请注意,setScreenName不是一个事件,而是一个事件参数,与 logEvent()方法调用中跟踪的事件一起使用。