Skip to main content

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,

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)