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 設置默認值。
迅速
Analytics.logEvent(AnalyticsEventScreenView, parameters: [AnalyticsParameterScreenName: screenName, AnalyticsParameterScreenClass: screenClass])
Objective-C
[FIRAnalytics logEventWithName:kFIREventScreenView parameters:@{kFIRParameterScreenClass: screenClass, kFIRParameterScreenName: screenName}];
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);
Kotlin+KTX
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) { param(FirebaseAnalytics.Param.SCREEN_NAME, screenName) param(FirebaseAnalytics.Param.SCREEN_CLASS, "MainActivity") }
Web version 9
import { getAnalytics, logEvent } from "firebase/analytics"; const analytics = getAnalytics(); logEvent(analytics, 'screen_view', { firebase_screen: screenName, firebase_screen_class: screenClass });
Web version 8
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,
},
);