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