Where your users come from
Search, referrals, campaigns and social, including ChatGPT and Perplexity.
Cookieless analytics, session replay, Core Web Vitals, errors and uptime. One dashboard, one bill.
Loading the live dashboard
From their first visit to your next outage.
Search, referrals, campaigns and social, including ChatGPT and Perplexity.
Every page they open, with the country, city, device and browser behind each visit. Live and unsampled.
Custom events like signups and purchases, plus funnels that show where people drop off.
Session replay: every click and scroll, as they saw it.
Core Web Vitals (LCP, INP and CLS) measured in your visitors' real browsers.
JavaScript errors with the stack trace, the page, and a replay of the session that hit it.
Uptime monitors, incidents, SSL expiry and a public status page.
An MCP server is built in. Ask in plain language, get answers across all of it.
Your agent reads the schema and joins across traffic, funnels, errors and uptime.
Works withAnd any other client that speaks MCP over HTTP.
Here is exactly what it costs your site.
<!doctype html><html lang="en"> <head> <script async src="https://betterlytics.io/analytics.js" data-site-id="YOUR_SITE_ID"> </script> </head> <body> … </body></html>import Script from 'next/script' export default function RootLayout({ children }) { return ( <html lang="en"> <body> {children} <Script src="https://betterlytics.io/analytics.js" data-site-id="YOUR_SITE_ID" /> </body> </html> )}export default defineNuxtConfig({ app: { head: { script: [{ src: 'https://betterlytics.io/analytics.js', async: true, 'data-site-id': 'YOUR_SITE_ID', }], }, },})<head> %sveltekit.head% <script async src="https://betterlytics.io/analytics.js" data-site-id="YOUR_SITE_ID"> </script></head><head> <script is:inline async src="https://betterlytics.io/analytics.js" data-site-id="YOUR_SITE_ID"> </script></head>npm install @betterlytics/tracker# or: pnpm add · yarn add · bun add // src/analytics.tsimport betterlytics from '@betterlytics/tracker' betterlytics.init('YOUR_SITE_ID')
The tracker, gzipped. Loads async and never blocks a render.
On a typical site. Filtered out before they reach your charts or your bill.
Every line is on GitHub under AGPL-3.0. Self-host it for free, with no event limit.
No cookies, no persistent IDs, no consent banner. Built for GDPR, ePrivacy and PECR, with your data kept in the EU.
Your framework, unmodifiedOne script tag, or a package if you prefer. Nothing else changes.
Bots we catch don't count, and a traffic spike never costs extra.
For side projects and small sites.
For teams running several products.
For high traffic, with an SLA and dedicated support.
The free tier is the same script, dashboard and unsampled data as every paid plan. No credit card required.