Firebase Analytics连续跟踪UINavigationController

Jus*_*itz 5 iphone ios firebase swift firebase-analytics

我正在从Google Analytics(分析)过渡到Firebase Analytics。与Google Analytics(分析)不同,Firebase会自动跟踪屏幕视图,这很棒!但是,它没有跟踪屏幕,而是连续尝试跟踪UINavigationController。每次导航到其他视图控制器时,都会两次收到以下错误日志。

[Firebase / Analytics] [I-ACS031006]视图控制器已被跟踪。类,ID:UINavigationController,-1770652405567491888

拥有导航控制器时是否需要一些配置?在这种情况下如何获得自动屏幕跟踪?

更新:我还没有找到解决方案,但是至少我找到了问题的原因。如果您的初始视图控制器是“标签栏控制器”,则Firebase似乎无法理解您的视图控制器层次结构。我主要故事板上的初始视图控制器是Tab Bar Controller。如果将其删除,我的应用程序将获得良好的屏幕跟踪报告。

更新: 看来我已经找到了解决方案,但是我仍然想知道是否有人有更好的主意。由于Firebase将我的“标签栏”控制器下的所有视图控制器视为相同的UINavigationController,因此我可以在viewDidAppear中为所有它们手动调用setScreenName。

Analytics.setScreenName(screenName, screenClass: screenClass)
Run Code Online (Sandbox Code Playgroud)

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

Ani*_*niV 0

Google Analytics for Firebase 会自动跟踪屏幕。您可以在主仪表板的用户参与卡中看到它。此功能已在适用于 iOS 的Firebase 版本 3.8.0中引入。更多信息请参见跟踪屏幕文档。引用文档:

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

但是,您也可以使用 setCurrentScreen() 方法手动跟踪屏幕。当您从下拉列表中选择“屏幕名称”时,此屏幕上的详细信息应在用户参与卡中提供,代码中手动跟踪的所有屏幕均应显示在此处,并显示平均持续时间的细分。

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

  • 这些都是有用且正确的信息,但它并没有回答我的问题。 (4认同)