Ручное отслеживание экрана не работает в Firebase (iOS)
Я пытаюсь отключить ручное отслеживание экрана в Firebase, заменяя его собственной реализацией отслеживания экрана.
Благодаря автоматическому отслеживанию экрана каждое событие, которое я отправляю в firebase, имеет два дополнительных параметра: firebase_screen_class
а также firebase_screen_id
со значением последнего ViewController, представленного в приложении
Поэтому я изменил приложение Info.plist
файл с:
FirebaseScreenReportingEnabled = NO
И я начал вызывать функцию, когда экран приложения изменился:
Analytics.setScreenName(screenName, screenClass: screenName)
Результатом этого изменения является то, что DebugView Firebase больше не регистрируется screen_view
события и без дополнительной информации (firebase_screen_class
а также firebase_screen_id
) прикреплен к последующим событиям.
Что мне не хватает?
Изменить: это связанные с Google модули в podfile.lock
- 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)
1 ответ
Я получил ответ от Firebase о том, что на iOS они поддерживают автоматическую + ручную отчетность по экрану или вообще без экранной отчетности. Google Analytics для Firebase НЕ поддерживает случай создания отчетов только на экране вручную. Флаг plist FirebaseAutomaticScreenReportingEnabled был переименован в FirebaseScreenReportingEnabled, чтобы уменьшить эту путаницу. Обратите внимание, что значение должно быть логическим, а не строкой. Если это не работает так, как вы ожидали, вы можете полностью отключить экранную отчетность, добавив в Info.plist флаг FirebaseScreenReportingEnabled со значением логического значения NO.
Теперь это исправлено, хотя ответы на вопросы по Stackru еще не дошли.
Я нашел решение в этом билете на Firebase github
По сути, это недавно было исправлено, чтобы дать разработчикам больше гибкости в своих проектах. Если вы обновитесь до версии 6.29.0 или выше, вы сможете отчитываться по своему усмотрению.
Последние изменения избавили от setScreen
функциональность и теперь используйте только события.
Событие журнала:
Firebase.Analytics.logEvent(name, parameters: parameters)
Просмотр экрана журнала
Firebase.Analytics.logEvent(AnalyticsEventScreenView, parameters:[AnalyticsParameterScreenName: screenName])