הקוד 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
בפלטפורמות של Apple, ובשיטה 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+KTX
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,
},
);