השקתם אפליקציה למובייל, אבל ההמרה יורדת והאנליטיקה לא מראה היכן המשתמשים נתקעים. Sentry ו-Datadog תופסים שגיאות, אבל לא עונים על השאלה למה הקשות נכשלות. אנו משלבים את UXCam — שירות להקלטת סשנים, מפות חום וניתוח מחוות. תוך 1–2 ימים אנו משלבים את ה-SDK במפתח מלא, מגדירים מיסוך נתונים רגישים ותיוג מסכים כך שצוות ה-UX שלכם יראה סשנים אמיתיים של משתמשים מסוננים לפי אירועים ומאפיינים. הניסיון שלנו: מעל 50 אינטגרציות מוצלחות בפרויקטים של iOS ו-Android, עם בקרת איכות בכל השלבים. חיסכון של עד 30% בזמן הניתוח הודות למשפכים ומפות חום מוכנים.
למה UXCam במקום Sentry או Hotjar?
UXCam מתמחה בחקר חוויית משתמש למובייל. הנה ההבדלים המרכזיים:
| קריטריון | UXCam | Sentry | Hotjar |
|---|---|---|---|
| מיקוד | UX למובייל | שגיאות וקריסות | ווב ודסקטופ |
| הקלטת מחוות (הקשות, גלילות) | כן | לא | מוגבל |
| מפות חום | הקשות, מחוות, אזורים | לא | קליקים (ווב) |
| מיסוך נתונים | אוטומטי + תגי UI | לא רלוונטי | שדות קלט |
| סינון סשנים | לפי אירועים, מאפיינים | לפי שגיאות | לפי עמודים |
| API לאירועים | SDK מקורי | REST API | JavaScript |
בניגוד ל-Sentry, UXCam מקליט סשני וידאו עם מחוות, ומראה היכן המשתמשים נתקעים ועל מה הם מקישים לשווא. לפרויקטים של מובייל, זהו כלי חיוני.
התקנת SDK ותצורה
iOS (Swift Package Manager)
// 1. Подключение через SPM (Package.swift)
// .package(url: "https://github.com/uxcam/ios-sdk", from: "3.6.0")
// 2. Инициализация в AppDelegate
import UXCam
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let config = UXCamConfiguration(appKey: "YOUR_APP_KEY")
config.enableAdvancedGestureRecognizers = true
UXCam.startWithConfiguration(config)
return true
}
// 3. Маскировка чувствительных View
UXCam.occlude(view: cardNumberView, hideGestures: true)
// Скроет весь экран оплаты
UXCam.tagScreenName("Payment", isOccluded: true)
// 4. Тегирование экранов (в viewDidAppear)
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
UXCam.tagScreenName("Product Detail")
}
// 5. Кастомное событие
UXCam.logEvent("add_to_cart", withProperties: [
"product_id": product.id,
"category": product.category,
"price": product.price
])
// 6. Свойства пользователя
UXCam.setUserProperty("plan", value: "premium")
// 7. Семплинг: записывать только 30% сессий
// (установить в config до старта)
config.userAppKey = "YOUR_APP_KEY" // для семплирования
// 8. Принудительное завершение сессии
UXCam.stopSessionAndUploadData()
Android (Kotlin/Gradle)
// 1. Подключение через Gradle
// implementation("com.uxcam:uxcam:3.+")
// 2. Инициализация в Application.onCreate()
val config = UXCamConfiguration.Builder("YOUR_APP_KEY")
.enableAdvancedGestureRecognizers(true)
.build()
UXCam.startWithConfiguration(config)
// 3. Маскировка View
UXCam.occludeSensitiveView(binding.cardNumberField)
// Весь экран оплаты
UXCam.tagScreenName("Payment", isOccluded: true)
// 4. Тегирование экрана (в Fragment.onResume())
override fun onResume() {
super.onResume()
UXCam.tagScreenName("Product Detail")
}
// 5. Кастомное событие
UXCam.logEvent("add_to_cart", mapOf(
"product_id" to product.id,
"category" to product.category,
"price" to product.price
))
// 6. Свойства пользователя
UXCam.setUserProperty("plan", "premium")
// 7. Семплинг: запись 30% сессий (через config)
// (установить до старта)
// 8. Завершение сессии
UXCam.stopSessionAndUploadData() מיסוך נתונים פרטיים
UXCam מסתיר אוטומטית שדות המסומנים כ-// 1. Подключение через SPM (Package.swift) // .package(url: "https://github.com/uxcam/ios-sdk", from: "3.6.0") // 2. Инициализация в AppDelegate import UXCam func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { let config = UXCamConfiguration(appKey: "YOUR_APP_KEY") config.enableAdvancedGestureRecognizers = true UXCam.startWithConfiguration(config) return true } // 3. Маскировка чувствительных View UXCam.occlude(view: cardNumberView, hideGestures: true) // Скроет весь экран оплаты UXCam.tagScreenName("Payment", isOccluded: true) // 4. Тегирование экранов (в viewDidAppear) override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) UXCam.tagScreenName("Product Detail") } // 5. Кастомное событие UXCam.logEvent("add_to_cart", withProperties: [ "product_id": product.id, "category": product.category, "price": product.price ]) // 6. Свойства пользователя UXCam.setUserProperty("plan", value: "premium") // 7. Семплинг: записывать только 30% сессий // (установить в config до старта) config.userAppKey = "YOUR_APP_KEY" // для семплирования // 8. Принудительное завершение сессии UXCam.stopSessionAndUploadData() (iOS) ומסוג // 1. Подключение через Gradle // implementation("com.uxcam:uxcam:3.+") // 2. Инициализация в Application.onCreate() val config = UXCamConfiguration.Builder("YOUR_APP_KEY") .enableAdvancedGestureRecognizers(true) .build() UXCam.startWithConfiguration(config) // 3. Маскировка View UXCam.occludeSensitiveView(binding.cardNumberField) // Весь экран оплаты UXCam.tagScreenName("Payment", isOccluded: true) // 4. Тегирование экрана (в Fragment.onResume()) override fun onResume() { super.onResume() UXCam.tagScreenName("Product Detail") } // 5. Кастомное событие UXCam.logEvent("add_to_cart", mapOf( "product_id" to product.id, "category" to product.category, "price" to product.price )) // 6. Свойства пользователя UXCam.setUserProperty("plan", "premium") // 7. Семплинг: запись 30% сессий (через config) // (установить до старта) // 8. Завершение сессии UXCam.stopSessionAndUploadData() (Android). עבור אלמנטים מותאמים אישית, השתמשו בתגים ב-XML או בקריאות קוד:
| אלמנט | שיטת מיסוך |
|---|---|
| שדה מספר כרטיס | isSecureTextEntry |
| מסך תשלום שלם | password |
| שדה קלט קוד | UXCam.occludeSensitiveView() ב-XML |
| תמונת דרכון | tagScreenName("Payment", isOccluded: true) |
למה מיסוך נתונים קריטי לעמידה בדרישות?
הנחיות סקירת ה-App Store (סעיף 5.1.4) ומדיניות הפרטיות של Google Play דורשות שאפליקציות לא ישדרו נתונים רגישים ללא הסכמה. UXCam עוזר לעמוד בדרישות אלה: הסתרה אוטומטית של שדות קלט ויכולת להסתיר בכוח כל View. אם המיסוך לא מוגדר, הקלטות סשן עשויות להכיל מספרי כרטיסים, סיסמאות — דבר שעלול להוביל לדחיית עדכון האפליקציה או להשלכות משפטיות. בפרויקטים שלנו, אנו תמיד מוסיפים מיסוך לכל המסכים עם נתונים אישיים: תשלום, רישום, פרופיל.
איך לתייג מסכים נכון?
שמות אוטומטיים כמו android:tag="uxcam_mask" אינם קריאים. הוסיפו תגים מפורשים ב-UXCam.occlude(view: passportImage) / ViewController_3_Step2Fragment. השתמשו במחרוזות קבועות כמו viewDidAppear במקום onResume. זה מאפשר בניית משפכים ומפות חום לפי מסכים בדשבורד.
אירועים מותאמים אישית ומאפייני משתמש
אירועים עוקבים אחר פעולות עסקיות: "Product Detail", "detail", add_to_cart. מאפייני משתמש (checkout_start, payment_failure) מפלחים את הקהל — תוכלו לצפות בסשנים רק של משתמשי פרימיום. אנו ממליצים להוסיף 10–15 אירועים מרכזיים ו-3–5 מאפיינים.
לדוגמה, בפרויקט פינטק עדכני, הגדרנו אירועים לכל שלב בתהליך התשלום. זה עזר לצוות ה-UX לזהות ש-40% מהמשתמשים נטשו במסך אימות ה-OTP כי המקלדת כיסתה את שדה הקלט. התיקון הגדיל את ההמרה ב-12%.
דגימה וניהול הקלטות
לאפליקציות עם DAU > 10k, הגבילו את אחוז הסשנים המוקלטים כדי להימנע מחריגה ממגבלות האחסון. אסטרטגיה אופיינית: 10% סשנים אקראיים + 100% סשנים עם אירוע מעניין (למשל, plan). בקוד, זה מיושם באמצעות דגל תצורה והתחלה כפויה של הקלטה באירועים מרכזיים.
איך להגדיר דגימה להפחתת עלויות אחסון?
התחילו בבחירת אחוז סשנים אקראי (בדרך כלל 10-30%) ותנאי שמירה. דוגמת תצורה ל-iOS: הגדירו registration_cohort ובהנדלר critical_error קראו ל-config.sessionRecordingChance = 0.1. עבור Android, השתמשו ב-critical_error. בנוסף, הגדירו מספר מקסימלי של סשנים ליום. אנו עוזרים לבחור פרמטרים אופטימליים לתעבורה שלכם.
דוגמת תצורת דגימה ל-iOS עם אירועי עדיפות
// Конфигурация семплинга: 10% случайных сессий
let config = UXCamConfiguration(appKey: "YOUR_APP_KEY")
config.sessionRecordingChance = 0.1
UXCam.startWithConfiguration(config)
// Принудительно сохраняем сессию при наступлении critical_error
// Вызовите в обработчике ошибки:
UXCam.stopSessionAndUploadData() מה כלול בעבודה
- אינטגרציית SDK בשתי הפלטפורמות
- מיסוך כל המסכים והשדות הרגישים
- תיוג כל המסכים הראשיים בשמות קריאים
- הגדרת 10+ אירועים מרכזיים עם פרמטרים
- מאפייני משתמש לפילוח
- תצורת דגימה לתעבורה שלכם
- תיעוד אינטגרציה והדרכת צוות
לוח זמנים ותמחור
אינטגרציה בסיסית עם מיסוך ותיוג — מיום אחד. הגדרה מלאה עם אירועים מותאמים אישית ודגימה — מ-3 ימים. התמחור הוא אישי לפי מורכבות ומספר הפלטפורמות. נבחן את הפרויקט שלכם תוך 24 שעות מהפנייה.
קבלו ייעוץ: כתבו לנו כדי לדון באינטגרציית UXCam לאפליקציה שלכם. אנו מבטיחים תוצאות איכותיות, מגובות בניסיון של 5+ שנים ו-50+ פרויקטי אנליטיקה למובייל שיושמו. הזמינו אינטגרציה במפתח מלא — נעשה הכל תוך 1-3 ימים.







