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