我尝试在Firebase中禁用手动屏幕跟踪,将其替换为我自己的屏幕跟踪实现。
通过自动屏幕跟踪,我发送给firebase的每个事件都有两个额外的参数:firebase_screen_id
和Info.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
答案 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])