Who can use this feature?
- Available with Mobile add-on.
- Requires an Admin role to configure.
For Fullstory for Mobile Apps, you can fine-tune capture performance to balance session replay fidelity with the impact on your application's runtime performance.
These settings are found under Settings > Data Capture and Privacy > Mobile Data Capture and require your app to use FS SDK 1.63.0 or later.
View Scanning Capture Mode
Capture Mode determines how Fullstory scans your app's view hierarchy to capture what the user sees. Access to the view hierarchy must occur on the main thread. The method you choose involves a trade-off between the performance of your app and the visual precision of the session replay.
| Capture Mode | Best For | Impact |
|---|---|---|
| Asynchronous | Performance-sensitive apps. This is the default mode and is recommended for most applications to ensure a smooth user experience. | Fullstory yields while scanning the screen on the main UI thread. This prevents stutter or lag but may result in minor visual artifacts (like "tearing") during very fast animations in session replay. |
| Synchronous | Apps where perfect replay fidelity is critical. Choose this if you need to see every frame of an animation rendered exactly as the user saw it, and a minor performance impact is acceptable. | Fullstory synchronously scans the entire screen on the main UI thread, increasing session replay fidelity. However, this can block the UI thread and potentially cause frame drops or "hitching" in your app during capture. |
Capture Scan Interval
Capture Scan Interval is only available when Capture Mode is set to Asynchronous. It allows you to define how long, in milliseconds, Fullstory spends accessing the view hierarchy before yielding and unblocking the UI thread. After each scan interval, if the scan is incomplete, Fullstory reschedules the scan to resume after the UI has a chance to respond.
Choosing a scan interval is a balance between replay quality and user experience.
| Interval | Replay Quality | Performance Impact |
|---|---|---|
| Lower Value (e.g., 1.0ms) | Lower Quality. Smaller scan intervals can make fast animations appear choppy in session replay. This is because element attributes can change between scan intervals. | Lower Impact. Smaller intervals make the app more responsive and dropped frames and animation hitches less likely to occur on device. |
| Higher Value (e.g., 5.0ms) | Higher Quality. Longer scan intervals capture animations and fast interactions more smoothly. | Higher Impact. Longer scan intervals make dropped frames and animation hitches more likely to happen on device. |
How to decide: Start with a lower value (like 0.5ms or 1.0ms) and monitor your app's performance. If you notice any impact, increase the interval until you find the right balance for your needs.
Configuration Precedence: Fullstory Settings vs. Build Value
You can configure these settings either directly in the Fullstory settings or programmatically in your mobile app's configuration.
-
Build Value: If you select "Build value" in the dropdown, Fullstory will respect the setting that was defined in your app's code at the time it was built. This is the default option and is useful for managing configuration as code. See the following platform-specific properties for setting Capture Mode and Capture Scan Interval:
-
iOS: See
ScanAsynchronouslyand related iOS configuration options. -
Android: See
asyncEnabledand related Android configuration options.
-
iOS: See
- Fullstory Settings Override: If you select a specific value in the Fullstory Settings UI (e.g., "Asynchronous" or "2.0ms"), it will override any value set in your app's build configuration. This allows you to adjust capture settings on the fly for all your users without needing to release a new version of your mobile app.