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