Your reports tell you that visitors from a campaign left on the pricing page, or that a step in a funnel loses half the people who reach it. They cannot tell you what those people saw, or what they tried before giving up.
Session replay answers that. Spreelytics now records visits on your site, and you can watch any of them with the visit's page views, clicks and events listed beside the recording. It is part of the Growth plan, and it takes one switch to turn on.
Find the visit, then watch it
Replays come from the same visits as every report, so you look for them the same way. The new Replays page, under Behavior, has the date range and Filter like every other page. That means you can list the replays of the visits from one campaign, of one segment, or of the people who completed a goal, then narrow them by entry page, by the visitor's email, or by how long the recording runs.
You do not have to start from that list. Wherever a recorded visit shows up, a Watch replay button opens it:
- on Sessions, a small screen icon marks every session that has a replay;
- on a profile, each recorded session on the visitor's timeline has one, including in the visitor window that Goals and Revenue open;
- on the Realtime globe, the visitor card has one while that visit is being recorded.
What you see
A replay opens over the page you are on and starts playing. Beside it, Activity lists the visit as it happened:
- page views, with their path;
- events, including the ones you send with
track(); - clicks, named by what was clicked, such as "Clicked “Start free”";
- rage clicks, in red: three or more clicks close together;
- typing, as one "Typed in …" row per field, never what was typed.
The list follows playback and you can click any row to jump there. The same items sit as dots on the bar under the recording, and the bar thins out wherever nothing happened for more than 10 seconds. Skip inactivity, on by default, fast-forwards those quiet stretches, so a long visit with a lot of reading in it does not take as long to watch as it took to happen.
A few smaller things make it quicker to use:
- From the Replays page, Previous replay and Next replay step through the list without closing the player.
- Copy link to this moment gives a teammate a link that opens the replay at that second.
- Space plays and pauses, and the arrow keys jump 10 seconds.
- A visit that is still going shows Live and keeps loading a few seconds behind the visitor.
It is not a video
The recorder does not film the screen. It captures the page and each change to it, and the player rebuilds the page from that, at the size of the visitor's window. Page text stays sharp at any size, and anything that was masked was never sent at all.
It also keeps the cost to your site small. The recorder is a second file of about 24 KB, and the tracking script loads it only for the visits it records. Nothing is sent for a visit that lasts under 5 seconds.
Private by default
Replays show your pages as visitors saw them, with what they type and who they are kept out:
- Everything typed into a form field is masked, and password fields always are.
- 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.
Two attributes cover the rest of your page. data-spree-mask hides the text inside an element, and
data-spree-block leaves an element out of the recording entirely, which suits things like uploaded
avatars.
Who gets recorded is just as narrow. Visitors tracked without cookies are never recorded, browsers that send Global Privacy Control are never recorded, and your Excluded traffic rules apply to replays too. On an excluded page, recording pauses until the visitor reaches one that is not.
In the EU and the UK, regulators treat session replay as needing consent, with or without cookies.
Because only visitors tracked with cookies are recorded, a consent banner that holds cookies back
covers replay as well: start the script cookieless, and recording starts from the next page once
the visitor agrees. If you would rather record only signed-in users, or only part of your site,
startReplay() and stopReplay() let you decide in code.
Turning it on
Session replay is off until an admin turns it on for an audience:
- Open Settings → Tracking script.
- Under Session replay, switch on Record sessions.
Nothing changes on your site. The tracking script picks the setting up by itself, and recording starts within a minute.
What it costs
Replays come with every Growth size, with an allowance of their own: one replay a month for every 10 events of the size. That is 25,000 replays on the 250k size at $29 a month, 100,000 on 1M and 5,000,000 on 50M. Replays never count as events, and there is no overage charge. When a month's replays are used up, new visits are simply not recorded until the period resets, and your analytics carry on as before.
You will not find out by accident. Admins get an email at 90% and another when the allowance is used up, the app shows a banner, and Usage & Billing shows how many you have used. Replays are kept for 30 days on every size.
Some tools bill replays on a meter of their own, on top of analytics. We would rather you could turn it on without doing the arithmetic first. Our PostHog pricing breakdown shows how the two approaches compare.
What it does not do
Replays come from the tracking script, so they cover websites, not mobile apps. They do not capture
console messages or network requests. Drawings on a <canvas> are not recorded either.
The full guide, with every masking option and limit, is in the session replay docs, and the session replay page has the overview.