يتتبّع 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
(Boolean) في ملف 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
الذي يكون موضع التركيز عند إجراء المكالمة.
إذا أوقفت ميزة "تبديل الأسماء" في تطبيقك، يجب ضبط جميع أسماء الشاشات يدويًا. بالنسبة إلى مستخدمي SwiftUI، استخدِم Analytics حزمة تطوير البرامج (SDK) لإضافة Swift.
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,
},
);