الدرس 12 · الوحدة 6: تحليل السلوك والاتجاهات على الويب
مقاييس السلوك: الارتداد والجلسة والتحويل
من الزيارات الخام إلى مقاييس تقرأ التجربة: من يرتدّ؟ من يبقى؟ من يشتري؟ ⏱ نحو 45 دقيقة.
بعد هذا الدرس ستستطيع أن:
- تعرّف مقاييس السلوك الثلاثة.
- تحسبها من البيانات الخام.
- تستفيد من
meanعلى الأعمدة المنطقية. - تبني قمع تحويل وتكشف موضع التسرّب.
١مقاييس تقيس التجربة
أرقام الويب الخام (زيارات، ثوانٍ) لا تعني شيئًا وحدها. التحليل يحوّلها إلى مقاييس سلوك تصف التجربة: هل الزائر يتفاعل أم يرحل فورًا؟ هل يشتري؟
| المقياس | تعريفه | ماذا يكشف |
|---|---|---|
| معدّل الارتداد Bounce | نسبة الجلسات بصفحة واحدة فقط | صفحات تطرد الزوّار |
| مدة الجلسة Session | متوسط زمن البقاء | مدى التفاعل |
| معدّل التحويل Conversion | نسبة الجلسات الشرائية | فاعلية الموقع تجاريًّا |
٢حساب المقاييس الثلاثة
import pandas as pdsessions = pd.DataFrame({ "session": [1,2,3,4,5,6,7,8], "pages": [1, 4, 1, 6, 2, 1, 3, 5], "seconds": [8, 120, 5, 240, 40, 3, 90, 180], "bought": [False, True, False, True, False, False, False, True],})n = len(sessions)# ارتداد: جلسة بصفحة واحدةbounce = (sessions["pages"] == 1).mean()# متوسط مدة الجلسةavg_session = sessions["seconds"].mean()# تحويل: جلسات شرائيةconversion = sessions["bought"].mean() print("معدّل الارتداد:", round(bounce * 100, 1), "%")print("متوسط الجلسة:", round(avg_session, 1), "ثانية")print("معدّل التحويل:", round(conversion * 100, 1), "%")
>>> %Run main.py
معدّل الارتداد: 37.5 %
متوسط الجلسة: 85.8 ثانية
معدّل التحويل: 37.5 %
>>>
حيلةٌ مفيدة: .mean() على عمودٍ منطقي يعطي النسبة مباشرةً (True=1)، فلا تحتاج قسمةً يدوية.
٣قمع التحويل Funnel
الزائر يمرّ بمراحل: دخول ← تصفّح ← سلّة ← شراء. قمع التحويل يقيس كم يتبقّى في كل مرحلة، فيكشف أين يتسرّب الزوّار:
import pandas as pdfunnel = pd.DataFrame({ "stage": ["دخول", "تصفّح", "سلّة", "شراء"], "users": [1000, 620, 280, 150],})# نسبة كل مرحلة من السابقةfunnel["keep"] = (funnel["users"] / funnel["users"].shift(1) * 100).round(1)print(funnel)# أكبر تسرّبfunnel["drop"] = 100 - funnel["keep"]worst = funnel.loc[funnel["drop"].idxmax(), "stage"]print("أكبر تسرّب عند:", worst)
>>> %Run main.py
stage users keep
0 دخول 1000 NaN
1 تصفّح 620 62.0
2 سلّة 280 45.2
3 شراء 150 53.6
أكبر تسرّب عند: سلّة
>>>
توقّع وتحقّق
معدّل الارتداد هو نسبة الجلسات:
.mean() على عمود منطقي يعطي:
قمع التحويل يكشف:
shift(1) على عمود:
الخلاصة
- المقاييس تحوّل الأرقام الخام إلى وصفٍ للتجربة: ارتداد، جلسة، تحويل.
- .
mean()على عمودٍ منطقي يعطي النسبة مباشرة(True=1). - قمع التحويل يقيس البقاء بين المراحل فيكشف أين يتسرّب الزوّار.
shiftيقارن كل مرحلة بسابقتها؛ وهو مفتاح تحليل القمع.
تحدٍّ برمجي: قِس السلوك
متقدممن جدول الجلسات، اطبع معدّل الارتداد ومعدّل التحويل (كنسبة مئوية مقرّبة لمنزلة واحدة).
المطلوب:
- الارتداد: نسبة
pages == 1. - التحويل: نسبة
bought. اطبع كلًّا كنسبة مئوية (منزلة واحدة).
ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:
import pandas as pdsessions = pd.DataFrame({ "session": [1,2,3,4,5,6,7,8], "pages": [1, 4, 1, 6, 2, 1, 3, 5], "seconds": [8, 120, 5, 240, 40, 3, 90, 180], "bought": [False, True, False, True, False, False, False, True],})# اطبع معدّل الارتداد ثم معدّل التحويل كنسبة مئوية (منزلة واحدة)
37.5
37.5
💡 تلميح 1
الارتداد:
(sessions["pages"] == 1).mean().💡 تلميح 2
التحويل:
sessions["bought"].mean()؛ اضرب في 100 وقرّب.حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.
import pandas as pdsessions = pd.DataFrame({ "session": [1,2,3,4,5,6,7,8], "pages": [1, 4, 1, 6, 2, 1, 3, 5], "seconds": [8, 120, 5, 240, 40, 3, 90, 180], "bought": [False, True, False, True, False, False, False, True],})bounce = (sessions["pages"] == 1).mean()conversion = sessions["bought"].mean()print(round(bounce * 100, 1))print(round(conversion * 100, 1))