How does Simple Analytics count visitors without cookies?
Simple Analytics and invisit both work without cookies, but they count people differently. Simple Analytics never identifies a visitor: it decides from the referrer whether a page view starts a visit. invisit tells visitors apart with a hash that rotates every day, so it can group one person’s pages and events within a day and cannot follow them into the next.
Simple Analytics’ unique visits documentation sets out the rule. A page view counts as a visitor when it has no referrer or one from another site; internal clicks, reloads and back or forward navigation do not. The Simple Analytics visitors figure is therefore unique page views, and doubles as its session count.
- Someone who arrives from a newsletter in the morning and from Google in the afternoon is two visitors in Simple Analytics and one in invisit.
- A Simple Analytics session has no timeout: a tab left open for five hours and then clicked is still the same session.
- Simple Analytics cannot show the path one person took, because nothing links page views beyond a single page load.
Simple Analytics’ documentation also says hashes of IP addresses combined with dates count as fingerprinting and need consent under the GDPR and PECR. invisit uses a daily-rotating hash, never stores raw IP addresses, and has a consent mode (requireConsent) for sites whose policy wants consent anyway. If your data protection officer shares Simple Analytics’ reading, Simple Analytics is the more conservative design.
Simple Analytics skips visitors who send Do Not Track by default. invisit counts them unless you turn on respectDnt, and can also honour Global Privacy Control with respectGpc (privacy guide); Simple Analytics’ DNT page covers Do Not Track only.
How much does Simple Analytics cost at 100K, 1M and 10M pageviews?
As of November 2026, Simple Analytics’ Simple plan costs $20 a month at 100K, $60 at 1M and $160 at 10M pageviews and events, with one user included and $20 a month for each extra user. invisit costs $14, $49 and $199 at the same volumes, with team members included on every plan. Which is cheaper depends on volume and on how many people need a login.
Simple Analytics’ pricing has three plans:
| Free | Simple | Enterprise | |
|---|---|---|---|
| Price | $0 | $15 to $160 a month, then $16 per extra million | On request |
| Websites | 5 | 10 | On request |
| Users | 1 | 1, then $20 a month each | On request |
| Data kept | 30 days | 3 years | On request |
| Events, goals, Stats API | No | Yes | Yes |
| Export API, custom views, ad-blocker subdomain | No | No | Yes |
| Badge on your website | Required | No | No |
What a month costs, by volume and team size:
| Pageviews and events a month | invisit | Simple Analytics, 1 user | Simple Analytics, 3 users |
|---|---|---|---|
| 20K | Free | $15 | $55 |
| 100K | $14 | $20 | $60 |
| 250K | $24 | $30 | $70 |
| 500K | $49 | $40 | $80 |
| 1M | $49 | $60 | $100 |
| 2M | $99 | $80 | $120 |
| 5M | $199 | $120 | $160 |
| 10M | $199 | $160 | $200 |
For one person, Simple Analytics is cheaper at 500K, 2M, 5M and 10M, and invisit at the other volumes. With three people on the account, invisit is cheaper at every volume in the table except 5M.
A worked example: a SaaS with 300K page views and 50K custom events a month records 350K data points. On Simple Analytics that is the $40 step, or $80 a month ($800 a year) once two colleagues have their own logins. On invisit it is the 1M Pro step at $49 a month ($441 a year), colleagues included. Working alone, Simple Analytics’ $40 beats invisit’s $49.
Simple Analytics bills each month from your recent usage (last month, then the three-month average); a year costs ten months. invisit warns at 80% of your plan and pauses new events only in a second month over in a row; a year costs nine months.
Does Simple Analytics have funnels?
Partly. Simple Analytics has goals with several steps, built from page views, events and metadata, but its changelog records that it renamed funnels to goals in July 2024 because the steps did not always come from the same session. invisit builds funnels from pages or events, split by source, country or device, and keeps a timeline of every visit’s pages and events, live in the dashboard and at any age through the API.
Simple Analytics links data points only by a page-load ID that resets on every full page load, so per-visit views are not possible there.
Simple Analytics records sa_event calls with metadata (text, numbers, booleans and dates), data-simple-event attributes since script v12, and an automated events script for outbound links, downloads, email and phone clicks. Events need the Simple plan.
invisit takes custom events with up to 32 properties. Simple Analytics forbids identifiers in metadata; invisit’s identify(user.id) attaches your own user id, hashed, to visits.
Where does Simple Analytics store its data?
Simple Analytics B.V. is a Dutch company, based in Amsterdam, that keeps analytics data on Worldstream servers in the Netherlands and Hetzner servers in Germany, with Bunny, a Slovenian company, as its CDN. invisit stores data in Falkenstein, Germany, also at Hetzner, with Cloudflare, a US company, running DNS and the CDN in front.
Simple Analytics’ subprocessor list, updated October 27, 2026, names US providers that get analytics data only when you opt in: OpenAI for the AI chat, Google for the GA4 import and Data Studio connector. Email reports go through Mailgun, a US company, in its EU region. invisit offers a DPA.
If your rule is that no US-owned company may sit in the collection path, Simple Analytics meets it and invisit does not.
Does Simple Analytics track AI traffic and have an AI assistant?
Simple Analytics has an AI chat inside its dashboard but no report of visitors sent by AI assistants. invisit groups AI referrals in their own tab and lets your own assistant read your data through an MCP server.
Simple Analytics’ AI chat answers questions in plain English and draws a chart per answer. It runs on OpenAI (GPT-4o since December 2024) and is opt-in: before your first question it asks whether you agree to send your analytics data to OpenAI in the US. The pricing page does not say which plans include it.
In Simple Analytics, chatgpt.com, claude.ai and perplexity.ai sit in the referrer list beside every other site, with no AI grouping in the dashboard or the Stats API. invisit recognises 19 assistants, from ChatGPT and Claude to Le Chat, Doubao and Duck.ai, by referrer and by utm_source (how it works).
Simple Analytics hides bots from its reports; invisit records search and AI crawler reads server-side with @invisitdev/server. Simple Analytics has no official MCP server, only third-party connectors to its API. invisit’s remote MCP server signs in with OAuth or a personal token.
When Simple Analytics is the better choice
Simple Analytics is the better pick when privacy posture, EU ownership or a smaller footprint matter more than analytical depth.
- No identifier of any kind. If your legal advice says a daily hash is too much, Simple Analytics’ referrer-based counting avoids the question.
- Only EU companies in the collection path, from CDN to servers, per its subprocessor list.
- A smaller script. We measured
latest.js(v12) at about 4.8 KB gzipped; invisit’s core script is about 8.5 KB. - Google Analytics history. Simple Analytics imports GA4 page views; invisit cannot import history.
- Email reports, weekly or monthly. invisit has no scheduled email reports.
- One person at high volume: at 500K, 2M, 5M and 10M a month, the Simple plan costs less for one user.
- A busy page-view-only site: the Free plan has no page view cap (under fair use) if a badge and 30 days of history are acceptable.
- A consent-gap study: Enterprise includes a free 30-day assisted proof of concept running next to GA4.
Switching from Simple Analytics to invisit
- Export your history from Simple Analytics first. Its export page downloads page views, events or both, with metadata, as CSV, JSON, NDJSON, Parquet and other formats; the Export API needs a plan that includes it. invisit cannot import history, so keep the file.
- Install invisit next to
latest.jsand leave both running. - Map your events. Simple Analytics event names use letters, digits and underscores, so each is already a valid invisit name.
- Rebuild each Simple Analytics goal as an invisit conversion or funnel.
- Run both for a few weeks and compare page views. Visitors will differ, for the reasons above.
- Remove
latest.jsandauto-events.js, then cancel. Your Simple Analytics data stays available until the end of the period you paid for.
// Before: Simple Analytics (latest.js on the page)
sa_event('signup', { plan: 'pro' })
// After: invisit
import { identify, init, track } from '@invisitdev/web'
init({ site: '<site id>' })
track('signup', { plan: 'pro' })
identify(user.id)| Simple Analytics | invisit |
|---|---|
sa_event('signup', { plan: 'pro' }) |
track('signup', { plan: 'pro' }) |
data-simple-event="click_pricing" |
data-invisit-event="click_pricing" |
sa_metadata = { theme: 'dark' } |
Pass the property with each track() call |
| Identifiers not allowed in metadata | identify(user.id) |
If you used auto-events.js: invisit records outbound link clicks and file downloads on its own, as outbound_link and file_download events. Email and phone clicks need a track() call or a data-invisit-event attribute.