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