Skip to content
Start free trial
ProductPRODUCT

Measurement without a stored identifier.

How a pageview becomes a number in your dashboard, and exactly what is missing from that path.

One request, to your own endpoint

A script on your pages posts an event to the FunnelSights ingest endpoint — and to nothing else. The tracked page makes no third-party request, so there is no tag sharing your traffic onward. The script is about 8 KB gzipped, and you can proxy the endpoint through your own domain if you would rather it never leave your hostname.

How a visitor is recognised

A visitor is a hash, and only a hash:

visitor_id = blake2b(user_agent + ip + domain, key=daily_salt)

What that costs you

A rotating salt means visitor counts are per-day. Someone who switches network or browser counts twice, a multi-day total sums daily distinct counts rather than deduplicating across them, and there is no cross-day user journey. That is the trade-off the design buys its guarantee with, and no configuration removes it. Visits and pageviews are exact counts, not estimates.

From event to report

Raw events land on a spine that a job rolls up into daily aggregates every 15 minutes. Reports read the aggregates, never the raw spine. Bots are dropped at ingest against the uap-core crawler database, and referrer spam against the Matomo spam list, so neither reaches your numbers in the first place.

Why cookieless measurement