Skip to content

Privacy

Conveyor measures traffic without cookies and without storing personal data. This page explains what is collected and why most sites using Conveyor don’t need a consent banner. It is not legal advice; you remain responsible for your own privacy policy.

What the tracker does not do

  • It sets no cookies and writes nothing to localStorage, sessionStorage or IndexedDB. The only thing it reads from storage is an opt-out flag (conveyor.disabled) that the visitor sets themselves.
  • It does no fingerprinting: no canvas, WebGL, font or audio probing.
  • It loads no third-party code and makes one request per pageview or event, to your own Conveyor instance.

What the server stores per event

Stored Derived from Notes
Page hostname, path, title Page Query string can be stripped per website (excludeSearch). utm_* params are kept in separate columns.
Referrer domain and path document.referrer Internal navigation is dropped.
Browser, OS, device class User-Agent Family names only. The raw User-Agent is discarded.
Screen size, language Browser
Country, region, city Cloudflare edge geolocation Coordinates are rounded to 0.1° (about 11 km), which is only used for the live map.
Visitor id SHA-256(daily salt, website, IP, User-Agent) Truncated hash. The salt rotates every UTC day and old salts are deleted.
Visit id Random Groups events that are less than 30 minutes apart.

The server never stores IP addresses or full User-Agent strings. Once a day’s salt is deleted, that day’s visitor ids can’t be linked to a person, to other days, or back to an IP address.

Consequences

  • Visitors are unique per day. For a 7-day range, “visitors” is the sum of daily unique visitors. Plausible and Fathom count the same way.
  • Cross-day retention and cohort reports only work for visitors the site explicitly identifies with conveyor.identify(). If you use identify() with personal data, you are processing personal data and need a legal basis.

Respecting visitor choices

  • Add data-do-not-track="true" to the script tag to honour DNT and Sec-GPC (Global Privacy Control).
  • A visitor can opt out on a site by running localStorage.setItem('conveyor.disabled', '1').
  • Use data-domains so the script only reports from your production hosts.

Data retention

Raw events are deleted after RAW_RETENTION_DAYS (90 by default). Daily aggregates, which hold no visitor ids, are kept until the website is deleted or reset.