Docs·Other

Definitions

Most disagreements about an analytics number turn out to be about what was counted. This page defines every unit, metric and filter in Spreelytics, with the formula the app uses to work each one out, so you can tell exactly what a number means and why it may differ from another tool's.

How tracking works

Every report in Spreelytics is built from three things: the visitor, the session and one stream of events.

The visitor id

When someone first arrives, the tracking script gives their browser a random visitor id, vid_ followed by a UUID, and stores it in a first-party cookie called spreelytics_vid. The cookie is written again on every visit and lasts 365 days from the latest one, so a visitor who keeps coming back keeps the same id. By default the cookie is set on your root domain, so www.example.com and app.example.com share it. The script also keeps two small entries of its own in the browser: spreelytics_visitor, which remembers when the visitor was first seen, and spreelytics_session_data, which holds the current session.

On an audience using cookieless tracking, the browser stores nothing. Spreelytics works out an anonymous visitor id from each request instead, and that id only lasts one UTC day.

The session

A session is one visit. It starts with the first page a visitor opens and ends after 30 minutes without activity, measured in the browser and on the server. Each session has its own id, sess_ followed by a UUID. The script keeps the session in the browser tab, so opening your site in a second tab, or moving to another subdomain, starts a new session.

Where a visit came from is decided by its first page: the channel, source, referrer and UTM fields of that page apply to everything that happens in the visit.

One stream of events

Pageviews, custom events and the events the script sends on its own all land in one stream, each one tagged with its visitor and its session. Every page in the app is a view of that stream, which is why a filter set on the Overview carries over to Sessions, Events and Profiles and means the same thing on each.

Units

Visitor

One browser, known by one visitor id. Almost every headline number counts visitors. A visitor is not a person: the same human on a phone and a laptop is two visitors, and stays two visitors in visitor counts even after you identify them on both. On a cookieless audience, the same human across a week is up to seven visitors, one per day.

Session

One visit by one visitor. A visitor who comes back next week has one visitor id and two sessions. Entry page, exit page, channel, source, UTM fields and bounce all describe a session, not a person.

Person

Someone you have identified with Spreelytics.identify(). A person can own several visitors, one for each browser you identified them in, and their history includes what those browsers did before they were identified. Goal conversions count people: an identified person counts once whichever devices they used, and an anonymous visitor counts as their own person.

Identified

A visitor linked to a person by identify(). Identified profiles are listed on the Identified tab of Profiles, with a tick next to them.

Audience

One site or app you track. Each audience has its own client key, its own settings and its own data. People are kept per audience, so the same email address on two audiences is two separate profiles.

Workspace

A group of people who share access to a set of audiences, each with a role: Viewer, Editor or Admin. Billing and the monthly events allowance belong to the workspace. Some screens call it a team. See Members and roles.

Metrics

Every metric counts what happened inside the date range you picked. Visitor and session metrics count the sessions that started in the range. Event and revenue metrics count events by the time they happened.

Change from the previous period

Most numbers carry a badge with their change against the previous period: a range of the same length that ends where yours begins. The badge shows (current minus previous) divided by previous, as a percentage. It is green when the change is good and red when it is bad, so a falling Bounce rate is green. When the previous period was zero, or nothing changed, there is no badge.

For a rate, the badge is the change of the rate itself, not a difference in points: a bounce rate that moves from 40% to 50% shows a 25.0% rise, because 10 is a quarter of 40.

Visitors

The number of distinct visitor ids with at least one session that started in the range. Shown as Visitors on the Overview and Unique Visitors on the Pages page.

Sessions

The number of sessions that started in the range. It is a line on the Overview's Visitors chart, and the first number on the Sessions page.

Returning

A line on the Overview's Visitors chart: of the visitors in each interval, those whose very first session started before that interval. Their first session is looked up across all time, not only in the selected range.

Pageviews

The number of pageviews recorded in the range, shown as Pageviews on the Pages page. A pageview is recorded on every page load and every move to a new page in an app that changes pages without reloading. In the Pages table, Views is the same count for one page, and Sessions is the number of sessions that viewed it.

Bounce rate

The share of sessions that bounced: bounced sessions divided by all sessions, as a percentage. A session bounces when it has at most one pageview and no events. Custom events and link clicks count as events. The automatic scroll event does not. Time spent does not matter either: a visitor who reads one long article for ten minutes and sends no event is a bounce.

It appears as Bounce rate on the Overview and Bounce Rate on the Pages and Sessions pages. On the Entry pages tab of the Pages table, Bounce is the same share for the sessions that started on that page.

Session time

The average length of a session: the total duration of the sessions that started in the range, divided by the number of those sessions. Only time the page was visible counts, so a tab left in the background adds nothing. The script reports it whenever the visitor leaves or switches tabs, so a session still in progress counts as zero until it first reports. On a cookieless audience the browser keeps no running total, so a session's length is the time from its first page to its latest report.

It is called Session Time on the Overview, Avg. Duration on the Sessions page and Avg. Time on the Pages page. All three are the same number. On the Entry pages tab, Avg. session averages only the sessions that started on that page and have reported their time.

Time on page

The Duration column of the Pages table: the average time spent on that page. The time on a page is known once the visitor moves to another page, or leaves and reports their session. Views where no time could be measured are left out of the average.

Pages / Session

The average number of pageviews per session: the pageviews of the sessions that started in the range, divided by the number of those sessions. Shown on the Sessions page.

Conversion rate

On the Overview: the share of visitors who paid. People who made at least one payment above 0 in the range, divided by Visitors. A free trial's first invoice of 0 does not count, and refunds are not payments, so they never count as a conversion either.

On the Goals page each goal has its own Conversion rate: the people who completed that goal, divided by everyone who was active in the range. See Goals.

Revenue

The money from payments in the range, net of refunds, in the audience's reporting currency. Each payment is converted once, at the time it happens, so past revenue does not move when exchange rates do. Changing the reporting currency converts every past payment again. On the revenue chart, the tooltip also shows refunds on their own as Refunded. Revenue only comes from a connected payment provider or from your server. See Revenue.

Revenue/visitor

Revenue divided by Visitors, for the same range. Both numbers come from the same figures shown in their own cells, so the three always agree.

Cohort Retention

Two different things carry this name on the Overview.

The number in the strip is the share of the range's visitors who had visited before: returning visitors divided by Visitors, where returning means their first session started before the range.

Click it and the chart becomes a retention grid. Each row is a cohort: the identified people first seen in one day, week or month of the range. Each cell shows how many of them came back at least that many periods later, so a row can only fall from left to right. The % and # switch shows the cells as a share of the cohort or as a count. The grid only counts identified people, so it stays empty until you identify your users.

Online

The number of visitors whose session was active in the last 5 minutes, shown as Online on the Overview and as the N online chip on most pages. A session stays active while the visitor opens pages, sends events, or comes back to the tab. A tab left idle in the background drops out after five minutes.

Entrances

On the Entry pages tab of the Pages table: the number of sessions that started on that page.

Exit rate

On the Exit pages tab of the Pages table. Exits is the number of sessions whose last page was this one, counting sessions that have reported their end. Exit rate is exits divided by the page's Views, as a percentage. A high exit rate means many of the views of that page were the last page of a visit.

Filter dimensions

Filter narrows a page to the visits that match. Every dimension except Segment and Goal offers the operators is, is not, contains, does not contain, starts with, ends with, is set and is not set. Segment and Goal offer is and is not. Not every page applies every dimension. Where one does not apply, its pill turns grey with the note "Filter not active for this page".

Channel

The kind of traffic a visit came from, worked out from its source, its UTM medium and campaign, and any ad click id on its first page. The rules are checked in this order, and the first one that matches wins:

ChannelWhen a visit gets it
Cross-networkThe UTM medium is cross-network.
EmailThe source or the UTM medium is email (or e-mail, e_mail, e mail), or the source is gmail.
SMSThe source or the UTM medium is sms.
Mobile Push NotificationsThe source is firebase, or the UTM medium is mobile or notification, or ends in push.
AffiliatesThe UTM medium is affiliate.
AudioThe UTM medium is audio.
DisplayThe UTM medium is display, banner, expandable, interstitial or cpm.
AIThe source is an AI assistant: ChatGPT, Perplexity, Claude, Gemini, Copilot, Meta AI, You.com, Poe, Phind, Grok, DeepSeek or Le Chat.
Paid SearchA search engine source with a paid medium, a Google visit with a gclid or a Bing visit with an msclkid.
Paid SocialA social network source with a paid medium.
Paid VideoA video site source with a paid medium.
Paid ShoppingA shopping site source, or a campaign whose name contains "shop", with a paid medium.
Paid OtherAny other paid medium.
Organic SearchA search engine source, such as Google, Bing or DuckDuckGo, or the UTM medium organic.
Organic SocialA social network source, such as Facebook, LinkedIn or Reddit, or a social UTM medium such as social or sm.
Organic VideoA video site source, such as YouTube or Vimeo, or a UTM medium containing video.
Organic ShoppingA shopping site source, such as Amazon or eBay, or a campaign whose name contains "shop".
ReferralThe UTM medium is referral, app or link, or the visit has any other source that matched nothing above.
DirectNo source and no UTM medium.

A paid medium is one that contains cp (such as cpc), is ppc or retargeting, or starts with paid. A source whose name contains a search engine, a social network or a video site and ends in "ad" or "ads", such as google-ads or fb-ads, counts as paid even without a paid medium, and so does the source adwords. These rules follow the channel definitions Plausible publishes.

Source

Where a visit came from, by name. If the first page's address carries a utm_source, source or ref parameter, that is the source. Otherwise it is the referring site, named when Spreelytics knows it (Google, Facebook, ChatGPT) and given as a bare hostname when it does not. Known names are given one spelling, so ?utm_source=google and a visit referred by Google land on the same row. A visit from your own site or one of its subdomains, or back from a payment page such as Stripe or PayPal, has no source.

URL

The referring address: the hostname and path of the page that linked to the visit, without its query string. On the Overview it is the URLs tab of the acquisition card.

UTM source, UTM medium, UTM campaign, UTM term and UTM content

The values of the utm_source, utm_medium, utm_campaign, utm_term and utm_content parameters on the first page of a visit, exactly as they were written.

Browser

The browser named in the visitor's user agent, such as Chrome or Safari. Mobile and desktop versions of a browser share one name, because the device is its own dimension.

OS

The operating system named in the user agent, such as macOS, Windows, iOS or Android.

Device

Desktop, Mobile or Tablet, as detected from the request when it reaches Spreelytics.

Country, Region and City

Where the visit was made from, looked up from the visitor's IP address as the request arrives. The address itself is not stored with your data. A visitor using a VPN or a proxy appears where that service is.

Page

The path of a page, without its query string, its # fragment or a trailing slash, so /pricing/?plan=pro is recorded as /pricing. An app that changes pages with # routes, such as /#/settings, is recorded as one page.

Entry page

The first page of a visit.

Exit page

The last page of a visit, as reported when the visitor left or switched tabs.

Event

The name of a custom event. Event is narrows a page to the visits that included that event.

Segment

The people in a saved segment. Segment is keeps only its members, and is not keeps everyone else.

Goal

The people who completed a goal in the date range. Goal is keeps only them, and is not keeps everyone else.

Event kinds

Pageview

Sent when a page loads, and each time an app moves to a new page without reloading. A change to the query string alone, or a jump to an #anchor, is not a new page.

Custom event

Sent by Spreelytics.track() or by a click on an element tagged with data-spree-track. Payments from a payment provider or your server are custom events too, carrying an amount. See Track events.

Sent when a visitor clicks a link, if you turned on track_links or set up a link with trackLink. It always has the name Link Click, with the properties href, text and id.

Scroll

Sent automatically when a visitor leaves a page or switches tabs, with how far down the page they got, from 0 to 100 percent. Nothing is sent when the page is too short to scroll or the visitor did not scroll. If they come back and scroll further, another follows with the higher value. Scroll goals count these. See Autocapture.

Session end

Sent automatically each time a visitor leaves or switches tabs, with the running totals of the visit: its duration, its pages and its events. It is how Spreelytics learns a session's length and its exit page.

Scroll, Link Click and session end events do not count toward your monthly events. Pageviews and custom events do. See Billing.

Reporting timezone

Each audience has one, set in Settings → Details → Reporting timezone: "Which hours count as a day here." It decides where each day starts in the report builder and in the report cards on your dashboards, shared dashboards included, so everyone reading a report sees the same days. A new audience starts with the timezone of the browser that created it.

The built-in pages, such as the Overview, Pages and Sessions, group their days in UTC, and their Today and Yesterday start at midnight on your own computer's clock. A day on those pages can therefore start at a different hour from the same day in a report.

Why numbers differ from other tools

When Spreelytics and another tool disagree, it is usually one of these:

  • Bots are dropped before they are stored. Crawlers, automated browsers, tools such as curl and traffic from cloud servers never reach your numbers here. See Filter traffic.
  • Some visitors block the script. Some ad blockers and privacy tools stop analytics scripts from loading. The Proxy guide covers sending the requests through your own domain.
  • Visitors are browsers, not people. One person on two devices is two visitors. On a cookieless audience, one person across a week can be seven.
  • Sessions are per tab and end after 30 minutes idle. A second tab starts a second session.
  • Bounce means one page and no events. Tools that judge a bounce by time on page will report a different rate.
  • Session time only counts time the page was visible. A tab left open in the background adds nothing, except on a cookieless audience, where a session runs from its first page to its last report.
  • Days start at different hours. The built-in pages use UTC days, reports use the audience's reporting timezone, and another tool may use a timezone of its own.
  • Revenue is net of refunds and converted to one reporting currency at the time of each payment.
  • Sessions are counted by when they started. A visit that begins at 23:50 and runs past midnight belongs to the day it began.

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.