بالنسبة إلى كل تطبيق من تطبيقاتك، تحسب Crashlytics تلقائيًا وتعرض مقاييس خلو التطبيق من الأعطال، وتحديدًا النسبة المئوية للمستخدمين الذين لم يواجهوا أي أعطال والنسبة المئوية للجلسات الخالية من الأعطال. يمكن أن تساعدك هذه المقاييس في التعرّف بسرعة على مدى ثبات تطبيقك.
يمكنك العثور على رسومات بيانية لهذه المقاييس الخالية من الأعطال في أعلى لوحة بيانات Crashlytics، ويمكنك فلترة هذه الرسومات البيانية حسب مجموعة متنوعة من السمات، مثل النطاق الزمني والإصدار ومسار Google Play (لتطبيقات Android).
يُرجى العلم أنّه يتم احتساب مقاييس عدم حدوث أعطال للأحداث الخطيرة فقط (والاستثناءات التي لم يتم رصدها والتي تم الإبلاغ عنها كأخطاء خطيرة في Unity وFlutter).
الحصول على مقاييس عدم حدوث أعطال
في معظم التطبيقات، يتم احتساب مقاييس عدم حدوث أعطال تلقائيًا عند دمج حزمة تطوير البرامج (SDK) الخاصة بـ Crashlytics في تطبيقك. ومع ذلك، هناك بعض الحالات التي لا تتلقّى فيها Crashlytics البيانات اللازمة لاحتساب مقاييس عدم حدوث أعطال:
إنشاءات تطبيقك التي تستخدم إصدارًا قديمًا من حزمة تطوير البرامج (SDK) Crashlytics (يمكنك الاطّلاع على الحد الأدنى من الإصدارات المتوافقة أدناه)
إصدارات تطبيقك التي توقِف عملية جمع بيانات Crashlytics وإعداد التقارير تلقائيًا (يمكنك الاطّلاع على مزيد من المعلومات في قسم "تأثير إعدادات جمع البيانات في جودة المقاييس" من هذه الصفحة)
إصدارات حزمة تطوير البرامج (SDK) التي تتوافق مع مقاييس عدم حدوث أعطال
للحصول على مقاييس خالية من الأعطال، يجب تحديث تطبيقك لاستخدام إصدار Crashlytics من حزمة تطوير البرامج (SDK) يتوافق مع هذه المقاييس. في ما يلي الحد الأدنى من الإصدارات المتوافقة لحزمة تطوير البرامج (SDK) Crashlytics التي يمكنها توفير مقاييس خالية من الأعطال:
- منصات Apple: الإصدار 10.8.0 أو إصدار أحدث
- Android: الإصدار 18.6.0 أو إصدار أحدث (BoM الإصدار 32.6.0 أو إصدار أحدث)
- Flutter: الإصدار 3.4.5 أو الإصدارات الأحدث
- Unity: الإصدار 11.7.0 أو إصدار أحدث
ستتلقّى تلقائيًا مقاييس خالية من الأعطال لإصدارات تطبيقك التي تستخدم إصدارًا محدَّثًا من حزمة تطوير البرامج (SDK).
ما هي مقاييس عدم حدوث الأعطال؟
تشمل مقاييس عدم حدوث أعطال المستخدمين الذين لم يواجهوا أي أعطال والجلسات التي لم تشهد أي أعطال.
تعتمد مقاييس "عدم حدوث أعطال" على مفهومَين: المستخدمون والجلسات. للحصول على مقاييس خالية من الأعطال لتطبيقك، عليك استخدام إصدار Crashlytics من حزمة SDK يمكنه إرسال بيانات حول هذين المفهومين. في ما يلي كيفية تمييز Crashlytics المستخدم عن الجلسة:
المستخدم هو عملية تثبيت فردية لتطبيقك على أحد الأجهزة. على سبيل المثال، إذا كان تطبيقك مثبّتًا على عدّة أجهزة مختلفة، سيحتسب مقياس Crashlytics كل عملية تثبيت كمستخدم مختلف وفريد.
الجلسة هي فترة زمنية متواصلة يتفاعل خلالها المستخدم مع أحد التطبيقات. تبدأ جلسة جديدة عند بدء تشغيل التطبيق من البداية أو عند نقله إلى المقدّمة بعد 30 دقيقة على الأقل من تشغيله في الخلفية.
بالإضافة إلى ذلك، يتم احتساب مقاييس الجلسات الخالية من الأعطال للأحداث الخطيرة فقط (والاستثناءات التي لم يتم رصدها والتي تم الإبلاغ عنها كأخطاء خطيرة في Unity وFlutter).
ما هو مقياس المستخدمين الذين لم يواجههم أي تعطُّل؟
مقياس المستخدمون الذين لم يواجهوا أي أعطال هو النسبة المئوية للمستخدمين الذين تفاعلوا مع تطبيقك خلال فترة زمنية محدّدة ولكن لم يواجهوا أي أعطال. يعكس هذا المقياس التجربة التي يقدّمها تطبيقك لمستخدم واحد. ويتم تتبُّعه بشكل متكرّر كمقياس رئيسي لحالة التطبيق بالكامل، وذلك عندما يكون الهدف هو تجربة المستخدم الإجمالية.
قد ينطبق هذا المقياس تحديدًا على أنواع التطبيقات التالية:
التطبيقات التي تتضمّن جلسات طويلة وعادية، مثل تطبيقات البث عند الطلب أو تطبيقات التواصل الاجتماعي أو الألعاب العادية، حيث يمكن للمستخدم مواصلة اللعب من حيث توقّف، لأنّ المستخدمين يتفاعلون عادةً مع هذه التطبيقات في تجارب أطول، وغالبًا ما تكون متعددة الجلسات، لذا تكون الأولوية لزيادة إجمالي عدد المستخدمين الذين لم يواجهوا أعطالاً على ضمان عدم حدوث أي مشاكل في كل جلسة على حدة.
التطبيقات التي لديها قاعدة مستخدمين كبيرة، مثل تطبيقات العمل المعروفة أو المنصات الكبيرة على الإنترنت، حيث تفوق العادة والحاجة إلى هذه المنصات الإزعاج الناتج عن حدوث عطل
ما هو مقياس الجلسات الخالية من الأعطال؟
مقياس الجلسات الخالية من الأعطال هو النسبة المئوية للجلسات التي حدثت خلال فترة زمنية محدّدة ولم تنتهِ بعطل. تشير الجلسات التي لا تتضمّن أعطالاً إلى الموثوقية العامة للتطبيق وتزيد من ثقة المستخدمين. تتسم أهمية تتبُّع الجلسات الخالية من الأعطال بأهمية خاصة في المراحل الأولى من الإصدار الجديد، إذ قد يؤدي حدوث عُطل أثناء تفاعل المستخدم الأول إلى شعوره بالإحباط الشديد لدرجة التوقف عن استخدام التطبيق.
يُعدّ هذا المقياس غالبًا المقياس المفضّل لأنواع التطبيقات التالية:
التطبيقات التي تتضمّن أنماط استخدام قصيرة ومكثّفة، مثل ألعاب الوقت الفعلي أو تطبيقات البث المباشر التي تتطلّب سرعة الاستجابة، حيث يمكن أن يؤدي حدوث عطل في منتصف لحظة مهمة إلى إحباط المستخدم
التطبيقات التي تتضمّن عواقب كبيرة مثل التطبيقات المالية أو تطبيقات الملاحة، حيث يكون التركيز على الحالة النهائية للتجربة ويمكن أن يؤدي تعطُّل أحد هذه التطبيقات إلى حدوث مشاكل كبيرة، ما يؤدي إلى فقدان الثقة في التطبيق.
احتساب المقاييس التي لم يواجهها أي تعطُّل
كيف يتم احتساب المستخدمين الذين لم يواجهوا أي أعطال؟
تمثّل قيمة "المستخدمون الذين لم يواجهوا أي أعطال" النسبة المئوية للمستخدمين الذين تفاعلوا مع تطبيقك ولكنهم لم يواجهوا أي أعطال خلال فترة زمنية محدّدة.
في ما يلي صيغة احتساب النسبة المئوية للمستخدمين الذين لم يواجههم أي تعطُّل. يتم توفير قيم الإدخال من خلال حزمة تطوير البرامج (SDK) الخاصة بـ Crashlytics، وهي تستند إلى الفترة الزمنية التي اخترتها من القائمة المنسدلة في أعلى يسار لوحة بيانات Crashlytics.
CRASH_FREE_USERS_PERCENTAGE = 1 - (CRASHED_USERS / ALL_USERS)
يمثّل CRASHED_USERS إجمالي عدد المستخدمين الفرديين الذين حدث عطل في أجهزتهم خلال الفترة الزمنية المحدّدة.
يمثّل ALL_USERS إجمالي عدد المستخدمين الذين تفاعلوا مع تطبيقك خلال الفترة الزمنية المحدّدة.
إنّ النسبة المئوية للمستخدمين الذين لم يواجههم أي تعطُّل هي تجميع على مدار الوقت، وليست متوسطًا.
يجب عدم مقارنة قيمة "المستخدمون الذين لم يواجههم أي تعطُّل" على مدار فترات زمنية مختلفة. يزداد احتمال مواجهة مستخدم واحد لعُطل كلما زاد عدد مرات استخدامه لتطبيقك، لذا من المرجّح أن تكون قيمة المستخدمين الذين لم يواجهوا أي أعطال أقل خلال الفترات الزمنية الأطول.
كيف يتم احتساب الجلسات الخالية من الأعطال؟
تمثّل قيمة "الجلسات الخالية من الأعطال" النسبة المئوية للجلسات التي حدثت في تطبيقك ولكنها لم تتضمّن أي أعطال خلال فترة زمنية محدّدة.
في ما يلي صيغة احتساب النسبة المئوية للجلسات الخالية من الأعطال. يتم توفير قيم الإدخال من خلال حزمة تطوير البرامج (SDK) الخاصة بـ Crashlytics، وهي تستند إلى الفترة الزمنية التي اخترتها من القائمة المنسدلة في أعلى يسار لوحة بيانات Crashlytics.
CRASH_FREE_SESSIONS_PERCENTAGE = 1 - (CRASHED_SESSIONS / ALL_SESSIONS)
يمثّل CRASHED_SESSIONS عدد الجلسات التي انتهت بتعطُّل خلال الفترة الزمنية المحدّدة.
يمثّل ALL_SESSIONS إجمالي عدد الجلسات التي حدثت في تطبيقك خلال الفترة الزمنية المحدّدة.
نسبة الجلسات الخالية من الأعطال هي تجميع على مدار الوقت، وليست متوسطًا.
تأثير إعدادات جمع البيانات في جودة المقاييس
استنادًا إلى إعدادات جمع البيانات، قد تعرض مقاييسك الخاصة بعدم حدوث أعطال قيمًا منخفضة أو صفرية. في ما يلي سيناريوهان شائعان يمكن أن يؤديا إلى ظهور مقاييس غير موثوقة بشأن عدم حدوث أعطال:
في حال تفعيل ميزة إعداد التقارير عند الموافقة من خلال إيقاف ميزة إعداد تقارير الأعطال التلقائي، لا يمكن إرسال معلومات الأعطال إلى Crashlytics إلا من المستخدمين الذين وافقوا صراحةً على جمع البيانات. وبالتالي، ستتأثر دقة مقاييس عدم حدوث الأعطال لأنّ Crashlytics لا يتضمّن سوى معلومات الأعطال من هؤلاء المستخدمين الذين وافقوا على مشاركة البيانات (بدلاً من جميع المستخدمين). وهذا يعني أنّ مقاييسك الخاصة بعدم حدوث أعطال قد تكون أقل موثوقية وأقل تعبيرًا عن الثبات العام لتطبيقك.
إذا كانت ميزة جمع البيانات تلقائيًا غير مفعّلة، يمكنك استخدام
sendUnsentReports
لإرسال التقارير المخزّنة مؤقتًا على الجهاز إلى Crashlytics. سيؤدي استخدام هذه الطريقة إلى إرسال بيانات الأعطال إلى Crashlytics، ولكن ليس بيانات الجلسات، ما يؤدي إلى عرض قيم منخفضة أو صفرية في رسومات وحدة التحكّم البيانية لمقاييس "خالٍ من الأعطال".