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