קריסה בסביבת הייצור שלא מתרחשת במכשירי הבדיקה היא כאב נפוץ עבור צוותי מובייל. Session Replay מספקת הקלטה מדויקת של פעולות המשתמש שניות לפני השגיאה, ומצמצמת את זמן חיפוש שורש הבעיה פי 2–3. במעל 15 פרויקטים (מפינטק ועד מסחר אלקטרוני), פיתחנו פרקטיקות להקלטת סשנים עם תקורה של פחות מ-1% והסתרה מלאה של נתונים אישיים, בהתאם ל-GDPR ו-PCI DSS.
מה זה Session Replay ולמה צריך את זה?
Session Replay היא טכנולוגיה הלוכדת את כל פעולות המשתמש: הקשות, גלילות, הזנת טקסט. ההקלטה המתקבלת מאפשרת לשחזר את הסשן במדויק, מה שחיוני לניפוי שגיאות וניתוח חוויית משתמש. בניגוד ללוגים, היא מספקת תמונה ויזואלית מלאה. ההקלטה פועלת ברקע ללא התערבות המשתמש.
צילום מסך או Wire-frame: מה לבחור?
מבוסס צילומי מסך (UXCam, Smartlook) מצלם צילומי מסך בקצב של 1–5 פריימים לשנייה, מסתיר אזורים רגישים, ושולח אותם לשרת. הוא לוכד במדויק תצוגות מותאמות אישית ו-WebViews אך דורש 200–500 KB של תעבורה בדקה ומעמיס על המעבד ב-3–8%.
מבוסס Wire-frame (Sentry, Datadog) מסדר את היררכיית התצוגה — מיקומים, צבעים, טקסט — ומשחזר את הממשק בשרת באמצעות תבניות. נפח הנתונים הוא 50–150 KB/דקה, עומס מעבד < 1%. WebView וגרפיקה מורכבת לא מועברים במדויק. הבחירה תלויה בעדיפות: דיוק או ביצועים.
| פרמטר | מבוסס צילומי מסך | מבוסס Wire-frame |
|---|---|---|
| מעבד (רקע) | 3–8% | < 1% |
| תעבורה (לדקה) | 200–500 KB | 50–150 KB |
| דיוק | גבוה (כל האלמנטים) | בינוני (WebView חסר) |
איך Session Replay עוזרת בניפוי קריסות?
Sentry SR למובייל זמין מ-SDK 8.x, תוך שימוש בגישת wire-frame. הפרמטר המרכזי onErrorSampleRate = 1.0 — הקלטת ריפליי לכל הסשנים עם שגיאות. ה-SDK מאגר את השניות האחרונות בזיכרון ושולח אותן יחד עם דוח השגיאה. פרטים נוספים בתיעוד Sentry Session Replay.
// iOS
import Sentry
SentrySDK.start { options in
options.dsn = "https://[email protected]/project"
options.experimental.sessionReplay = SentryReplayOptions(
sessionSampleRate: 0.1,
onErrorSampleRate: 1.0
)
} // Android
SentryAndroid.init(this) { options ->
options.dsn = "https://[email protected]/project"
options.experimental.sessionReplay.apply {
sessionSampleRate = 0.1
onErrorSampleRate = 1.0
}
} איך להגדיר הסתרת נתונים רגישים?
כברירת מחדל, Sentry מסתיר UITextField ושדות עם isSecureTextEntry = true. זה לא מספיק — צריך להסתיר מספרי כרטיסים, נתונים אישיים, שדות OTP. דוגמה ל-iOS ו-Android:
// iOS — маркировка View для маскировки
class PaymentCardView: UIView {
override func didMoveToWindow() {
super.didMoveToWindow()
SentrySDK.replay.maskView(self)
}
}
// Android — маскировка через тег
val cardNumberField = findViewById<EditText>(R.id.cardNumber)
cardNumberField.setTag(io.sentry.android.replay.Recorder.MASK_TAG, true)עבור SwiftUI ו-Jetpack Compose, השתמשו במודיפיירים:
// SwiftUI
Text(userEmail).sentryReplayMask()
// Kotlin Compose
Text(text = cardNumber, modifier = Modifier.sentryReplayMask())אנו מבטיחים שההסתרה עוברת ביקורת פרטיות בהתאם ל-GDPR ו-PCI DSS. האימות מתבצע דרך Privacy Audit בממשק Sentry/Datadog.
אינטגרציה עם דוחות קריסה
ב-Sentry, הריפליי מצורף אוטומטית לדוח השגיאה. ב-Datadog Session Replay, הוא מקושר ל-RUM View — ניתן לפתוח את המסך ולצפות בריפליי עם מדדים (חביון, FPS) על ציר הזמן.
רשימת בדיקה ליישום
- בחירת הכלי (Sentry / Datadog) בהתאם לטכנולוגיה ולתקציב.
- אינטגרציית SDK והגדרת שיעורי דגימה (onError = 1.0, session = 0.1).
- סימון כל המסכים והשדות הרגישים (הסתרה).
- ביצוע Privacy Audit.
- אינטגרציה עם דוחות הקריסה הקיימים.
- תיעוד התצורה והעברה לצוות התמיכה.
השוואת כלים: Sentry מול Datadog
| קריטריון | Sentry Session Replay | Datadog Session Replay |
|---|---|---|
| מצב הקלטה | Wire-frame (ברירת מחדל) | Wire-frame + צילומי מסך |
| הסתרה | אוטומטית + ידנית | אוטומטית (maskUserInput) |
| אינטגרציית שגיאות | אוטומטית (דוח שגיאה) | דרך RUM |
| עומס מעבד | < 1% | 1–3% (wire-frame) |
Sentry wire-frame עולה על מצב צילומי המסך של UXCam בעומס המעבד פי 2–3. אם צריך הקלטת WebView מדויקת, Datadog במצב צילומי מסך (מעבד 3–8%) עשוי להתאים.
מה כוללת העבודה שלנו על יישום Session Replay
בהזמנת השירות שלנו, תקבלו:
- ביקורת של האפליקציה הקיימת: זיהוי מסכים ושדות רגישים.
- בחירת הכלי והגישה האופטימליים (צילומי מסך/wire-frame).
- אינטגרציית SDK עם הגדרת שיעורי דגימה והסתרה.
- פיתוח הסתרה מותאמת אישית לאלמנטים ספציפיים בממשק.
- Privacy Audit עם דוח.
- אינטגרציה עם מערכת ניטור השגיאות הקיימת שלכם (Sentry/Datadog).
- תיעוד תצורה והמלצות לצוות שלכם.
- תמיכה במהלך הבדיקות והפריסה.
תהליך יישום Session Replay
היישום עובר 5 שלבים:
- ניתוח — זיהוי מסכים ושדות רגישים, בחירת הכלי (Sentry או Datadog).
-
אינטגרציית SDK — הגדרת
// iOS import Sentry SentrySDK.start { options in options.dsn = "https://[email protected]/project" options.experimental.sessionReplay = SentryReplayOptions( sessionSampleRate: 0.1, onErrorSampleRate: 1.0 ) },// Android SentryAndroid.init(this) { options -> options.dsn = "https://[email protected]/project" options.experimental.sessionReplay.apply { sessionSampleRate = 0.1 onErrorSampleRate = 1.0 } }, DSN. - הגדרת הסתרה — סימון כל שדות הקלט, נתוני כרטיסים, OTP.
- בדיקות — אימות ההסתרה, ביצוע Privacy Audit.
- פריסה — שחרור לחנויות, ניטור מדדים.
דוגמה: עבור פרויקט פינטק, הגדרנו הסתרה של 15 מסכים ביומיים. לאחר הביקורת, אישרנו שאף תו רגיש לא נקלט בהקלטות.
לוחות זמנים ועלות
אינטגרציה בסיסית עם הסתרה: 2–3 ימים. אינטגרציה מלאה עם ביקורת פרטיות: 4–5 ימים. העלות מחושבת באופן אישי. חיסכון בזמן ניפוי קריסות לאחר היישום יכול להגיע ל-60% — עבור צוות של 5 מפתחים, זה יכול להיות חיסכון חודשי משמעותי.
צרו קשר לייעוץ על אינטגרציית Session Replay. קבלו הערכה לפרויקט שלכם והמלצות על כלים.







