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,
},
);