Personal data masking helps prevent unnecessary data from being sent to Contentsquare by masking personal data when it could be collected by Session Replay. This includes replacing masked text with an asterisk (*) and images with a blur effect.
By default, the Contentsquare SDK masks all content displayed on your user interface (UI). However, there are masking mechanisms available that allow you to be more specific about what is/isn’t masked.
What is data masking?
Data masking prevents personal or sensitive content from being captured during a Session Replay recording.
By default, the Contentsquare SDK masks all content displayed on your user interface (UI). However, there are masking mechanisms available that allow you to be more specific about what is/isn’t masked (see next chapter).
Masking is applied on-device, before any data leaves the user's device so no sensitive content ever reaches Contentsquare's servers.
Masking/Unmasking mechanisms
Text and image masking
Quickly and easily customize data masking for non-sensitive text and image content, directly from the Contentsquare Console. With predefined rules ready for you to choose from, you can simply overlay additional masking to work alongside any pre-existing API masking rules and/or full masking.
Screen masking
Screen masking lets you mask or unmask entire screens by name, directly from the Contentsquare Console, without requiring an app release or SDK update.
To learn how to configure masking mechanisms and specific rules, please refer to this article:
How to customize masking rules from the Data Masking tab (Apps)
API masking rules
Having all UI content masked by default can make it difficult to analyze your app’s interface in a replay. Therefore, you are able to control which part of the user interface is collected via our masking and un-masking APIs, allowing you to only mask what’s necessary.
This typically happens during your Contentsquare implementation, with the support of your technical team (as it’s done directly in your app’s code). You can mask or unmask specific components in two ways:
- by ‘type’ (e.g. the model of the component): all instances of this model will be affected by the same masking/unmasking rule, or,
- by ‘instance’: only a specific instance of a component will be affected by the rule
You can find our technical documentation on this below:
- Personal data masking for iOS - Technical documentation
- Personal data masking for Android - Technical documentation
Caution: Avoiding unnecessary personal data collection
When using unmasking mechanisms, you must ensure that you have masked all personal data on your app to avoid unnecessary data collection.
Full masking
Full masking allows you to mask multiple, or all, app and/or SDK versions directly from the Contentsquare Console. This is primarily used if you know, or have concerns, that unnecessary personal data has been exposed, as it allows you to act quickly by applying full masking to specific app versions (and overriding your existing masking configurations).
Learn how to use full data masking here.
How masking displays in Session Replay
- Masked text is replaced by an asterisk (*)
- Images are blurred
Understand how masking rules are applied
Contentsquare evaluates masking rules according to their priority:
- If a screen matches both a masking rule and an unmasking rule, the screen remains masked.
- An unmasking rule cannot override an explicit masking rule.
- Full masking and other higher-priority masking rules can still mask content on a screen that has an unmasking rule.
- Some inputs can remain masked even when the rest of the screen is unmasked.
- Shared elements, such as standard top and bottom navigation bars, are not controlled by screen-level rules.
Screen-level masking applies to the screen’s text, images, and inputs when the screen name matches a configured rule. The SDK applies the configuration on the device before Session Replay data is collected or sent.
Note that maps remain masked regardless of the screen masking rule.