評估畫面瀏覽

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 事件。您可以使用 Apple 平台的 onAppear 或 viewDidAppear 方法,以及 Android 的 onResume 記錄這些事件。如果未設定 screen_class,Analytics 會根據呼叫時聚焦的 UIViewController 或 Activity 設定預設值。

如果您在應用程式中停用 swizzling,則必須手動設定所有畫面名稱。如果是 SwiftUI 使用者,請使用 Analytics Swift 擴充功能 SDK。

Swift

注意:這項 Firebase 產品不適用於 watchOS 目標。
Analytics.logEvent(AnalyticsEventScreenView,
                   parameters: [AnalyticsParameterScreenName: screenName,
                               AnalyticsParameterScreenClass: screenClass])

Objective-C

注意:這項 Firebase 產品不適用於 watchOS 目標。
[FIRAnalytics logEventWithName:kFIREventScreenView
                    parameters:@{kFIRParameterScreenClass: screenClass,
                                 kFIRParameterScreenName: screenName}];

Kotlin

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