User Journey Replay
User Privacy and Video Recording
User Journey Replay is a powerful feature of Tingyun RUM (Real User Monitoring) that helps developers understand user behavior and troubleshoot issues by recording and replaying user interactions with applications. However, we fully recognize that this feature may involve the collection of sensitive information. Therefore, we have implemented comprehensive privacy protection mechanisms to ensure that user privacy is properly protected during the recording process.
SDK Design Principles
Tingyun RUM SDK adheres to the following design principles for User Journey Replay:
-
Privacy by Design: Privacy protection is built into the core design of the User Journey Replay feature, not added as an afterthought.
-
Data Minimization: The SDK only collects the minimum amount of data necessary to achieve the purpose of troubleshooting and user experience analysis.
-
Selective Recording: Developers can configure which elements should be masked or excluded from recording to protect sensitive information.
-
Transparent Control: Clear documentation and configuration options are provided to ensure developers understand how to implement privacy protections.
SDK Privacy Features
Tingyun RUM SDK implements the following privacy protection features for User Journey Replay:
-
Password Input Masking: Password input fields are automatically masked to prevent the collection of credentials.
-
Text Masking: Developers can configure specific text elements to be masked during recording.
-
Image Masking: Developers can configure specific image elements to be masked during recording.
-
Page Blacklisting: Developers can specify pages that should not be recorded.
-
Control Masking: Developers can specify UI controls that should be masked during recording.
-
Area Masking: Developers can specify screen areas that should be masked during recording.
Continuous Improvement and Feedback
We are committed to continuously improving our privacy protection mechanisms based on user feedback and evolving privacy standards. If you have any suggestions or concerns regarding privacy protection in User Journey Replay, please contact our customer service at 400-898-9580.
Collection Switch Control
Tingyun RUM SDK provides the following collection switch controls for User Journey Replay:
| Platform | Configuration Method | Default Setting |
|---|---|---|
| Android | TingyunRumConfig.Builder.setEnableVideoRecording(boolean enable) | Disabled |
| iOS | TRCConfig.enableVideoRecording | Disabled |
| Web | enableVideoRecording | Disabled |
When the switch is disabled, the SDK will not perform any User Journey Replay recording.
Privacy Control Features by Platform
Android
| Feature | Configuration Method | Description |
|---|---|---|
| Mask Password Input | Automatic | Password input fields are automatically masked |
| Mask Text | TingyunRumConfig.Builder.setVideoRecordingMaskTextList(List<String> textList) | Mask text elements containing specified strings |
| Mask Images | TingyunRumConfig.Builder.setVideoRecordingMaskImageList(List<String> imageList) | Mask image elements with specified resource IDs |
| Page Blacklist | TingyunRumConfig.Builder.setVideoRecordingIgnoreActivities(List<String> activities) | Do not record specified activities |
| Mask Controls | TingyunRumConfig.Builder.setVideoRecordingMaskViewList(List<String> viewList) | Mask specified UI controls |
| Mask Areas | TingyunRumConfig.Builder.setVideoRecordingMaskAreas(List<Rect> areas) | Mask specified screen areas |
iOS
| Feature | Configuration Method | Description |
|---|---|---|
| Mask Password Input | Automatic | Password input fields are automatically masked |
| Mask Text | TRCConfig.videoRecordingMaskTextList | Mask text elements containing specified strings |
| Mask Images | TRCConfig.videoRecordingMaskImageList | Mask image elements with specified names |
| Page Blacklist | TRCConfig.videoRecordingIgnoreViewControllers | Do not record specified view controllers |
| Mask Controls | TRCConfig.videoRecordingMaskViewList | Mask specified UI controls |
| Mask Areas | TRCConfig.videoRecordingMaskAreas | Mask specified screen areas |
Web
| Feature | Configuration Method | Description |
|---|---|---|
| Mask Password Input | Automatic | Password input fields are automatically masked |
| Mask Text | videoRecordingMaskTextList | Mask text elements containing specified strings |
| Mask Images | videoRecordingMaskImageList | Mask image elements with specified selectors |
| Page Blacklist | videoRecordingIgnorePages | Do not record specified pages |
| Mask Controls | videoRecordingMaskElementList | Mask specified DOM elements |
| Mask Areas | videoRecordingMaskAreas | Mask specified screen areas |
Implementation Examples
Android Example
TingyunRumConfig.Builder builder = new TingyunRumConfig.Builder();
// Enable User Journey Replay
builder.setEnableVideoRecording(true);
// Mask text containing sensitive information
List<String> maskTextList = new ArrayList<>();
maskTextList.add("credit card");
maskTextList.add("social security");
builder.setVideoRecordingMaskTextList(maskTextList);
// Mask specific images
List<String> maskImageList = new ArrayList<>();
maskImageList.add("profile_photo");
maskImageList.add("id_card_image");
builder.setVideoRecordingMaskImageList(maskImageList);
// Exclude specific activities from recording
List<String> ignoreActivities = new ArrayList<>();
ignoreActivities.add("com.example.app.PaymentActivity");
ignoreActivities.add("com.example.app.ProfileActivity");
builder.setVideoRecordingIgnoreActivities(ignoreActivities);
iOS Example
let config = TRCConfig()
// Enable User Journey Replay
config.enableVideoRecording = true
// Mask text containing sensitive information
config.videoRecordingMaskTextList = ["credit card", "social security"]
// Mask specific images
config.videoRecordingMaskImageList = ["profile_photo", "id_card_image"]
// Exclude specific view controllers from recording
config.videoRecordingIgnoreViewControllers = ["PaymentViewController", "ProfileViewController"]
Web Example
window.TINGYUN = window.TINGYUN || {};
window.TINGYUN.config = {
// Enable User Journey Replay
enableVideoRecording: true,
// Mask text containing sensitive information
videoRecordingMaskTextList: ["credit card", "social security"],
// Mask specific images
videoRecordingMaskImageList: [".profile-photo", "#id-card-image"],
// Exclude specific pages from recording
videoRecordingIgnorePages: ["/payment", "/profile"]
};
By implementing these privacy protection configurations, developers can ensure that sensitive information is properly protected while still benefiting from the insights provided by User Journey Replay.