Your Traffic Data. Your Database. No Cookie Banner.

Every Aeion site ships with first-party analytics already running — page views, traffic sources, campaigns, funnels, goals and live visitors. No tag manager, no third-party script, no consent dialog, and no monthly bill that scales with your pageviews. The data lands in your own Postgres, next to the customers and orders it explains.

Everything You Actually Check on a Monday

The questions people open an analytics tool to answer — and the ones most tools make you upgrade for.

Traffic Sources That Add Up

Sessions are attributed to where the visit *started*, not to whichever page happened to carry the tag. A visitor who arrives from a Google ad and then browses four pages counts once, as one paid-search session — not as one ad click plus three phantom "direct" visits. It sounds obvious; it is the single most commonly wrong number in web analytics.

Funnels That Mix Pages and Actions

Define a funnel as the steps it really has — landed on pricing, *clicked* start-trial, reached welcome. Steps can be URLs or custom events in any combination, and a visitor only counts at a step if they completed every step before it. You get per-step conversion and exactly where people fall out.

Goals With a Value Attached

Mark a page or an event as a conversion, give it a value, and every completion is recorded against the session that produced it — so a conversion can be traced back to the campaign that earned it, not just counted.

Live Visitors, Actually Live

See who is on the site right now, which pages they are reading, and what they are clicking — a five-minute window backed by an in-memory presence layer rather than a five-minute-old report.

Audience Without Fingerprinting

New versus returning, country, device, browser and operating system. Geography is resolved on your own server from an offline database — no visitor IP is ever sent to a third party, and it is resolved from an anonymised address at that.

Ask It in Plain English

The whole surface is available to the built-in AI assistant. "How did traffic compare to last week?", "Which campaign converted best?", "Where are people dropping out of signup?" — answered from your live data, in the same conversation where you fix what it tells you.

Privacy That Is Structural, Not a Setting

Most "privacy-friendly" analytics are a normal tracker with the invasive parts switched off. This one has nowhere to send your visitors' data, because the collector, the queue, the database and the reports are all yours.

  • No cookies. Sessions are held in sessionStorage for the length of the
  • IP addresses are discarded, not stored. The final octet is zeroed the
  • Your own staff are excluded automatically. Logged-in admin traffic is
  • Nothing leaves your infrastructure. No shared pixel, no vendor sub-processor

Because It Lives Next to Everything Else

Standalone analytics products can tell you a page got a thousand views. They cannot tell you that eleven of those became customers, because the orders are in a different company's database.

Here they are in the same one. A conversion carries the session that produced it, and that session carries the campaign, the referrer and the device. So "which ad campaign produced the revenue" is one question, not an export, a spreadsheet and an afternoon.

The same data reaches the rest of the platform: content performance shows on the post you are editing, campaign results show in Marketing, and the AI assistant can read traffic and orders in a single answer.

What Gets Captured

Automatically, from a script under 2KB that is already on your pages.

Page Views

Including client-side navigation, so single-page apps and instant page transitions are counted correctly rather than reported as one long visit.

Scroll Depth

50%, 90% and 100% milestones per page — the difference between an article that was opened and one that was read.

Outbound Clicks

Which external links pull people off the page, and from where.

Engaged Time

A periodic heartbeat while the tab is actually in front of the visitor, so read time reflects attention rather than an abandoned tab.

Core Web Vitals

Real-user loading and layout-stability measurements from actual visits, not a synthetic lab score.

Anything You Choose

One line — `aeion.track('trial_started', { plan: 'pro' })` — records a custom event with whatever properties you attach, and it becomes available to funnels, goals and reports immediately.

javascript
// Custom events are one call. No SDK to install, no schema to register.aeion.track('trial_started', { plan: 'pro', seats: 12 });
// Which then becomes a funnel step, a goal, or a report dimension:// 1. Landed on /pricing (URL step)// 2. Fired trial_started (event step)// 3. Reached /welcome (URL step)//// → per-step conversion, drop-off, and the campaign each cohort came from.

Long Enough to Answer "Versus Last Year"

Raw events are kept for 30 days, which is what you need for session-level questions — bounce rate, time on page, the exact path someone took.

Every night those events are rolled up by day and by dimension, and the rollups are kept indefinitely. So "how did organic search do this quarter versus last" still answers years later, without storing every individual visit forever or paying to retain them. Reports say which of the two they came from, so you always know the resolution of the number you are reading.

Frequently Asked Questions

Not for the analytics. No cookies are set and no identifiers persist after the tab closes — the session id lives in `sessionStorage` for the duration of the visit. Visitor IPs are truncated on arrival and never stored. Consult your own counsel for your jurisdiction, but there is no persistent identifier here to disclose.

Yes. Add one script tag to any HTML page, Next.js app or SPA and point it at your Aeion instance. Sites rendered by Aeion get it automatically with no setup at all.

Three practical differences. Your data is in your database rather than a third party's, so it joins to orders, customers and tickets. There is no sampling, so the number is the number. And there is no consent dialog, which typically recovers the 20–40% of traffic that declines tracking elsewhere.

The script is under 2KB, loads after the page is interactive, and sends data with the browser's background beacon API — measurements are queued and delivered without holding anything up. It also measures its own effect: Core Web Vitals come from real visits, so you can see the impact rather than take our word for it.

Country level, and deliberately so. Because the address is anonymised before lookup, country resolves reliably while city frequently does not — and where it cannot be determined it is reported as unknown rather than guessed. If you need street-level precision, this is the wrong trade and we would rather say so.

Daily rollups by traffic source, campaign, referrer, page, device, browser, operating system and country are retained indefinitely. What you lose past 30 days is per-session detail — individual visitor paths, bounce rate and session duration — because those can only be computed from the individual events.

It is the same interface the dashboards use — traffic, audience, behaviour, funnels, goals and saved reports are all available to it. Ask for a traffic breakdown, a period comparison or a funnel analysis in conversation and it runs the query against your live data.

Stop paying per pageview for your own data.

It is already running on every Aeion site. Bring your own domain and see your real numbers.