Google Analytics تتتبّع عمليات الانتقال بين الشاشات وتُرفق معلومات
عن الشاشة الحالية بالأحداث، ما يتيح لك تتبُّع مقاييس مثل تفاعل المستخدم
أو سلوك المستخدم لكل شاشة. يتم جمع معظم هذه البيانات تلقائيًا، ولكن يمكنك أيضًا تسجيل مشاهدات الشاشة يدويًا. يكون تتبُّع
الشاشات يدويًا مفيدًا إذا كان تطبيقك لا يستخدم UIViewControllerأو
Viewأو Activityمنفصلة لكل شاشة قد ترغب في تتبُّعها، كما هو الحال في إحدى الألعاب مثلاً.
تتبُّع الشاشات تلقائيًا
Analytics تتتبّع تلقائيًا بعض المعلومات عن الشاشات في تطبيقك، مثل اسم فئة UIViewController أو Activity التي تكون محل التركيز حاليًا. عند حدوث انتقال بين الشاشات، تسجِّل Analytics حدث screen_view يحدِّد الشاشة الجديدة. يتم تلقائيًا وضع علامة على الأحداث التي تحدث على هذه الشاشات باستخدام المَعلمة firebase_screen_class (مثل menuViewController أو MenuActivity) وfirebase_screen_id تم إنشاؤه. إذا كان تطبيقك يستخدم UIViewController أو
Activity منفصلة لكل شاشة، يمكن أن تتتبّع Analytics تلقائيًا كل عملية انتقال بين الشاشات وتُنشئ تقريرًا عن تفاعل المستخدم مقسّمًا حسب الشاشة. إذا لم يكن تطبيقك يستخدم `UIViewController` أو `Activity` منفصلة لكل شاشة، يمكنك مع ذلك الحصول على هذه التقارير من خلال تسجيل أحداث 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 أو Activity
التي تكون محل التركيز عند إجراء المكالمة.
إذا أوقفت طريقة swizzling في تطبيقك، يجب ضبط جميع أسماء الشاشات يدويًا. بالنسبة إلى مستخدمي SwiftUI، استخدِم Analytics حزمة تطوير البرامج (SDK) لإضافة الامتداد Swift.
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,
},
);