يتتبّع 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 أو 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,
},
);