Google Analytics 会跟踪屏幕转换,并将有关当前屏幕的信息附加到事件,使您可以跟踪每个屏幕的用户互动度或用户行为等指标。大多数此类数据都是由系统自动收集的,不过您也可以手动记录屏幕浏览量。如果您的应用没有为您可能希望跟踪的每个屏幕使用单独的 UIViewController
、View
或 Activity
(例如在游戏中),您可以手动跟踪屏幕。
自动跟踪屏幕
Analytics 会自动跟踪应用中屏幕的一些信息,例如当前获得焦点的 UIViewController
或 Activity
的类名称。当发生屏幕转换时,Analytics 会记录一个用于标识新屏幕的 screen_view
事件。系统会使用参数 firebase_screen_class
(例如 menuViewController
或 MenuActivity
)和生成的 firebase_screen_id
自动对这些屏幕上发生的事件进行标记。如果应用对每个屏幕使用不同的 UIViewController
或 Activity
,Analytics 便能自动跟踪每个屏幕转换,并生成按屏幕细分的用户互动度报告。如果您的应用未采用这一方法,您仍然可以通过手动记录 screen_view
事件来生成这些报告。
停用屏幕浏览跟踪
在 iOS 系统中,可以通过将 Info.plist 中的 FirebaseAutomaticScreenReportingEnabled
设置为 NO
(布尔值)来关闭自动报告屏幕浏览量的功能。
在 Android 中,则可以将以下设置嵌套在 AndroidManifest.xml
文件的 <application>
标记中:
<meta-data android:name="google_analytics_automatic_screen_reporting_enabled" android:value="false" />
手动跟踪屏幕
无论是否启用了自动跟踪功能,您都可以手动记录 screen_view
事件。您可以通过 onAppear
或 viewDidAppear
方法(Apple 平台)和 onResume
(Android) 记录这些事件。如果未设置 screen_class
,Analytics 会根据在进行调用时获得焦点的 UIViewController 或 Activity 设置默认值。
如果您已在应用中停用调配,则必须手动设置所有屏幕名称。对于 SwiftUI 用户,请使用 Analytics Swift 扩展程序 SDK。
Swift
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);
Web
import { getAnalytics, logEvent } from "firebase/analytics"; const analytics = getAnalytics(); logEvent(analytics, 'screen_view', { firebase_screen: screenName, firebase_screen_class: screenClass });
Web
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,
},
);