Session replayBeta
Watch what a visitor saw and did. Off by default; inputs are masked.
What a replay is
A replay isn’t a video. The SDK records the page’s structure and every change to it, along with clicks, scrolling and mouse movement, and the dashboard rebuilds the page from that record. You see the page as the visitor saw it and what they did on it. Recording uses the open source rrweb library, which the SDK downloads only when a visit is being recorded.
Turn it on
Replay is off until you turn it on. From the dashboard:
- Open Settings › Session Replay and switch on Record sessions.
- Choose how many visits to record: 1%, 10%, 25%, 50% or 100%. The default is 10%.
- Save. Visitors pick up the change within 5 minutes, on their next page load.
The setting applies to every site or app sending data with this project’s API key. You can also decide in code, which overrides the dashboard; see Replay options.
What is hidden
Masking happens in the visitor’s browser before anything is recorded, so hidden text never reaches Apperio.
- Form fields. Every input, textarea and select value is recorded as asterisks. Password fields are always masked, even if you turn input masking off in code.
- Anything you mark. Add the class
apperio-maskto an element and its text, including text inside it and text added later, is recorded as asterisks. Use it for names, addresses, balances and anything else shown on screen that should stay private.
<div class="apperio-mask">Ada Lovelace, 12 St James's Square</div>Attributes are not masked
apperio-mask hides text, not attributes. Keep private data out of placeholder, title, alt and aria-label. Text typed into a contenteditable element counts as page text, so put the class on the editable element itself.Watch a replay
- From an issue: Watch replay appears when a recorded visit hit that error. It opens the newest such recording a few seconds before the error.
- From Sessions: open a session and choose the Replay tab.
Replays are deleted 7 days after they are recorded.
Limits
- One page load per replay. A session ends when the page reloads or the visitor follows a link that loads a new page, so each replay covers one page load. Route changes inside a single-page app stay in the same replay.
- Errors during page load. The recorder starts once it has downloaded, a moment after the page loads. An error thrown before then is in your issues, but not in the replay.
- Upload timing. The SDK uploads a piece of the recording every 10 seconds while something is happening, sooner after 200 events, and when the visitor leaves or hides the page. An idle page sends nothing.