Integrating UXCam for Mobile App Session Recording

You launched a mobile app, but conversion is dropping and analytics don't show where users get stuck. Sentry and Datadog catch errors, but don't answer why taps fail. We integrate UXCam — a session recording, heatmap, and gesture analysis service. In 1–2 days we integrate the SDK turnkey, set up sen

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1All 1734 services
Integrating UXCam for Mobile App Session Recording
Simple
from 1 day to 3 days

Our competencies:

Frequently Asked Questions

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    894
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    597

You launched a mobile app, but conversion is dropping and analytics don't show where users get stuck. Sentry and Datadog catch errors, but don't answer why taps fail. We integrate UXCam — a session recording, heatmap, and gesture analysis service. In 1–2 days we integrate the SDK turnkey, set up sensitive data masking and screen tagging so your UX team sees real user sessions filtered by events and properties. Our experience: over 50 successful integrations in iOS and Android projects, quality assurance at all stages. Time savings of up to 30% in analysis thanks to ready-made funnels and heatmaps.

Why UXCam instead of Sentry or Hotjar?

UXCam specializes in mobile UX research. Here are key differences:

Criteria UXCam Sentry Hotjar
Focus Mobile UX Errors & crashes Web & desktop
Gesture recording (taps, scrolls) Yes No Limited
Heatmaps Taps, gestures, areas No Clicks (web)
Data masking Automatic + UI tags N/A Input fields
Session filtering By events, properties By errors By pages
API for events Native SDK REST API JavaScript

Unlike Sentry, UXCam records video sessions with gestures, showing where users get stuck and what they tap in vain. For mobile projects, this is an indispensable tool.

SDK Installation and Configuration

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() 

Masking Private Data

UXCam automatically hides fields marked as isSecureTextEntry (iOS) and password type (Android). For custom elements, use tags in XML or code calls:

Element Masking Method
Card number field UXCam.occludeSensitiveView()
Entire payment screen tagScreenName("Payment", isOccluded: true)
Code input field android:tag="uxcam_mask" in XML
Passport image UXCam.occlude(view: passportImage)

Why Data Masking Is Critical for Compliance?

App Store Review Guidelines (Section 5.1.4) and Google Play Privacy Policy require that apps do not transmit sensitive data without consent. UXCam helps meet these requirements: automatic input field hiding and the ability to force-occlude any View. If masking is not configured, session recordings may contain card numbers, passwords — this can lead to app update rejection or legal consequences. In our projects, we always add masking to all screens with personal data: payment, registration, profile.

How to Properly Tag Screens?

Automatic names like ViewController_3_Step2Fragment are unreadable. Add explicit tags in viewDidAppear / onResume. Use constant strings like "Product Detail" instead of "detail". This allows building funnels and heatmaps by screens in the dashboard.

Custom Events and User Properties

Events track business actions: add_to_cart, checkout_start, payment_failure. User properties (plan, registration_cohort) segment the audience — you can view sessions only for premium users. We recommend adding 10–15 key events and 3–5 properties.

For example, in a recent fintech project, we set up events for every step of the payment flow. This helped the UX team identify that 40% of users abandoned at the OTP verification screen because the keyboard covered the input field. The fix increased conversion by 12%.

Sampling and Recording Management

For apps with DAU > 10k, limit the percentage of recorded sessions to avoid exceeding storage limits. A typical strategy: 10% random sessions + 100% sessions with an event of interest (e.g., critical_error). In code, this is implemented via a config flag and forced start of recording on key events.

How to Configure Sampling to Reduce Storage Costs?

Start by choosing a random session percentage (usually 10-30%) and save conditions. Example config for iOS: set config.sessionRecordingChance = 0.1 and in the critical_error handler call UXCam.stopSessionAndUploadData(). For Android, use UXCam.setSessionRecordingProbability(0.1f). Additionally, set a maximum number of sessions per day. We help select optimal parameters for your traffic.

Example sampling config for iOS with priority events
// Sampling config: 10% random sessions let config = UXCamConfiguration(appKey: "YOUR_APP_KEY") config.sessionRecordingChance = 0.1 UXCam.startWithConfiguration(config) // Force save session when critical_error occurs // Call in error handler: UXCam.stopSessionAndUploadData() 

What's Included in the Work

  • SDK integration on both platforms
  • Masking all sensitive screens and fields
  • Tagging all main screens with readable names
  • Setting up 10+ key events with parameters
  • User properties for segmentation
  • Sampling configuration for your traffic
  • Integration documentation and team training

Timeline and Pricing

Basic integration with masking and tagging — from 1 day. Full setup with custom events and sampling — from 3 days. Pricing is individual based on complexity and number of platforms. We will evaluate your project within 24 hours upon inquiry.

Get a consultation: write to us to discuss UXCam integration into your app. We guarantee quality results, backed by 5+ years of experience and 50+ implemented mobile analytics projects. Order turnkey integration — we'll do everything in 1-3 days.