Session Replay
Session replay captures screenshots and UI state mutations to enable visual playback of user sessions in the Pulse dashboard.
Enabling Session Replay
Session replay is enabled and configured from the Pulse dashboard — it cannot be enabled from initialize(). The remote config controls:
- Enable/disable
- Screenshot interval
- Privacy settings (text masking, input masking, image masking)
Code-Side Configuration
The only thing you control in code is view class masking — registering view classes whose content should never be captured, regardless of remote settings.
Configure inside the sessionReplay { } block in initialize():
PulseSDK.INSTANCE.initialize(
application = this,
endpointBaseUrl = "https://your-backend.com",
apiKey = "your-api-key",
dataCollectionState = PulseDataCollectionConsent.ALLOWED,
) {
sessionReplay {
// Always mask these classes (fully-qualified name, subclasses included)
addMaskViewClass("com.example.ui.CreditCardView")
addMaskViewClass("com.example.ui.PasswordField")
// Never mask these classes, even if backend policy masks them
addUnmaskViewClass("com.example.ui.SafeBannerView")
}
}
Local masking rules are never overridden by remote config. Classes registered in code stay masked regardless of dashboard settings.
What Gets Captured
- Periodic screenshots of the app UI
- Touch event coordinates (for interaction overlay)
Related
- Pulse dashboard — View replay sessions