← All FeaturesFeature

Privacy-First Analytics

Analytics shouldn't cost your users their privacy. BetterMeter gives you the insights you need without cookies, fingerprinting, or personal data. A single script tag gets you pageviews, referrers, and visitor trends, all while respecting every visitor who lands on your site. Install it and forget about consent banners.

How we protect privacy

Privacy isn't a feature we bolted on after the fact. Every layer of BetterMeter, from the browser tracker to the Node SDK to the database schema, was designed from day one to minimize data collection and eliminate personal identifiers.

01

Zero cookies

The tracker script sets no cookies, uses no localStorage, and performs no fingerprinting. It is completely stateless. Every pageview is an independent HTTP request. There is nothing to persist between sessions and nothing for browser privacy tools to block.

02

SHA-256 hashed identifiers

IP addresses are hashed using SHA-256 with the current date included in the hash input. The raw IP is never written to disk, never logged, and never stored in the database. Because the date is part of the hash, visitor identifiers rotate every 24 hours, making long-term tracking from the hash alone impossible.

03

No PII collection

The web tracker collects only the page URL, referrer URL, screen width, timezone, and user-agent string. The CLI/MCP/API SDK collects only command names, tool names, and endpoint paths, never arguments, file paths, request bodies, or user input. No names, no emails, no account IDs.

04

Lightweight script

The tracking script is a single IIFE under 1.5KB gzipped. It loads asynchronously with the defer attribute and never blocks page rendering. It adds zero perceptible latency to your site.

05

Fire-and-forget

Analytics calls use navigator.sendBeacon (or fetch with keepalive as a fallback). Failures are silently swallowed: no retries, no queuing, no error callbacks. Analytics should never break your site, slow down your CLI tool, or crash your MCP server.

06

Opt-out support

For the Node SDK, set disabled: true in the config object or set the BETTERMETER_DISABLED=1 environment variable. All tracking methods immediately become no-ops. For the web tracker, simply remove the script tag. No account changes or API calls needed.

What we collect vs. what we don't

Transparency matters. Here is the complete list of data points BetterMeter stores for every event, and the data we deliberately exclude.

Collected

  • Page URL
  • Referrer URL
  • Screen width
  • Timezone
  • User agent
  • Country (derived from IP, then IP discarded)

Never collected

  • Names or email addresses
  • IP addresses (hashed and discarded)
  • Cookies or localStorage
  • Device fingerprints
  • Form inputs or keystrokes
  • Browsing history or cross-site data

GDPR compliance

The General Data Protection Regulation requires consent before collecting personal data. Because BetterMeter collects no personal data as defined by the GDPR (no IP addresses stored, no cookies set, no cross-site tracking), it falls outside the scope of consent requirements for analytics. You do not need a cookie banner, a consent management platform, or a data processing agreement to use BetterMeter.

This follows the same legal interpretation used by privacy-first analytics tools like Plausible Analytics and Fathom, both of which operate without consent banners in the EU. European data protection authorities, including France's CNIL, have published guidance indicating that analytics tools limited to anonymous, aggregated data may be exempt from consent requirements under certain conditions.

For teams operating under ePrivacy, CCPA, PECR, or other regional privacy regulations, the same principle applies: no personal data means no additional compliance burden. Your legal team can review the data flow end to end. It is fully documented and auditable.

Open and auditable

Every event, whether it originates from a web pageview, a CLI command, an MCP tool call, or an API request, flows through the same processEvent() function. There is one code path, one set of rules, and one place to audit.

The web tracker source code is clean, well-commented TypeScript that you can read end to end. The served script is minified for performance, but the source is always available for inspection. The Node SDK source is equally readable. You can verify every data point and confirm that nothing beyond the documented fields ever leaves the client.

Who this is for

BetterMeter's privacy-first approach is built for teams that cannot, or choose not to, trade user trust for analytics data.

  • EU businesses that need GDPR compliance without the overhead of consent management platforms, cookie banners, and data processing agreements.
  • Healthcare and education organizations operating under strict data handling policies like HIPAA or FERPA, where collecting PII creates regulatory risk.
  • Privacy-conscious brands that market themselves on user trust and cannot afford the optics of invasive third-party trackers.
  • Anyone tired of cookie consent popups including developers, product teams, and site owners who want clean analytics without legal overhead or degraded user experience.

Frequently asked questions

Do I need a cookie banner with BetterMeter?

No. BetterMeter sets no cookies and collects no personal data, so it falls outside GDPR consent requirements for analytics.

Is BetterMeter GDPR compliant?

Yes. By design, BetterMeter collects no personal data as defined by GDPR. No IP addresses are stored, no cookies are set, and no cross-site tracking occurs.

What data is stored in your database?

Aggregated pageview records with: URL, referrer, screen width, timezone, user agent, country, and a SHA-256 visitor hash that rotates daily. No PII.

Can I audit what BetterMeter collects?

Yes. All events flow through a single processEvent() function. The web tracker source is clean TypeScript you can read end to end. The Node SDK source is equally inspectable.

How does visitor counting work without cookies?

BetterMeter creates a daily visitor hash using SHA-256 of the IP address plus the current date. This provides approximate unique visitor counts without persistent identifiers. The hash rotates every 24 hours.

¿Listo para ver el panorama completo?

Instale en 60 segundos. No se requiere tarjeta de crédito.

Ver precios