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