Skip to main content

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:

  1. Privacy by Design: Privacy protection is built into the core design of the User Journey Replay feature, not added as an afterthought.

  2. Data Minimization: The SDK only collects the minimum amount of data necessary to achieve the purpose of troubleshooting and user experience analysis.

  3. Selective Recording: Developers can configure which elements should be masked or excluded from recording to protect sensitive information.

  4. 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:

  1. Password Input Masking: Password input fields are automatically masked to prevent the collection of credentials.

  2. Text Masking: Developers can configure specific text elements to be masked during recording.

  3. Image Masking: Developers can configure specific image elements to be masked during recording.

  4. Page Blacklisting: Developers can specify pages that should not be recorded.

  5. Control Masking: Developers can specify UI controls that should be masked during recording.

  6. 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:

PlatformConfiguration MethodDefault Setting
AndroidTingyunRumConfig.Builder.setEnableVideoRecording(boolean enable)Disabled
iOSTRCConfig.enableVideoRecordingDisabled
WebenableVideoRecordingDisabled

When the switch is disabled, the SDK will not perform any User Journey Replay recording.

Privacy Control Features by Platform

Android

FeatureConfiguration MethodDescription
Mask Password InputAutomaticPassword input fields are automatically masked
Mask TextTingyunRumConfig.Builder.setVideoRecordingMaskTextList(List<String> textList)Mask text elements containing specified strings
Mask ImagesTingyunRumConfig.Builder.setVideoRecordingMaskImageList(List<String> imageList)Mask image elements with specified resource IDs
Page BlacklistTingyunRumConfig.Builder.setVideoRecordingIgnoreActivities(List<String> activities)Do not record specified activities
Mask ControlsTingyunRumConfig.Builder.setVideoRecordingMaskViewList(List<String> viewList)Mask specified UI controls
Mask AreasTingyunRumConfig.Builder.setVideoRecordingMaskAreas(List<Rect> areas)Mask specified screen areas

iOS

FeatureConfiguration MethodDescription
Mask Password InputAutomaticPassword input fields are automatically masked
Mask TextTRCConfig.videoRecordingMaskTextListMask text elements containing specified strings
Mask ImagesTRCConfig.videoRecordingMaskImageListMask image elements with specified names
Page BlacklistTRCConfig.videoRecordingIgnoreViewControllersDo not record specified view controllers
Mask ControlsTRCConfig.videoRecordingMaskViewListMask specified UI controls
Mask AreasTRCConfig.videoRecordingMaskAreasMask specified screen areas

Web

FeatureConfiguration MethodDescription
Mask Password InputAutomaticPassword input fields are automatically masked
Mask TextvideoRecordingMaskTextListMask text elements containing specified strings
Mask ImagesvideoRecordingMaskImageListMask image elements with specified selectors
Page BlacklistvideoRecordingIgnorePagesDo not record specified pages
Mask ControlsvideoRecordingMaskElementListMask specified DOM elements
Mask AreasvideoRecordingMaskAreasMask 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.