# الجلسات بلا انهيار (Crash-Free Sessions)

> نسبة الجلسات التي انتهت بلا انهيار في التطبيق أو خطأ يوقف المستخدم، إلى إجمالي الجلسات.

- **المجال:** المنتج الرقمي (Product Management)
- **الوحدة:** %
- **تكرار القياس:** يومي
- **الاتجاه المرغوب:** أعلى أفضل
- **النوع:** تابع (Lagging)
- **الرابط:** https://kpihub.co/k/prod-crash-free

## الهدف

قياس أبسط وعد للمنتج: أن يعمل. فكل قيمة أخرى تسقط في اللحظة التي ينهار فيها أمام المستخدم.

## لماذا هو مهم

- الانهيار الواحد يكفي لتقييم سلبي في المتجر، والتقييم يؤثّر على كل اكتساب لاحق
- المستخدم لا يبلّغ عن الانهيار غالبًا، بل يحذف التطبيق بصمت
- الفارق بين 99% و99.9% هو الفرق بين انهيار كل مئة جلسة وكل ألف

## المعادلة

```
Crash-Free % = ((Sessions − Sessions with a crash) ÷ Sessions) × 100
```

احسبه بالمستخدم أيضًا لا بالجلسة وحدها. انهيار يصيب مستخدمًا واحدًا في كل جلساته لا يحرّك نسبة الجلسات ويعني أن هذا المستخدم لا يستطيع استعمال المنتج أصلًا.

## مثال محسوب

‏48,600 جلسة في اليوم، انهار التطبيق في 340 منها لدى 96 مستخدمًا. الحساب: ((48,600 − 340) ÷ 48,600) × 100 = 99.3% بالجلسة، و99.2% بالمستخدم.

## النطاق الاسترشادي

فوق 99.5% هو الحد المقبول في تطبيقات الجوّال، وفوق 99.9% في المنتجات الناضجة. وأي رقم تحت 99% يعني مشكلة تصل إلى المتجر قبل أن تصل إليك.

## تحليل الاتجاه

- انخفاضه بعد إصدار يعني تراجعًا يستوجب تراجعًا عن الإصدار لا انتظارًا
- تركّز الانهيارات في طراز جهاز أو إصدار نظام يوجّه الإصلاح مباشرةً
- ثباته العالي مع تقييمات سيئة يعني أن المشكلة في البطء لا في الانهيار

## أسئلة تشخيصية

- كم مستخدمًا متأثّرًا لا كم انهيارًا؟ الرقم الثاني يخفي الأول
- هل الانهيارات في إصدار أو جهاز بعينه؟ التركّز يقصّر الإصلاح
- كم يستغرق إصدار إصلاح عاجل؟ الجواب يحدّد شدّة كل انهيار

## نصائح عملية

- قِسه بالمستخدم والجلسة معًا، فأحدهما يخفي ما يظهره الآخر
- اربط التنبيه بانحدار الرقم بعد كل إصدار، فالكشف المبكّر يوفّر التقييمات
- افصله بطراز الجهاز وإصدار النظام، فالتركّز هو أسرع طريق للسبب

## العرض المناسب

- خط زمني للنسبة مع تعليم تواريخ الإصدارات
- أعمدة بطراز الجهاز وإصدار النظام
- باريتو لأنواع الانهيار بعدد المستخدمين المتأثّرين

## تحذيرات وفخاخ

- القياس بالجلسة وحده يخفي مستخدمين لا يعمل المنتج لديهم أبدًا
- تجاهل انهيار يصيب شريحة صغيرة لأنه لا يحرّك النسبة الكلّية
- الانتظار حتى الإصدار التالي لإصلاح انهيار يكلّف تقييمات لا تُسترد

## أثر التغيير

- إصلاح انهيار واحد يصيب 96 مستخدمًا يستعيد منتجًا معطّلًا تمامًا لديهم
- رفع النسبة من 99.3% إلى 99.9% يمنع نحو 290 انهيارًا يوميًّا
- الكشف المبكّر بعد الإصدار يمنع موجة تقييمات سلبية تؤثّر على الاكتساب شهورًا

## احسبه في أداتك

### Excel

```excel
=1 - COUNTIFS(S[Crashed],"Yes") / COUNTA(S[SessionID])
```

### Power BI (DAX)

```dax
Crash Free Sessions % =
1 - DIVIDE (
    CALCULATE ( DISTINCTCOUNT ( 'Session'[SessionID] ), 'Session'[Crashed] = TRUE () ),
    DISTINCTCOUNT ( 'Session'[SessionID] )
)
```

### Tableau

```
1 - ( COUNTD( IF [Crashed] THEN [Session ID] END ) / COUNTD([Session ID]) )
```

### SQL

```sql
SELECT app_version,
       device_model,
       (1 - COUNT(DISTINCT session_id) FILTER (WHERE crashed) * 1.0
            / NULLIF(COUNT(DISTINCT session_id), 0)) * 100 AS crash_free_pct,
       COUNT(DISTINCT user_id) FILTER (WHERE crashed)      AS affected_users
FROM   app_session
WHERE  started_at BETWEEN :from_date AND :to_date
GROUP  BY app_version, device_model
ORDER  BY affected_users DESC;
```

---

المصدر: [KPIHub](https://kpihub.co/k/prod-crash-free) · مرجع عربي مجاني لمؤشرات الأداء.
