Google Analytics(分析)跟踪屏幕轉換並將有關當前屏幕的信息附加到事件中,使您能夠跟踪每個屏幕的用戶參與度或用戶行為等指標。大部分數據收集都是自動發生的,但您也可以手動記錄屏幕視圖。如果您的應用程序不為您可能希望跟踪的每個屏幕(例如在遊戲中)使用單獨的UIViewController
、 View
或Activity
,則手動跟踪屏幕非常有用。
自動跟踪屏幕
Analytics 會自動跟踪有關應用程序中屏幕的一些信息,例如當前焦點的UIViewController
或Activity
的類名稱。發生屏幕轉換時,Analytics 會記錄標識新屏幕的screen_view
事件。這些屏幕上發生的事件會自動使用參數firebase_screen_class
(例如, menuViewController
或MenuActivity
)和生成的firebase_screen_id
進行標記。如果您的應用程序為每個屏幕使用不同的UIViewController
或Activity
,那麼 Analytics 可以自動跟踪每個屏幕轉換並生成按屏幕細分的用戶參與度報告。如果您的應用沒有這樣做,您仍然可以通過手動記錄screen_view
事件來獲取這些報告。
禁用屏幕視圖跟踪
通過在 Info.plist 中將FirebaseAutomaticScreenReportingEnabled
設置為NO
(布爾值),可以在 iOS 上關閉自動屏幕視圖報告。
在 Android 上,將以下設置嵌套在AndroidManifest.xml
文件的<application>
標記中:
<meta-data android:name="google_analytics_automatic_screen_reporting_enabled" android:value="false" />
手動跟踪屏幕
無論是否啟用自動跟踪,您都可以手動記錄screen_view
事件。您可以在 Apple 平台的onAppear
或viewDidAppear
方法以及 Android 的onResume
中記錄這些事件。如果未設置screen_class
,Analytics 將根據調用時處於焦點的 UIViewController 或 Activity 設置默認值。
如果您在應用程序中禁用了 swizzling,則必須手動設置所有屏幕名稱。對於 SwiftUI 用戶,請使用 Analytics Swift 擴展 SDK 。
迅速
Analytics.logEvent(AnalyticsEventScreenView, parameters: [AnalyticsParameterScreenName: screenName, AnalyticsParameterScreenClass: screenClass])
Objective-C
[FIRAnalytics logEventWithName:kFIREventScreenView parameters:@{kFIRParameterScreenClass: screenClass, kFIRParameterScreenName: screenName}];
Kotlin+KTX
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) { param(FirebaseAnalytics.Param.SCREEN_NAME, screenName) param(FirebaseAnalytics.Param.SCREEN_CLASS, "MainActivity") }
Java
Bundle bundle = new Bundle(); bundle.putString(FirebaseAnalytics.Param.SCREEN_NAME, screenName); bundle.putString(FirebaseAnalytics.Param.SCREEN_CLASS, "MainActivity"); mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW, bundle);
網絡模塊化API
import { getAnalytics, logEvent } from "firebase/analytics"; const analytics = getAnalytics(); logEvent(analytics, 'screen_view', { firebase_screen: screenName, firebase_screen_class: screenClass });
Web 命名空間 API
firebase.analytics().logEvent('screen_view', { firebase_screen: screenName, firebase_screen_class: screenClass });
Dart
await FirebaseAnalytics.instance.logEvent(
name: 'screen_view',
parameters: {
'firebase_screen': screenName,
'firebase_screen_class': screenClass,
},
);