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 על ידי הגדרת הערך FirebaseAutomaticScreenReportingEnabled
ל-NO
(בוליאני) בקובץ Info.plist.
ב-Android, מטמיעים את ההגדרה הבאה בתג <application>
של הקובץ AndroidManifest.xml
:
<meta-data android:name="google_analytics_automatic_screen_reporting_enabled" android:value="false" />
מעקב ידני אחרי מסכים
אפשר לרשום אירועים של screen_view
באופן ידני, גם אם המעקב האוטומטי מופעל וגם אם הוא מושבת. אפשר לתעד את האירועים האלה בשיטות onAppear
או viewDidAppear
לפלטפורמות של אפל ובשיטה onResume
ל-Android. אם לא מגדירים את screen_class
, Analytics מגדיר ערך ברירת מחדל על סמך ה-UIViewController או הפעילות שנמצאים במוקד כשהשיחה מתבצעת.
אם השבתתם את ההחלפה באפליקציה, צריך להגדיר את כל שמות המסכים באופן ידני. משתמשי SwiftUI צריכים להשתמש ב-Analytics Swift extension 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,
},
);