قياس مشاهدات الصفحة في التطبيق

تتتبّع 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

ملاحظة: لا يتوفّر منتج Firebase هذا على نظام التشغيل macOS.
Analytics.logEvent(AnalyticsEventScreenView,
                   parameters: [AnalyticsParameterScreenName: screenName,
                                AnalyticsParameterScreenClass: screenClass])

Objective-C

ملاحظة: لا يتوفّر منتج Firebase هذا على نظام التشغيل macOS.
[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,
  },
);