The session starts when users open the app and it ends when it goes to the background.
A session is a set of data of what a user did in your app during the session duration, including gestures, events, visited screens, etc. Each session will be uploaded as soon as the app goes to the background. All sessions are recorded by default because this information is really useful for creating funnels, heatmaps and user’s flows.
A video is the visual representation of the session, where you can see the screens and the behavior of the user on those screens. This would help you better understand why the user is behaving in a certain way or performing certain actions. It can happen that you find a Session without a Video, in such cases, you will see this symbol (...). This can happen if you've already exceeded your video limits, set up video conditional recording and this video didn't meet the selected criteria or the user didn't have a good enough Internet connection to upload a video.
The combination of both will provide you with valuable insights to help you achieve your goals.
iOS: We use the system exception and signal handlers to capture when a crash happens. We capture the callstack there and report it when the next session completes. After our crash handler completes we call down to any other one that is also installed.
Android: We are attaching default UncaughtExceptionHandler to get the callback when an Exception happened. We capture the stack trace there and send it on to the next session. The SDK also calls any old handler that was attached after completing it's task, a very similar case compared it to iOS.
UXCam automatically detects rage gestures to show user frustration with certain elements or screens of your application.
A rage tap shows when the user taps repeatedly (more than 3 taps) in frustration, with at most 300ms between consecutive taps, and within a certain radius of the screen.
UXCam has set a maximum upload size limit of 50 Mb per session. This equates to around 100 minutes (on low-quality video recording)
If your app requires more 100 minutes of the session each, consider:
- Pausing the session during inactive period
- Splitting the session into smaller parts.
- Reach out to your Account Executive to adjust this setting on your account.
Our users use our mobile app offline. Are sessions stored on the device until it connects to the Internet?
Yes, we store the sessions until the user connects to the Internet. In the recording settings, you can also choose if you want to use only wifi or mobile data too. Click here to read more about it.
This is happening because the application needs to navigate to another application in order to complete a process. This is making the application to go into the background and therefore stoping a session and creating a new one as soon the user comes back to the app. In order to prevent this, you can use our API that allows you to take a short break to another app, this will prevent your sessions from splitting. More information in here
The steps that we follow in order to store the data are the following:
The data that is being recorded from the device is encrypted with the AES128 key that is then stored in the device.
Then the AES128 key is again encrypted with our RSA1024 key and is also stored in the device.
The data as well as the key are stored in a zip file that is then sent to AWS S3 via Https where is encrypted one more time.
When the zip file has reached to the storage (s3), there is a notification to our session processing app (that is running on AWS) that makes the following:
- Reads the file
- Decrypt the file
- Process it into our data base.
- Deletes the original file
- And then the dashboard is the one in charge of showing all of this data/information.
Updated 5 months ago