Mobile Replay Offerings by Platform
Mobile Replay functionality differs on iOS and Android due to platform-specific technical constraints. Because of these different implementations, you may notice variations in clip playback resolution and overall fidelity.iOS & Android: Wireframe Capture
- Periodically records the structure and positioning of UI elements (layout, hierarchy, images).
- Reconstructs these elements into a wireframe representation of the user experience.
Android: Screenshot Capture
- Periodically takes full screenshots of the UI, including text and images.
- Masks or redacts sensitive information on the device, ensuring such data is never sent to or stored on Sprig’s servers.
React Native
- Follows the approach of the underlying platform (wireframe on iOS, screenshot on Android), as determined by the user’s device.
Mobile Replay Privacy
While a replay clip may look and feel like a screen recording, Sprig’s Wireframe Replay clips are not actual recordings but instead a visual presentation of the application UI as the user sees it. The SDKs reconstruct the UI by capturing properties of the individual UI elements, redrawing them and constructing them into a video clip. For our Android Snapshot Replay implementation, the Sprig SDK takes snapshots of the device screen and then reconstructs those into a video clip that can be played back. These approaches allow us to selectively capture data and UI elements, such as user interactions and form contents, while redacting other data, such as images and password fields. All masking or obfuscation happens on the device to ensure that no sensitive data is stored on Sprig Servers. By default, all secure form contents (including password fields) and on-screen keyboard interactions are not recorded or stored. Additionally, users can hide specific mobile classes as they wish.Masking Settings
The following describes the available masking settings. For how to establish masking settings for your account, see Replay Creation.iOS (Current)
Requires iOS SDK v4.23.10 or later. All classes that conform to UITextInputTraits with the isSecureTextEntry property set to true will be masked.Basic
- No masking.
- All interactions are captured.
Moderate (Default)
- Masks UITextView, UIPickerView, and UITextField and subclasses of these types are masked.
- All interactions are captured.
Strict
Same masking as in Moderate plus:- Masks UILabel, UISegmentedControl, and subclasses of these classes.
- Masks UIImageView and subclasses of this type will be masked.
- For React Native: Masks RCTTextView.
- No interactions are captured.
iOS (Legacy)
For iOS SDK v4.23.9 or earlier.Legacy Basic (Default)
- Masks text in UITextView, UIPickerView, and UITextField or subclasses of these classes.
Legacy Full
Same masking as in Legacy Basic plus:- Masks UILabel and UISegmentedControl or subclasses of these classes.
- For React Native: Masks RCTTextView.
Web Views
Because web views present their own HTML content, they can not be captured and rerendered efficiently for session replays. Instead, both iOS and Android have the option of capturing web views as images, which are then incorporated into the replay. To opt in to web view capture, turn on Web View capture in the privacy section of the respective platform (Settings → Replays Configure).iOS SwiftUI text and Images < iOS26
Replays for iOS by default do not capture SwiftUI text and images. Users can opt-in to capture these elements in the iOS tab of Settings → Replays Configure.iOS SwiftUI text and images for iOS26+
By default, text and images are not captured on devices running iOS26 or above. Due to changes in the way text and images are rendered starting in iOS26, host app developers need to take extra steps in order to capture these elements in session replays. Please see the iOS SwiftUI Session Replay Implementation Guide for more details.Android
By default, all secure form content on Android, including password fields, are not recorded or stored by default. Input fields configured with theTYPE_NUMBER_VARIATION_PASSWORD attribute are automatically masked, ensuring that sensitive numeric input is obscured to enhance privacy and security.
Interactions
In addition to visual user behavior, Sprig Replays also captures user interactions, such as taps, swipes, and other gestures, providing a comprehensive view of the user experience. Interaction data, like touch coordinates and event timings, are recorded to understand user behavior.Compliance
In adherence to guidelines set by the California Consumer Privacy Act (CCPA), Replays does not capture nor require capturing permissions from end-users. The CCPA mandates that businesses must disclose their practices related to both the collection and sale of consumers’ personal information in their privacy policies. While businesses are required to give consumers the option to opt-out of having their personal information sold to third parties, the law does not oblige them to provide a similar opt-out for just the collection of personal information. View more information on Sprig’s Privacy Policy. We welcome feedback on our privacy practices. Please contact us at support@sprig.com if you have any questions or concerns.Performance
Sprig Mobile Replays have been designed to use as few resources as possible. With that in mind, Mobile Replay clip recording only happens when matching targeting criteria are hit for an in-progress Mobile Replay study. Both frame capture and clip upload happen on a background thread so there will be no discernible performance issues in your app’s UI. To further minimize any sort of impact on app performance, we only capture 1 frame per second.CPU
We use a background thread job wherever possible to limit the CPU usage. The screen capturing mechanism should have very little impact on your app’s CPU consumption.Developer NoteOur iOS and Android Replay offerings measure their main thread usage, and we have a server-controllable threshold that, if exceeded, will automatically disable the Replay for that particular session.