手动屏幕跟踪在Firebase(iOS)中不起作用

时间:2017-10-18 16:56:12

标签: ios firebase firebase-analytics

我尝试在Firebase中禁用手动屏幕跟踪,将其替换为我自己的屏幕跟踪实现。

通过自动屏幕跟踪,我发送给firebase的每个事件都有两个额外的参数:firebase_screen_idInfo.plist,其中包含应用程序中显示的最后一个ViewController的值

所以我修改了应用程序的FirebaseScreenReportingEnabled = NO 文件:

Analytics.setScreenName(screenName, screenClass: screenName)

当应用程序的屏幕发生变化时,我开始调用该函数:

screen_view

此更改后的结果是Firebase的DebugView不再注册firebase_screen_class个事件,并且没有额外的信息(firebase_screen_id - Firebase/AdMob (4.2.0): - Firebase/Core - Google-Mobile-Ads-SDK (= 7.24.0) - Firebase/Core (4.2.0): - FirebaseAnalytics (= 4.0.3) - FirebaseCore (= 4.0.7) - Firebase/RemoteConfig (4.2.0): - Firebase/Core - FirebaseRemoteConfig (= 2.0.3) - FirebaseAnalytics (4.0.3): - FirebaseCore (~> 4.0) - FirebaseInstanceID (~> 2.0) - GoogleToolboxForMac/NSData+zlib (~> 2.1) - nanopb (~> 0.3) - FirebaseCore (4.0.7): - GoogleToolboxForMac/NSData+zlib (~> 2.1) - nanopb (~> 0.3) - FirebaseInstanceID (2.0.3) - FirebaseRemoteConfig (2.0.3): - FirebaseAnalytics (~> 4.0) - FirebaseInstanceID (~> 2.0) - GoogleToolboxForMac/NSData+zlib (~> 2.1) - Protobuf (~> 3.1) - Google-Mobile-Ads-SDK (7.24.0) - GoogleAnalytics (3.17.0) - GoogleSignIn (4.1.0): - GoogleToolboxForMac/NSDictionary+URLArguments (~> 2.1) - GoogleToolboxForMac/NSString+URLArguments (~> 2.1) - GTMOAuth2 (~> 1.0) - GTMSessionFetcher/Core (~> 1.1) - GoogleToolboxForMac/DebugUtils (2.1.1): - GoogleToolboxForMac/Defines (= 2.1.1) - GoogleToolboxForMac/Defines (2.1.1) - GoogleToolboxForMac/NSData+zlib (2.1.1): - GoogleToolboxForMac/Defines (= 2.1.1) - GoogleToolboxForMac/NSDictionary+URLArguments (2.1.1): - GoogleToolboxForMac/DebugUtils (= 2.1.1) - GoogleToolboxForMac/Defines (= 2.1.1) - GoogleToolboxForMac/NSString+URLArguments (= 2.1.1) - GoogleToolboxForMac/NSString+URLArguments (2.1.1) - GTMOAuth2 (1.1.5): - GTMSessionFetcher (~> 1.1) - GTMSessionFetcher (1.1.12): - GTMSessionFetcher/Full (= 1.1.12) - GTMSessionFetcher/Core (1.1.12) - GTMSessionFetcher/Full (1.1.12): - GTMSessionFetcher/Core (= 1.1.12) )附加到以后的事件中。

我缺少什么?

修改:这些是podfile.lock中与Google相关的广告连播

My_data_table <- structure(list(Unique_ID = structure(c(1L, 1L, 2L, 2L, 3L,
                   3L, 3L, 4L, 4L, 4L), .Label = c("1AA", "3AA", "5AA", "6AA"),
                   class = "factor"), Distance.km. = c(1, 2.05, 2, 4, 2, 4, 7,
                   8, 9, 10), Difference = c(NA, 1.05, NA, 2, NA, 2, 3, NA, 1, 1)),
                   .Names = c("Unique_ID", "Distance.km.", "Difference"),
                   class = "data.frame", row.names = c(NA, -10L))
My_data_table
Unique_ID Distance(km)  Difference    
1AA        1             NA          
1AA        2.05         1.05          
3AA        2             NA          
3AA        4             2          
5AA        2             NA          
5AA        4             2          
5AA        7             3   
6AA        8             NA
6AA        9             1
6AA        10            1

2 个答案:

答案 0 :(得分:3)

我从Firebase得到了答案,在iOS上,它们支持自动+手动屏幕报告或根本不支持屏幕报告。 Google Analytics for Firebase不支持仅手动屏幕报告的情况。 plist标志 FirebaseAutomaticScreenReportingEnabled 已重命名为 FirebaseScreenReportingEnabled 以减少这种混淆。请注意,该值必须是布尔值而不是String。如果它没有按预期工作,您可以通过向Info.plist添加标志 FirebaseScreenReportingEnabled 并使用布尔值NO来完全禁用屏幕报告。

答案 1 :(得分:0)

现在,此问题已得到解决-尽管答案还没有得到解决以更新Stackoverflow问题。

我在this Firebase github票证上找到了解决方案

基本上,最近已修复此问题,以使开发人员在其项目中具有更大的灵活性。只要更新为使用6.29.0或更高版本,您就应该能够根据需要进行报告。

最新的更改摆脱了setScreen功能,现在仅使用事件。

记录事件:

Firebase.Analytics.logEvent(name, parameters: parameters)

日志屏幕视图

Firebase.Analytics.logEvent(AnalyticsEventScreenView, parameters:[AnalyticsParameterScreenName: screenName])