Screen View في التحليلات المحمولة — ما هو، المقاييس الرئيسية وكيفية التتبع

المؤلف: IT Sectr نُشر: 2026-04-21 وقت القراءة: 9 دق

Screen View هو حدث تحليلات محمولة يسجل فتح كل شاشة في التطبيق. وهو المكافئ لـ page_view على الويب، مُكيَّف مع نموذج التنقل للواجهات المحمولة. وفقًا لـ Amplitude، 2024، Screen View هو الحدث الأكثر تكرارًا في تحليلات التطبيقات، حيث يشكل ما يصل إلى 40% من جميع الأحداث المرسلة. التنفيذ الصحيح لتتبع الشاشات هو الأساس لتحليل مسارات المستخدم والمسارات التحويلية.

الخلاصة

  • Screen View هو حدث يسجل فتح شاشة في تطبيق محمول مع تحديد اسمها.
  • Screen View vs Page View: التطبيق المحمول لا يستخدم URL — يتم التحديد بواسطة اسم Activity أو ViewController أو المسار.
  • التتبع التلقائي للشاشات يتم عبر NavigationObserver على iOS وNavigationController على Android.
  • Screen Name هو معلمة رئيسية للحدث، يجب أن تكون مفهومة للمحلل دون معرفة بالكود.
  • Screen Flow هو تسلسل الشاشات في الجلسة، أساس بناء المسارات التحويلية وتحليل الانسحاب.

ما هو Screen View؟

Screen View هو حدث تحليلات يُرسل عند فتح شاشة تطبيق محمول. يحتوي الحدث على اسم الشاشة (screen_name) والصنف (screen_class) وطابع زمني. على عكس تحليلات الويب، حيث يرتبط page_view بـ URL، في التطبيقات المحمولة تُحدد الشاشات باسم Activity أو Fragment أو ViewController أو Custom View.

هيكل حدث Screen View

المعلمةالنوعمثال
screen_nameString«Product Details»
screen_classString«ProductDetailActivity»
previous_screenString«CatalogScreen»
timestampLong1719876543000
duration_secInt45

معامل previous_screen مهم بشكل خاص: فهو يسمح باستعادة تسلسل التنقلات وبناء Screen Flow — خريطة لمسارات المستخدم عبر التطبيق.

Screen View vs Page View: الفروقات الرئيسية

Screen View وPage View يحلان نفس المهمة — تسجيل المشاهدة — لكن في بيئات مختلفة. على الويب، يُحدد URL الصفحة بشكل فريد، ويرتبط Page View بتحميل المستند. في التطبيقات المحمولة، الشاشة هي حالة واجهة لا تتوافق بالضرورة مع عنوان منفصل.

  • يرتبط Page View بطلب HTTP و URL — يرتبط Screen View بحدث دورة حياة Activity/ViewController
  • لا يتكرر Page View عند العودة للخلف (يُستخدم التخزين المؤقت) — يُرسل Screen View مرة أخرى كل مرة تُفتح فيها الشاشة
  • يكون Page View أقصر عادةً — المستخدمون يشاهدون صفحة ويب أسرع من شاشة محمولة تحتوي على عناصر تفاعلية

فرق آخر هو عمق السياق. Screen View في تطبيق محمول يتضمن معلمات الحالة: هل المستخدم مصرح له، وما البيانات التي تم تحميلها، وهل الشاشة مفتوحة في وضع التحرير. Page View على الويب نادراً ما يحمل هذا السياق — فهو يسجل فقط حقيقة تحميل URL. هذا يجعل Screen View أكثر إفادة لتحليلات المنتج، حيث يمكن تقسيم كل حدث حسب الحالة.

الأخطاء النموذجية عند العمل مع Screen View

الخطأ الأول — إرسال screen_view عند كل تغيير حالة داخل الشاشة (تبديل التبويبات، فتح نافذة منبثقة). يجب أن يسجل Screen View فقط الانتقال الكامل إلى شاشة جديدة، وليس التفاعلات الدقيقة.

الخطأ الثاني — استخدام الاسم التقني للصنف بدلاً من اسم قابل للقراءة. «ProductDetailActivityKt» عديم الفائدة للمحلل — استخدم «Product Details» في screen_name.

الخطأ الثالث — إرسال screen_view بدون الحقول المقابلة. screen_name فارغ يُنشئ مجموعة من السجلات غير المفيدة التي لا يمكن تجميعها. قم دائمًا بتمرير screen_name و screen_class على الأقل، حتى على شاشات الاختبار.

كيفية تتبع Screen View؟

يعتمد تنفيذ تتبع Screen View على بنية التنقل. دعنا نستعرض الأساليب التلقائية واليدوية باستخدام Jetpack Compose وSwiftUI كمثال.

Android: التتبع التلقائي في Jetpack Compose

استخدم LifecycleEventObserver على مستوى NavigationComponent. في كل مرة ينتقل المستخدم إلى مسار جديد، يتم تشغيل حدث screen_view.

kotlin
class ScreenTrackingObserver(
    private val analytics: AnalyticsProvider
) : LifecycleEventObserver {

    override fun onStateChanged(
        source: LifecycleOwner,
        event: Lifecycle.Event
    ) {
        if (event == Lifecycle.Event.ON_RESUME) {
            val route = source.getRouteFromLifecycleOwner()
            analytics.logScreenView(
                screenName = route.screenName,
                screenClass = source.getLocalClassName()
            )
        }
    }
}

// الاتصال في NavHost
fun NavBackStackEntry.trackScreenView(analytics: AnalyticsProvider) {
    lifecycle.addObserver(ScreenTrackingObserver(analytics))
}

يضمن هذا النهج إرسال screen_view في كل مرة تعود فيها الشاشة إلى المقدمة، بما في ذلك العودة من الخلفية. Lifecycle.Event.ON_RESUME هو اللحظة المناسبة للتتبع، وليس ON_START أو ON_CREATE.

iOS: التتبع التلقائي في SwiftUI

في SwiftUI يُستخدم المُعدِّل onAppear المضمن في كل View. للأتمتة، يتم إنشاء ViewModifier.

swift
struct ScreenTrackingModifier: ViewModifier {

    let screenName: String

    func body(content: Content) -> some View {
        content.onAppear {
            Analytics.shared().logScreenView(
                name: screenName,
                className: "\(Self.self)"
            )
        }
    }
}

extension View {
    func trackScreen(_ name: String) -> some View {
        modifier(ScreenTrackingModifier(screenName: name))
    }
}

// الاستخدام:
ProductDetailView()
    .trackScreen("Product Details")

يُضاف المُعدِّل trackScreen إلى أي View بسطر واحد. هذا حل نظيف وقابل للتوسع لمشاريع SwiftUI.

Screen View في المشاريع متعددة الوحدات

في المشاريع ذات البنية المعيارية، قد تستخدم كل وحدة تسمية خاصة بها للشاشات، مما يؤدي إلى تكرار screen_name. enum ScreenName مركزي يحل المشكلة — يتم تسمية جميع الشاشات وفق معيار واحد في مكان واحد. إضافة شاشة جديدة تتطلب فقط ثابتاً جديداً في enum، وليس البحث في جميع أنحاء الكود.

استخدم sealed class لوصف screen_name مع التجميع حسب الميزة: ProfileScreen.CHANGE_PASSWORD، OrdersScreen.ORDER_HISTORY، CatalogScreen.SEARCH_RESULTS. هذا يُبسِّط التصفية في تقارير التحليلات.

Screen Flow: تحليلات التنقل بين الشاشات

Screen Flow (أو Path Analysis) هو تصور لتسلسل الشاشات التي يمر بها المستخدم. إنها الأداة الرئيسية لتحديد الاختناقات في التنقل.

بناء Screen Flow

كل Screen View مع معامل previous_screen يُعطي حافة في الرسم البياني: CatalogScreen ← ProductDetails ← CartScreen. بتجميع جميع التنقلات، يتم بناء خريطة المسارات. مسار تحويلي من ثلاث خطوات بناءً على Screen Flow يُظهر أين ينسحب المستخدمون.

  • الخطوة 1: HomeScreen ← CatalogScreen (95% يستمرون)
  • الخطوة 2: CatalogScreen ← ProductDetails (65% يستمرون — 35% يغادرون)
  • الخطوة 3: ProductDetails ← AddToCart (30% يستمرون — نخسر 35% أخرى)

وفقًا لـ Mixpanel (2024)، يكشف تحليل Screen Flow عن ما يصل إلى 40% من مشاكل تجربة المستخدم التي لا تظهر عند تحليل الأحداث الفردية. على سبيل المثال، التنقل المتكرر ProductDetails ← HomeScreen بدون شراء يشير إلى مشكلة في السعر أو وصف المنتج.

تحليل الانسحاب (Drop-off)

Drop-off هو النقطة التي يغادر عندها المستخدم سيناريو. إذا غادر 60% من المستخدمين بعد شاشة التحميل، فالمشكلة في سرعة التحميل أو الرسوم المتحركة. إذا كان بعد Paywall — ففي تكلفة أو قيمة الاشتراك.

Screen Flow في Firebase وBigQuery

Firebase لا يوفر تقرير Screen Flow جاهز، لكن بيانات screen_view متاحة في BigQuery. قم ببناء استعلام يجمع التنقلات حسب الزوج (previous_screen، screen_name) ويحسب التكرار. النتيجة هي مصفوفة تنقلات يمكن تصورها في Looker Studio كمخطط Sankey.

عزِّز Screen Flow بالتقسيم: بشكل منفصل للمستخدمين الجدد (أول 7 أيام) والمستخدمين العائدين. المستخدمون الجدد غالبًا ما يعلقون في شاشات الإعداد، بينما المستخدمون ذوو الخبرة يصلون أسرع إلى الإجراءات المستهدفة. مقارنة التدفقين تكشف عن اختناقات التكيف.

أدوات تحليل Screen View

اختيار الأداة لتحليل Screen View يعتمد على الميزانية والتقنية ومستوى التفاصيل المطلوب. دعنا نستعرض ثلاثة حلول شائعة.

Firebase Analytics (مجاني)

Firebase يتتبع الشاشات تلقائيًا عبر معامل screen_view في كل حدث. لا يتطلب كودًا إضافيًا بعد دمج SDK. القيد: يتم إنشاء screen_name من Activity/ViewController، مما لا ينتج دائمًا أسماء قابلة للقراءة.

Amplitude (احترافي)

Amplitude يقدم Pathfinder مدمج — منشئ Screen Flow بصري. يدعم خصائص المستخدم والتقسيم حسب المجموعات. يسمح بإعادة تسمية الشاشات من جانب الخادم دون تغييرات في كود التطبيق.

Mixpanel (الشريحة المتوسطة)

Mixpanel يوفر تقرير Flows في الوقت الفعلي. يمكنه إظهار ليس فقط التنقلات الخطية ولكن أيضًا التفرعات — أي الشاشات تُزار بعد شاشة محددة. يتكامل مع SDKs لأنظمة iOS وAndroid وFlutter وReact Native.

تأثير Screen View على الأداء

كل حدث screen_view هو إرسال بيانات عبر الشبكة. إذا كان التطبيق يُرسل screen_view عند كل تبديل تبويب (20+ في الدقيقة)، فإنه يُنشئ حملاً غير ضروري. التحسين: خزِّن screen_view مؤقتًا وأرسله على دفعات كل 5 ثوانٍ. Firebase يجمع الأحداث تلقائيًا، لكن SDKs المخصصة قد تُرسل كل استدعاء فورًا.

قم بقياس العبء الإضافي للتتبع: أضف طابعًا زمنيًا إلى كل screen_view واحسب التأخير من onResume إلى الإرسال. إذا تجاوز التأخير 100 مللي ثانية، فإن التتبع يؤثر على تجربة المستخدم. استخدم خيطًا خلفيًا للإرسال لتجنب حظر خيط الواجهة. على الأجهزة منخفضة المستوى، الفرق ملحوظ.

الأسئلة الشائعة

هل أحتاج إلى إرسال Screen View لكل جزء داخل TabLayout؟

نعم، كل جزء له محتواه الخاص هو شاشة منفصلة. TabLayout بثلاث علامات تبويب يجب أن يُرسل ثلاثة أحداث screen_view مختلفة عند التبديل. الاستثناء: النوافذ المنبثقة للتبويبات بدون تنقل مستقل.

كيف يختلف screen_name عن screen_class؟

screen_class هو الاسم التقني للصنف (على سبيل المثال، «MainActivity»)، يستخدمه المطورون. screen_name هو اسم قابل للقراءة («الشاشة الرئيسية»)، يُستخدم في التقارير. غالبًا ما تملأ SDKs screen_class تلقائيًا، بينما يجب تعيين screen_name يدويًا.

كيف أتجنب تكرار Screen View عند تدوير الشاشة؟

عند تدوير الجهاز، يُعاد إنشاء Activity، مما يسبب screen_view مكرر. استخدم فحص الحالة: أرسل الحدث فقط عند تغيير الشاشة، وليس عند كل ON_RESUME. Firebase وAmplitude يزيلان تكرار screen_view تلقائيًا.

كم عدد أحداث Screen View الطبيعي لمستخدم واحد في اليوم؟

لتطبيق متوسط — 10–30 screen_view لكل مستخدم في اليوم. تطبيقات الأخبار: 15–20. الألعاب: 20–40. الأدوات: 5–10. إذا تجاوز الرقم 100، تحقق من إرسال الشاشات عند كل نقرة بدلاً من الانتقال الكامل.

هل يمكن استخدام Screen View لتحليل اختبارات A/B؟

نعم، screen_view هو أحد المؤشرات في اختبارات A/B. قارن عدد مشاهدات الشاشة بين البديلين A وB. إذا كانت شاشة «Checkout» في البديل B تتلقى 15% أقل من أحداث screen_view، فهذه إشارة إلى مشكلة في بطاقة المنتج.

الملخص

  • Screen View هو حدث تحليلات أساسي يسجل فتح شاشة في تطبيق محمول.
  • Screen View vs Page View: تُحدد الشاشة المحمولة باسم Activity/ViewController، وليس بواسطة URL.
  • التتبع التلقائي عبر LifecycleObserver (Android) أو ViewModifier (iOS) هو معيار الصناعة.
  • Screen Flow — رسم بياني للتنقلات بين الشاشات — يكشف عن ما يصل إلى 40% من مشاكل UX.
  • تحليل الانسحاب بناءً على screen_view يُظهر نقاط فقدان المستخدمين الدقيقة في المسار التحويلي.
  • Firebase وAmplitude وMixpanel هي الأدوات الرئيسية لتحليل Screen View.
  • الاسم الصحيح للشاشة (screen_name) شرط إلزامي لتقارير قابلة للقراءة.

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا