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 設定預設值。
如果您已在應用程式中停用 Swizzling,則必須手動設定所有畫面名稱。 如果是 SwiftUI 使用者,請使用 Analytics Swift 擴充功能 SDK。
Swift
Analytics.logEvent(AnalyticsEventScreenView, parameters: [AnalyticsParameterScreenName: screenName, AnalyticsParameterScreenClass: screenClass])
Objective-C
[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,
},
);