يتتبّع 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 أو النشاط
الذي يتم التركيز عليه عند إجراء المكالمة.
إذا أوقفت ميزة 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,
},
);