Cookieless · No IP stored · No banner
Privacy-first web site analytics tool
A fast-loading embedded web analytics tool to help you track realtime visitors, view click heatmaps and watch visitor session replays, with no pop-up cookie warning banner — helping you retain visitors and analyse your web traffic.
Free for 30 days. Card up front, charged on day 31 unless you cancel — one click, any time. See the whole price ladder.
- 0IPs stored
- 1270BScript size
- 30dTrial, cancel any time
| 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% |
- Masked by default. Every form field on the page is redacted in the browser, before anything is sent. You turn individual fields back on one at a time, deliberately.
- Never recorded: keystrokes, clipboard contents, file pickers, or anything inside an area you have marked private.
Visitors
48,912
- 210
- 244
- 231
- 288
- 302
- 279
- 341
- 366
- 352
- 408
- 441
- 470
Pageviews
131,408
- 540
- 602
- 588
- 671
- 704
- 690
- 782
- 812
- 796
- 901
- 962
- 1,014
Brazil 1,403
São Paulo 407
Geography
Down to the city they arrived from
Every visit carries a country and a city — with no IP address stored to work it out.
Brazil 1,403
São Paulo 407
Included from Growth
See where people actually click
Click, scroll and attention maps for every page, from the script you already pasted.
What the maps show you
- Dead clicks — the headings and images people think are buttons.
- How far down the page anyone ever gets, by device.
- Any map segmented by source, country, device or campaign.
- Aggregated across visitors. No individual is ever singled out.
$14 a month, included from Growth with nothing extra to buy.
| 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 form field is masked in the browser — not redacted on our servers, never sent.
What is and is not recorded
- 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.
From $19 a month, priced by your rung, with an allowance that scales with it.
- Masked by default. Every form field on the page is redacted in the browser, before anything is sent. You turn individual fields back on one at a time, deliberately.
- Never recorded: keystrokes, clipboard contents, file pickers, or anything inside an area you have marked private.
The dashboard
Three numbers that actually matter
Who came, what they read, and whether they stayed. One screen.
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.
Visit duration
2:41
- 178
- 172
- 181
- 169
- 174
- 166
- 171
- 163
- 168
- 159
- 162
- 161
Averaged across visits, from first event to last.
- 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
Reports
See exactly which step loses the sale
Build a funnel from your own goals and watch the conversion rate, step by step.
Which plans have this
Goals and saved segments come with every plan. Funnels, user journeys and the Stats API are on Business.
- 100.0%
- 22.4%
14,284 left here −77.6%
- 6.6%
2,904 left here −70.5%
| Step | Visitors | Share of entries | Drop-off from previous step |
|---|---|---|---|
| Landing page | 18,402 | 100.0% | 0.0% |
| Add to cart | 4,118 | 22.4% | 77.6% |
| Successful checkout | 1,214 | 6.6% | 70.5% |
The meter
You are billed for people, not for crawlers
A large share of what arrives at a site is automated. None of it reaches your bill.
What counts as automated
Declared crawlers, headless browsers, scrapers from datacentre ranges, and link previews nobody saw. Every one is filtered before it is counted, so it never reaches your dashboard either. Tools that meter raw hits charge you for all of it.
| Checked |
|---|
| Declared crawlers and AI agents GPTBot, ClaudeBot, Googlebot, Bytespider and 63 more user-agent signatures |
| Self-identifying automation Headless Chrome, Puppeteer, Playwright, Selenium, curl, wget and the HTTP clients |
| Cloudflare's verified-bot list Taken as authoritative when the edge has already classified the request |
| A decisive Cloudflare bot score Only 1–5 out of 99. The middle of that range is too noisy to delete a visitor on |
| No user agent, or one too short to be a browser Under eight characters is not a browser, whatever else it might be |
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. The filter errs the other way on purpose: 10 browser strings are protected from it by name, because a false positive deletes a real visitor from your numbers and you would never see it happen.
Setup
The whole install is one line of HTML
Paste it in your <head>. The first pageview lands before you switch
tabs.
What you do not have to do
No npm package, no build step, no tag manager, and no consent flow to wire up.
<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 67 signatures
- IP seen in memory, never written token rotates daily
1,284
Pageviews since you pasted it
Pricing
Pick your traffic, then pick your tier
The cell where the two meet is your price.
How the allowance works
Pageviews and custom events share one allowance, and a month you go over never closes 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 15 months
- Adds
- Live dashboard with every core report
- Realtime visitor view
- Goals and conversions
- Email and Slack reports
- Traffic spike alerts
- Annotations on the timeline
- Google Search Console integration
- Google Analytics importer
- CSV export
- Recommended
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 15 months
- 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 15 months
- Adds
- Funnels
- User journeys
- Custom properties on events
- Ecommerce revenue attribution
- Stats API
Free for 30 days. Card up front, charged on day 31 unless you cancel — one click, any time. The trial is of the exact cell you chose: the same reports, the same allowance, the same price waiting at the end of it. Cancel and your dashboard closes; collection carries on and your history is still there the day you come back.
How it works
We could not identify your visitors if we wanted to
The IP address is read once, in memory, and is gone before the reply is sent.
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.
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.
You can check the whole of that from your own browser: no cookie is set, nothing identifying is written to storage, and the entire request is readable in a network tab.
Do custom events count towards my plan?
Yes. Pageviews and custom events draw on the same allowance: a page load counts, and so does every event you send — outbound clicks, downloads, form submissions and 404s included. If you instrument heavily, work out your event volume before you pick a rung. What never counts is bot and AI-crawler traffic, which is filtered out before anything is metered.
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 the edge nearest your visitor. Google’s gtag.js is roughly 145 KB — about 117 times larger, on every page load.
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. A card is taken up front and charged when the trial ends, unless you cancel first.