手动屏幕跟踪在 Firebase 中不起作用 (iOS)
Manual screen tracking not working in Firebase (iOS)
我正在尝试禁用 Firebase 中的手动屏幕跟踪,将其替换为我自己的屏幕跟踪实现。
通过自动屏幕跟踪,我发送到 firebase 的每个事件都有两个额外的参数:firebase_screen_class
和 firebase_screen_id
以及应用程序中显示的最后一个 ViewController 的值
所以我修改了应用程序的 Info.plist
文件:
FirebaseScreenReportingEnabled = NO
当应用程序的屏幕发生变化时,我开始调用函数:
Analytics.setScreenName(screenName, screenClass: screenName)
此更改后的结果是 Firebase 的 DebugView 不再注册 screen_view
事件并且没有额外信息(firebase_screen_class
和 firebase_screen_id
)附加到以后的事件。
我错过了什么?
编辑: 这些是 podfile.lock
中的 Google 相关 pods
- 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)
我从 Firebase 得到的答复是 iOS,他们支持自动 + 手动屏幕报告或根本不报告屏幕。 Google Analytics for Firebase 不支持仅手动屏幕报告的情况。 plist 标志 FirebaseAutomaticScreenReportingEnabled 已重命名为 FirebaseScreenReportingEnabled 以减少混淆。请注意,该值必须是布尔值而不是字符串。如果它没有像您预期的那样工作,您可以通过向 Info.plist 添加标志 FirebaseScreenReportingEnabled 并使用布尔值 NO.
来完全禁用屏幕报告
此问题现已修复 - 虽然答案还没有流下来更新 Whosebug 问题。
我在 this Firebase github ticket
上找到了解决方案
基本上这个问题最近已得到修复,以便为开发人员的项目提供更大的灵活性。只要您更新为使用 6.29.0 或更高版本,那么您应该能够按照您的意愿进行报告。
最新的更改已经摆脱了 setScreen
功能,现在只使用事件。
记录事件:
Firebase.Analytics.logEvent(name, parameters: parameters)
日志屏幕视图
Firebase.Analytics.logEvent(AnalyticsEventScreenView, parameters:[AnalyticsParameterScreenName: screenName])
我正在尝试禁用 Firebase 中的手动屏幕跟踪,将其替换为我自己的屏幕跟踪实现。
通过自动屏幕跟踪,我发送到 firebase 的每个事件都有两个额外的参数:firebase_screen_class
和 firebase_screen_id
以及应用程序中显示的最后一个 ViewController 的值
所以我修改了应用程序的 Info.plist
文件:
FirebaseScreenReportingEnabled = NO
当应用程序的屏幕发生变化时,我开始调用函数:
Analytics.setScreenName(screenName, screenClass: screenName)
此更改后的结果是 Firebase 的 DebugView 不再注册 screen_view
事件并且没有额外信息(firebase_screen_class
和 firebase_screen_id
)附加到以后的事件。
我错过了什么?
编辑: 这些是 podfile.lock
中的 Google 相关 pods - 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)
我从 Firebase 得到的答复是 iOS,他们支持自动 + 手动屏幕报告或根本不报告屏幕。 Google Analytics for Firebase 不支持仅手动屏幕报告的情况。 plist 标志 FirebaseAutomaticScreenReportingEnabled 已重命名为 FirebaseScreenReportingEnabled 以减少混淆。请注意,该值必须是布尔值而不是字符串。如果它没有像您预期的那样工作,您可以通过向 Info.plist 添加标志 FirebaseScreenReportingEnabled 并使用布尔值 NO.
来完全禁用屏幕报告此问题现已修复 - 虽然答案还没有流下来更新 Whosebug 问题。
我在 this Firebase github ticket
上找到了解决方案基本上这个问题最近已得到修复,以便为开发人员的项目提供更大的灵活性。只要您更新为使用 6.29.0 或更高版本,那么您应该能够按照您的意愿进行报告。
最新的更改已经摆脱了 setScreen
功能,现在只使用事件。
记录事件:
Firebase.Analytics.logEvent(name, parameters: parameters)
日志屏幕视图
Firebase.Analytics.logEvent(AnalyticsEventScreenView, parameters:[AnalyticsParameterScreenName: screenName])