衡量屏幕浏览量

Google Analytics 会跟踪屏幕转换,并将有关当前屏幕的信息附加到事件,使您可以跟踪每个屏幕的用户互动度或用户行为等指标。大多数此类数据都是由系统自动收集的,不过您也可以手动记录屏幕浏览量。如果您的应用没有为您可能希望跟踪的每个屏幕使用单独的 UIViewControllerViewActivity(例如在游戏中),您可以手动跟踪屏幕。

自动跟踪屏幕

Analytics 会自动跟踪应用中屏幕的一些信息,例如当前获得焦点的 UIViewControllerActivity 的类名称。当发生屏幕转换时,Analytics 会记录一个用于标识新屏幕的 screen_view 事件。系统会使用参数 firebase_screen_class(例如 menuViewControllerMenuActivity)和生成的 firebase_screen_id 自动对这些屏幕上发生的事件进行标记。如果应用对每个屏幕使用不同的 UIViewControllerActivityAnalytics 便能自动跟踪每个屏幕转换,并生成按屏幕细分的用户互动度报告。如果您的应用未采用这一方法,您仍然可以通过手动记录 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 事件。您可以通过 onAppearviewDidAppear 方法(Apple 平台)和 onResume (Android) 记录这些事件。如果未设置 screen_classAnalytics 会根据在进行调用时获得焦点的 UIViewController 或 Activity 设置默认值。

如果您已在应用中停用调配,则必须手动设置所有屏幕名称。对于 SwiftUI 用户,请使用 Analytics Swift 扩展程序 SDK

Swift

注意:此 Firebase 产品不适用于 macOS 目标平台。
Analytics.logEvent(AnalyticsEventScreenView,
                   parameters: [AnalyticsParameterScreenName: screenName,
                                AnalyticsParameterScreenClass: screenClass])

Objective-C

注意:此 Firebase 产品不适用于 macOS 目标平台。
[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,
  },
);