Docs·Feature guides

Session replay

Session replay records how visitors use your site, so you can watch a visit with its page views, events, clicks and typing listed beside the recording. It is on the Growth plan. Replays come from the same visits as every report, so you find them the same way: by date range, by filter, or from a session or a profile.

A replay is not a video. The recorder captures the page and each change to it, and the player rebuilds the page from that, at the size of the visitor's window. That is why page text in a replay is sharp, and why what was masked was never sent at all.

A replay open over the Replays page: the recorded page under its address bar, the dotted progress bar and the controls below it, and the visit's activity listed beside it

Turning it on

Session replay is off until an admin turns it on, for each audience:

  1. Open Settings → Tracking script.
  2. Under Session replay, switch on Record sessions.

The app confirms with "Session replay on — recording starts within a minute." Nothing changes on your site: the tracking script picks the setting up by itself, and loads the recorder, a second file of about 24 KB, only for the visits it records. Switching it off stops new recordings. Replays already recorded stay until they expire.

On Free, the section says "Session replay is on the Growth plan." and shows Upgrade plan in place of the switch.

Who is recorded

With replay on, every visit is recorded, up to your plan's monthly replays, unless:

  • the visitor is not tracked with cookies. Cookieless visitors are never recorded, and an audience with Cookieless tracking on records nothing. See Cookieless tracking.
  • their browser sends Global Privacy Control.
  • the visit is excluded under Excluded traffic, or dropped as a bot. See Excluded traffic below.
  • the visit lasts under 5 seconds. Nothing is sent before then.

In the EU and the UK, regulators treat session replay as needing the visitor's consent, with or without cookies. Because only visitors tracked with cookies are recorded, the setup that holds cookies back covers replay too: start the script with cookieless: true, and call Spreelytics.allowCookies() once the visitor agrees. Recording starts from the next page they open. Cookieless tracking shows the code.

Recording only some visits

To record only signed-in users, or to stop recording on part of your site, set session_replay: { manual_start: true } in Spreelytics.init(), call Spreelytics.startReplay() when recording should begin, and Spreelytics.stopReplay() to stop. Each call lasts for the rest of the visit. The JavaScript SDK page has the details.

What is masked

Replays show your pages as visitors saw them, page text included, except:

  • Everything typed into a form field is masked, and shows as asterisks. Password fields are always masked.
  • Email addresses are masked wherever they appear on the page.
  • Card fields from Stripe and Braintree are left out. They sit in frames from another site, and those are never recorded.
  • <canvas> drawings are not recorded.

Two attributes cover the rest, on any element of your page:

AttributeWhat it does
data-spree-maskMasks the text inside the element. On <body>, it masks the text of every page.
data-spree-blockLeaves the element out of the recording. The replay shows an empty box the same size.
<p data-spree-mask>Account balance: $1,240.00</p>
<img src="/uploads/avatar.jpg" data-spree-block />

Images show in replays, so add data-spree-block to pictures your visitors upload, such as avatars. To change masking in code, for example to mask by CSS selector or to stop masking form fields, set session_replay in Spreelytics.init() (JavaScript SDK).

The Replays page

Replays, under Behavior in the sidebar, lists the recorded visits that started in the date range, newest first. It has the date range and Filter, like every report, and two narrowings of its own:

  • Search replays finds visits by their entry page, the site's hostname, the visitor's email address or the visitor ID, as on Sessions.
  • The length menu: Any length, 10 s or more, 30 s or more, 1 min or more or 5 min or more. It counts the recording's length, not the session's.
The Replays page, filtered to anonymous visitors: each recorded visit with its visitor, location and device, when it was recorded, its length, pages, events and entry page

Every filter applies, so you can list the replays of the visits from one campaign, of one segment, or of the people who completed a goal. The list keeps 50 replays a page.

ColumnWhat it shows
PlayOpens the replay.
VisitorThe visitor's email once identified, or Anonymous.
Location and deviceA flag, then browser, operating system and device icons, each with a tooltip.
RecordedWhen the recording started.
LengthHow long the recording runs. A live dot beside it, "Still recording", means new moments came in within the last 5 minutes.
Pages and EventsThe visit's page views and events.
Entry pageThe first page of the visit.

"Nothing recorded in this range with these filters." means there is nothing to list yet. Recordings start once session replay is on, and are kept for 30 days.

Watching a replay

A replay opens in a window over the page you are on. Its address gains ?replay=, so you can send it to a teammate in your workspace, and the browser's Back button closes it. The header shows who and when, Session to open the visit's session page, and, from the Replays page, Previous replay and Next replay.

The recording

Above the recording, the address bar shows the page on screen and the size of the visitor's window, with buttons to copy the address and open the page. When something was not recorded, a note says so: "Not recorded here: an excluded page." or "the page was too big", and recording picks up on the next page.

The bar and the controls

The bar under the recording is a full-height segment wherever the visitor was active, and a thin line where nothing happened for more than 10 seconds. A stretch that was not recorded is dashed. Each item of the activity list is a dot on the bar, red for a rage click. Point at the bar to see the time and the item there, such as "Clicked “Pricing” · 1:02", and click to jump.

ControlWhat it does
PlayPlays and pauses. Space does the same while the player has focus.
Back and forwardJump 10 seconds. The ← and → keys do the same.
SpeedFrom 0.5× to 16×.
Skip inactivityOn by default. Fast-forwards the thin and dashed stretches, with "Skipping inactivity" on screen while it does.
The timeWhere you are, and the recording's length.
Copy link to this momentA link that opens the replay at this second (?t=).

Your speed, Skip inactivity and whether the activity list shows are remembered for next time.

Activity

Activity lists the visit beside the recording, or under it in a narrow window:

  • page views, with their path;
  • events, by name, including the ones you send with track();
  • clicks, named by the text of what was clicked, such as "Clicked “Start free”";
  • rage clicks, in red: three or more clicks close together, each within a second of the last;
  • typing, one "Typed in …" row per field, never what was typed.

All, Events and Clicks filter the list, and the dots on the bar follow. The list follows playback: the moment on screen is highlighted, what is still to come is dimmed, and it scrolls by itself unless your pointer is over it. Click a row to jump to it.

Live visits

A visit that is still going shows Live and keeps loading as new moments come in, a few seconds behind the visitor. Once you catch up, the player says "Waiting for the visitor…" and carries on when more arrives.

Replays elsewhere in the app

  • Sessions: a screen icon on a row, "Has a replay", marks a recorded session. In the open row and on the session's own page, Watch replay sits on the Timeline header.
  • Profiles: each recorded session on a profile's timeline has Watch replay, including in the visitor activity window that Goals and Revenue open.
  • Realtime: the visitor card on the globe has Watch replay while that visit is being recorded.

Every member who can see Sessions can watch replays. Replays are never part of a shared dashboard.

Excluded traffic

Excluded traffic applies to replays too. Visits from an excluded IP address and visits of an excluded profile are not recorded. On an excluded page, recording pauses, and the replay shows "Not recorded here: an excluded page." until the visitor reaches a page that is not excluded.

Limits

Monthly replaysOne replay a month for every 10 events of your Growth size: 25,000 on 250k, 100,000 on 1M and 5,000,000 on 50M. They have their own allowance and never count as events. Usage & Billing shows how many you have used.
When they run outNew visits are not recorded until the period resets. Your analytics carry on as before, and nothing is charged on top. See Billing.
How long they are kept30 days on every size, then deleted, whatever your plan keeps for analytics.
Very large pagesA change to a page too big to send pauses recording until the next page, and the replay marks the gap.
Websites onlyReplays come from the tracking script. Mobile apps are not recorded.
Not capturedConsole messages and network requests.

See your own numbers today.

Free up to 100k events a month · no credit card

Contact

Tell us what you need.

A real person reads these. We usually reply within one working day.

Or email us directly at contact@spreelytics.com.