Cookieless web analytics
Know who is on your site. Track nobody.
One 1270-byte script. Realtime visitors, click heatmaps and masked session replay, with no cookies, no banner and no IP address stored anywhere.
- 0IPs stored
- 1270BScript size
- 30dTrial, cancel any time
The dashboard
Three numbers that actually matter
Not 147 reports you will never open. Who came, what they read, and whether they stayed — on one screen, in one second.
Unique visitors
48,912
- 210
- 244
- 231
- 288
- 302
- 279
- 341
- 366
- 352
- 408
- 441
- 470
Counted with a daily-rotating hash, never a cookie.
Pageviews
131,408
- 540
- 602
- 588
- 671
- 704
- 690
- 782
- 812
- 796
- 901
- 962
- 1,014
Bots and AI crawlers already removed, and never billed.
Time on page
2:41
- 178
- 172
- 181
- 169
- 174
- 166
- 171
- 163
- 168
- 159
- 162
- 161
Measured from real engagement events, not a session guess.
- Google organic 12,640 35.1%
- Hacker News referral 8,915 24.8%
- Direct / none 7,402 20.6%
- X social 3,118 8.7%
- GitHub referral 2,204 6.1%
- Reddit social 1,690 4.7%
- /pricing 18,402
- / 14,918
- /docs/install 9,734
- /session-replay 4,881
- /heatmaps 3,902
Setup
The whole install is one line of HTML
No npm package, no build step, no tag manager, no consent flow to wire up. Paste it in
your <head> and the first pageview lands before you switch tabs.
<script defer src="https://cdn.absolutelyanalytics.com/aa.js" data-domain="example.com"></script> - Served from 330+ edge locations 18ms p50
- First pageview received no cookie set
- Bot and AI-crawler filter armed 2,431 rules
- IP seen in memory, never written token rotates daily
1,284
Pageviews since you pasted it
How it works
We cannot identify your visitors, by construction
Most "privacy-friendly" analytics ask you to trust a policy. This is not a policy — it is what the code can and cannot do.
01 Seen in memory, for one request
- IP address
203.0.113.42local variable, one request - User agent
Mozilla/5.0 (Macintosh…never stored raw
02 One-way function
03 All we keep
9f3a71c4e0b58d2a6c81d4f7 An opaque token, scoped to one site for one day. Nothing links it to a person, to a device, to the same visitor tomorrow, or to the same person on another site running this product.
04 Discarded before the response
203.0.113.42never writtenMozilla/5.0 (Macintosh…parsed, then dropped
No IP address reaches a log, a database, an analytics pipeline or an object store. It exists as one local variable and goes out of scope with the request.
Every day, yesterday becomes unrecoverable
Tokens rotate daily, and the previous day's cannot be recomputed — not by us, not by anyone who obtained the database, not under a court order. So yesterday's visitors cannot be joined to today's. Cross-day tracking here is not switched off by policy; it is arithmetically impossible, which is the only kind of promise worth making.
Reports
Serious analysis, without a certification course
Geography, traffic quality, goals and segments are on every plan we sell. Funnels and the Stats API are on Business.
- 100.0%
- 52.9%
8,668 left here −47.1%
- 27.8%
4,616 left here −47.4%
- 18.5%
1,716 left here −33.5%
- 14.2%
791 left here −23.3%
| Step | Visitors | Share of entries | Drop-off from previous step |
|---|---|---|---|
| Landed on /pricing | 18,402 | 100.0% | 0.0% |
| Opened the install docs | 9,734 | 52.9% | 47.1% |
| Copied the script tag | 5,118 | 27.8% | 47.4% |
| First pageview received | 3,402 | 18.5% | 33.5% |
| Still sending on day 7 | 2,611 | 14.2% | 23.3% |
- Europe 24,880
- North America 19,420
- East & Southeast Asia 6,310
- South Asia 4,720
The meter
You are billed for people, not for crawlers
Roughly a third of what arrives at a typical site is automated — declared crawlers, headless browsers, scrapers from datacentre ranges, link previews nobody saw. Every one of those is filtered before it is counted, so it never reaches your dashboard and never reaches your bill. Tools that meter raw hits charge you for all of it.
| Rule | Rejected |
|---|---|
| Declared crawlers GPTBot · ClaudeBot · Googlebot · +2,180 UA signatures | 6,912 |
| Headless browsers Puppeteer, Playwright and CDP fingerprints | 2,431 |
| Datacentre origins Known cloud and scraping ASNs | 1,986 |
| Impossible clients 0×0 viewports, spoofed platforms, replayed requests | 743 |
| Prefetch and preview Link previews and speculative loads that no human saw | 376 |
| Total discarded | 12,448 |
Filtered requests never reach your plan's pageview count. You are not billed for a crawler that read your site on an AI company's behalf.
Included from Growth
See where people actually click
Click maps, scroll maps and attention maps for every page, from the same script you already pasted. Nothing extra to install.
- Find dead clicks — the headings and images people think are buttons.
- See how far down the page anyone ever gets, by device.
- Segment any map by source, country, device or campaign.
- Aggregated across visitors — no individual is ever singled out.
$14/mo included from Growth, nothing extra to buy
How heatmaps work| Element | Clicks | Share |
|---|---|---|
button.plan-cta[data-plan="growth"] | 4,128 | 31.4% |
button#billing-toggle | 2,610 | 19.9% |
a.plan-cta[data-plan="starter"] | 1,944 | 14.8% |
h2.pricing-headline Dead | 1,187 | 9.0% |
a.nav-cta | 903 | 6.9% |
Add-on Session replay
Watch the session. Never read the data.
Every input, textarea and contenteditable element is masked in the browser, before the recording is transmitted. Not redacted on our servers — never sent in the first place.
- Masked by default; you opt individual fields back in, not out.
- Keystrokes, clipboard contents and file pickers are never recorded.
- Jump straight to rage clicks, dead clicks and JavaScript errors.
- Delete any recording, or all of them, in one click.
+$19/mo on any plan, with an allowance that scales with your rung
How masking works- Masked by default. Every
input,textareaand[contenteditable]is redacted in the browser. Opt individual fields back in withdata-aa-unmask. - Never recorded: keystrokes, clipboard, file pickers, or anything inside an element you mark
data-aa-block.
Migrating
What you give up by leaving Google Analytics
Mostly: work. Here is the honest comparison, including the two places GA4 genuinely wins.
| Absolutely Analytics | Google Analytics 4 | |
|---|---|---|
| Cookie banner required | No | Yes |
| Script size (gzipped) | 1270 B | ~145 KB |
| Blocked by ad blockers | Rarely — first-party proxy included | Commonly, and silently |
| Data retention | 3 years Starter and Growth · 5 years Business | 14 months maximum |
| Time to a useful report | Zero — one screen, no setup | Explorations, custom dimensions, a course |
| Data freshness | Realtime, no processing lag | Up to 48 hours for standard reports |
| Owns your visitors' data | You do | An advertising company |
| Price at 1M pageviews and events | $69/mo | Free — you pay in data |
| Google Ads and Search Console integration | Not available | Native, and genuinely better |
| Cross-product identity across Google properties | Impossible by design | Yes, if that is what you want |
If you buy Google Ads and optimise on conversion imports, keep GA4 for that. Most sites do not, and are paying a consent-banner tax plus 96 KB of JavaScript for reports they never open.
Pricing
Pick your traffic, then pick your tier
Pageviews and custom events count towards one allowance. Sites and team members are 1 / 3 / 10 by tier. History is kept 3 years starter and growth · 5 years business. And whatever happens, we will never lock your dashboard.
Monthly pageviews and custom events
-
Starter
$9 $7.50 /mo
10k pageviews and custom events a month
$90 billed yearly · saves $18
$19 $15.83 /mo
100k pageviews and custom events a month
$190 billed yearly · saves $38
$29 $24.17 /mo
200k pageviews and custom events a month
$290 billed yearly · saves $58
$49 $40.83 /mo
500k pageviews and custom events a month
$490 billed yearly · saves $98
$69 $57.50 /mo
1M pageviews and custom events a month
$690 billed yearly · saves $138
$89 $74.17 /mo
2M pageviews and custom events a month
$890 billed yearly · saves $178
$129 $107.50 /mo
5M pageviews and custom events a month
$1,290 billed yearly · saves $258
$169 $140.83 /mo
10M pageviews and custom events a month
$1,690 billed yearly · saves $338
One site, one person, every core report.
- Sites 1 site
- Team 1 member
- Retention 3 years
- Adds
- Live dashboard with every core report
- Realtime visitor view
- Goals and conversions
- Saved segments
- Email and Slack reports
- Traffic spike alerts
- Annotations on the timeline
- Google Search Console integration
- Google Analytics importer
- CSV export
- Most chosen
Growth
$14 $11.67 /mo
10k pageviews and custom events a month
$140 billed yearly · saves $28
$29 $24.17 /mo
100k pageviews and custom events a month
$290 billed yearly · saves $58
$44 $36.67 /mo
200k pageviews and custom events a month
$440 billed yearly · saves $88
$74 $61.67 /mo
500k pageviews and custom events a month
$740 billed yearly · saves $148
$104 $86.67 /mo
1M pageviews and custom events a month
$1,040 billed yearly · saves $208
$134 $111.67 /mo
2M pageviews and custom events a month
$1,340 billed yearly · saves $268
$194 $161.67 /mo
5M pageviews and custom events a month
$1,940 billed yearly · saves $388
$254 $211.67 /mo
10M pageviews and custom events a month
$2,540 billed yearly · saves $508
A small team, a few sites, dashboards you can share, and heatmaps.
- Sites 3 sites
- Team 3 members
- Retention 3 years
- Adds
- Shared public dashboards
- Embeddable dashboard widgets
- Click, scroll and attention maps
- Rage-click detection
- Form field analytics
-
Business
$19 $15.83 /mo
10k pageviews and custom events a month
$190 billed yearly · saves $38
$39 $32.50 /mo
100k pageviews and custom events a month
$390 billed yearly · saves $78
$59 $49.17 /mo
200k pageviews and custom events a month
$590 billed yearly · saves $118
$99 $82.50 /mo
500k pageviews and custom events a month
$990 billed yearly · saves $198
$139 $115.83 /mo
1M pageviews and custom events a month
$1,390 billed yearly · saves $278
$179 $149.17 /mo
2M pageviews and custom events a month
$1,790 billed yearly · saves $358
$259 $215.83 /mo
5M pageviews and custom events a month
$2,590 billed yearly · saves $518
$339 $282.50 /mo
10M pageviews and custom events a month
$3,390 billed yearly · saves $678
Funnels, custom properties, revenue and the Stats API.
- Sites 10 sites
- Team 10 members
- Retention 5 years
- Adds
- Funnels
- User journeys
- Custom properties on events
- Ecommerce revenue attribution
- Stats API
Every plan starts with a 30-day trial of that exact tier — not a stripped-down one, and not a bigger one you then lose. A card is taken when you start it and charged when it ends, unless you cancel first. Cancel and your dashboard closes; collection carries on and your history is still there the day you come back.
Questions
The things people ask before switching
Do I need a cookie banner?
No. We set no cookies and write nothing to localStorage except your own opt-out flag. There is no personal data to consent to, so GDPR and the ePrivacy Directive do not require a banner for our script.
How do you count returning visitors without a cookie?
With a one-way token that is scoped to one site and one day. The IP address and raw user agent are seen only in memory during a single request and are discarded before the response is sent — neither is ever written anywhere. The token rotates daily and the previous day’s cannot be recomputed, so yesterday’s visitors cannot be joined to today’s, and the same person on another site running this product is not the same token. Cross-day and cross-site tracking are not switched off by policy here; they are arithmetically impossible.
We publish the guarantee and not the construction. What the guarantee rests on is checkable from your own browser: no cookie is set, nothing identifying is written to storage, and you can read the entire request in a network tab.
Do custom events count towards my plan?
Yes. Your allowance counts pageviews and custom events together, which is what the rest of the category does: Fathom bills custom events as pageviews, Plausible counts pageviews plus outbound clicks, downloads, form submits and 404s, Umami counts each stored event property as an event, and Matomo bills every hit. What we do not bill for is bot and AI-crawler traffic, which is filtered out before anything is counted.
What happens if I go over my plan?
Nothing breaks. We keep collecting and your dashboard keeps working. If you are over for three consecutive months we move you to the plan that fits, pro-rated, with 14 days’ notice and one click to decline. Traffic spikes, launches and AI crawlers are on us.
How big is the script?
1270 bytes gzipped, served from Cloudflare’s edge. Google’s gtag.js is roughly 145 KB — about 117 times larger.
Is my data stored in the EU?
Yes, if you want it to be. Every account picks a jurisdiction at signup and the event store is created inside it — the choice is free and cannot be changed afterwards, because a stored region that can move is not a region.
Can I import my Google Analytics history?
Yes. The importer pulls your GA4 property through the Data API and backfills sessions, pageviews, sources and countries so your charts do not start at zero. It is included on every plan.
Ready
Paste one line. Watch the first visitor arrive.
A 1270-byte script, no cookie banner, and a dashboard that fits on one screen. 30 days on the plan you pick, cancel any time.