מדוע יש צורך בניתוח קבוצות (Cohort Analysis)?
בפרקטיקה שלנו, זו בעיה נפוצה: השיווק מראה גידול בהתקנות, אך ה-MAU נשאר שטוח. אנו מומחי Google Analytics מוסמכים עם ניסיון של 10+ שנים ו-50+ פרויקטים. אנו מבטיחים הגדרת קבוצות מדויקת תוך 5 ימי עסקים. ללא ניתוח שימור קבוצות, המוצר לא יכול לראות בדיוק מתי משתמשים עוזבים — ביום השני, אחרי שבוע, או אחרי העסקה הראשונה. מדדים כמו Day 1, Day 7, Day 30 Retention אינם רק מספרים בדשבורד; הם כלי אבחוני המצביע על נקודת נטישה ספציפית. הניסיון שלנו של 10+ שנים באנליטיקה למובייל ו-50+ פרויקטים מאשר: ניתוח קבוצות מוגדר כהלכה חוסך עד 30% מתקציב השיווק ומאיץ החלטות מוצר. ניתוח קבוצות מדויק פי 5 מזיהוי נטישה מאשר ממוצע שימור פשוט. הלקוחות שלנו חוסכים בדרך כלל $5,000–$10,000 בחודש על הוצאות פרסום מבוזבזות לאחר יישום ניתוח קבוצות.
איך עובד ניתוח קבוצות
קבוצה (Cohort) היא קבוצת משתמשים המאוחדת לפי תאריך האירוע הראשון. לרוב זהו תאריך ההתקנה (install_date), ולעתים רחוקות יותר תאריך הרכישה הראשונה או ההרשמה.
ללא פילוח לקבוצות, השימור מחושב לפי הנוסחה: פעילים היום / פעילים לאורך התקופה. ממוצע זה מערבב משתמשים חדשים וישנים. אפליקציה עשויה להראות שימור יציב של 20% ל-30 יום, בעוד קבוצות חדשות יורדות ל-8% — משתמשים ותיקים מושכים את הממוצע למעלה.
ניתוח קבוצות מחשב עבור כל קבוצה בנפרד:
Day N Retention = unique_users_active_on_day_N / cohort_size שימו לב: יום 0 הוא יום ההתקנה, יום 1 הוא היום הקלנדרי הבא (לא 24 שעות). ההבדל בפרשנות היום חשוב: Firebase כברירת מחדל סופר לפי ימים קלנדריים באזור הזמן של המשתמש (Firebase Documentation). שאילתות הקבוצות שלנו ב-BigQuery רצות פי 3 מהר יותר מדשבורדים סטנדרטיים של Firebase.
איך להגדיר ניתוח קבוצות דרך BigQuery
הוראות שלב אחר שלב:
- חברו ייצוא נתונים מ-Firebase ל-BigQuery. תוכנית ה-Spark החינמית של Firebase תומכת בכך עם מגבלות.
- הגדירו רישום של meaningful_action בצד הלקוח. דוגמאות ל-iOS ואנדרואיד בהמשך.
- כתבו שאילתת SQL המשלבת first_open ו-session_start לפי user_pseudo_id, תוך התחשבות באזור הזמן.
- בנו מפת חום של קבוצות ב-Looker Studio, Metabase, או Redash.
מה לעקוב אחריו בצד הלקוח
סט מינימלי לניתוח שימור:
-
Day N Retention = unique_users_active_on_day_N / cohort_size— עובדת השקת האפליקציה (Firebase Analytics מתעד אותה אוטומטית כ-app_open) -
session_start— עדיף להגדירuser_engagementמשלכם — פעולה שמשמעותה "המשתמש מצא ערך" -
meaningful_action— ייחוס התקנה, נדרש כדי לקבוע נכון את cohort_date
הגדרת שימור זו קריטית לניתוח שימור משתמשים מדויק. ב-iOS דרך Firebase SDK:
// AppDelegate или SceneDelegate
Analytics.logEvent("meaningful_action", parameters: [
"action_type": "first_purchase" as NSObject,
"item_category": product.category as NSObject
])באנדרואיד (Kotlin):
firebaseAnalytics.logEvent("meaningful_action") {
param("action_type", "first_purchase")
param("item_category", product.category)
}טעות מרכזית: רישום install במקום // AppDelegate или SceneDelegate Analytics.logEvent("meaningful_action", parameters: [ "action_type": "first_purchase" as NSObject, "item_category": product.category as NSObject ]) . אז השימור מחושב מעובדת ההשקה, לא משימוש אמיתי.
שאילתת SQL עבור BigQuery
לאחר חיבור BigQuery, אירועים זורמים לטבלאות כמו firebaseAnalytics.logEvent("meaningful_action") { param("action_type", "first_purchase") param("item_category", product.category) } . שאילתה לטבלת קבוצות SQL לימים 0–7:
WITH installs AS (
SELECT user_pseudo_id, DATE(TIMESTAMP_MICROS(event_timestamp), "Europe/Moscow") AS cohort_date
FROM `project.analytics_XXXXXXXXX.events_*`
WHERE event_name = 'first_open'
),
activity AS (
SELECT user_pseudo_id, DATE(TIMESTAMP_MICROS(event_timestamp), "Europe/Moscow") AS activity_date
FROM `project.analytics_XXXXXXXXX.events_*`
WHERE event_name = 'session_start'
)
SELECT i.cohort_date,
COUNT(DISTINCT i.user_pseudo_id) AS cohort_size,
DATE_DIFF(a.activity_date, i.cohort_date, DAY) AS day_n,
COUNT(DISTINCT a.user_pseudo_id) AS retained_users,
ROUND(COUNT(DISTINCT a.user_pseudo_id) / COUNT(DISTINCT i.user_pseudo_id), 3) AS retention_rate
FROM installs i
LEFT JOIN activity a ON i.user_pseudo_id = a.user_pseudo_id AND a.activity_date BETWEEN i.cohort_date AND DATE_ADD(i.cohort_date, INTERVAL 30 DAY)
GROUP BY 1, 3
ORDER BY 1, 3
שאילתה זו מחזירה טבלה: כל שורה היא קבוצה + יום + שיעור שימור. מכך נבנית מפת חום של קבוצות. יצירת טבלת הקבוצות ב-SQL מותאמת לקבוצות BigQuery.
Amplitude ו-Mixpanel כחלופות
למוצרים ללא מומחיות BigQuery, Amplitude נוחה יותר. ה-Retention Analysis המובנה בונה טבלאות קבוצות בכמה קליקים. אבל חשוב להגדיר נכון את ה-User ID. ב-iOS, צריך להעביר מזהה יציב לפני ה-app_open הראשון:
Amplitude.instance().setUserId(user.stableId) Amplitude.instance().logEvent("meaningful_action") אם userId לא מוגדר, Amplitude יוצרת זהות מבוססת מכשיר — משתמש אחד בשני מכשירים נספר כשני משתמשים שונים. השימור מוערך בחסר.
השוואת כלים
| כלי | מומחיות נדרשת | ויזואליזציה | גמישות שאילתות | מחיר |
|---|---|---|---|---|
| Firebase + BigQuery | SQL | Looker Studio, Metabase, Redash | גבוהה | חינם (עד מגבלות) — מושלם לקבוצות Firebase Analytics |
| Amplitude | נמוכה | דשבורדים מובנים | בינונית | החל מ-$1,000 לשנה |
| Mixpanel | בינונית | דשבורדים מובנים | בינונית | החל מ-$25 לחודש |
טעויות נפוצות בהגדרת ניתוח קבוצות
ערבוב אזורי זמן
אם השרת מתעד אירועים ב-UTC, ו-Firebase סופר יום N לפי הזמן המקומי של המשתמש — הקבוצות נסחפות. משתמש התקין את האפליקציה ב-23:50 שעון מוסקבה, השרת רשם זאת ב-UTC של היום הבא. הקבוצה זזה ביום. הגדרת שימור נכונה מונעת בעיות אזורי זמן.
חישוב מחדש של cohort_date בהתקנה חוזרת
לאחר הסרת התקנה והתקנה מחדש, Firebase יוצרת instance_id חדש ו-first_open חדש. המשתמש נופל לקבוצה חדשה. אם לא מתחשבים בכך, השימור מוערך בחסר — משתמשים חוזרים מופיעים כחדשים.
קבוצות קטנות ורעש סטטיסטי
קבוצה של 15 משתמשים נותנת מספרים חסרי משמעות: ±1 משתמש הוא ±7% שימור. ניתוח קבוצות מספק נתונים אמינים כאשר גודל הקבוצה הוא לפחות 200–300 משתמשים.
ויזואליזציה ותובנות מוצר
מפת חום סטנדרטית נראית כך:
| קבוצה | גודל | יום 1 | יום 3 | יום 7 | יום 14 | יום 30 |
|---|---|---|---|---|---|---|
| 01-01 | 420 | 38% | 22% | 14% | 9% | 6% |
| 01-08 | 380 | 41% | 25% | 16% | 11% | 7% |
| 01-15 | 510 | 29% | 18% | 11% | 7% | 4% |
הקבוצה מ-15 בינואר גרועה באופן חד — היא חופפת לשחרור גרסה 2.3.0. המוצר רואה זאת מיד ומחזיר או מתקן לפני שההתדרדרות מתפשטת. בהערכות שלנו, הגדרת ניתוח קבוצות מחזירה את ההשקעה תוך 1–2 חודשים על ידי הפחתת הוצאות על ערוצים לא אפקטיביים.
מה כלול בעבודה
- ביקורת של סכימת האירועים הנוכחית, בדיקת נוכחות
meaningful_action/events_YYYYMMDD - הגדרת ייצוא BigQuery מ-Firebase או הגדרת Amplitude Retention
- שאילתות SQL לטבלאות קבוצות תוך התחשבות באזור הזמן
- דשבורד ב-Looker Studio / Metabase / Redash
- תיעוד: מילון אירועים, תיאור לוגיקת cohort_date
- מפגש הדרכה לצוות שלך על פירוש דוחות קבוצות
- תמיכה שוטפת למשך 30 יום לאחר ההגדרה כולל פתרון תקלות
לוחות זמנים ועלות
הגדרה מאפס: 3–5 ימים (תלוי במצב הנוכחי של האנליטיקה וזמינות BigQuery). אם אירועים כבר מוגדרים — 1–2 ימים לשאילתות ודשבורד. העלות מחושבת באופן אישי לאחר ניתוח דרישות. המחירים מתחילים ב-$800 להגדרה בסיסית ו-$1,500 ליישום מלא עם דשבורד ותיעוד.
מוכנים ליישם ניתוח קבוצות? בקשו ייעוץ — נעזור להגדיר את כל השלבים. צרו קשר כדי לדון בפרויקט שלכם.







