Privacy
Lynq measures a website without following the people who use it. This page lists exactly what a visit leaves behind, and it is the same list as the privacy page on the product site.
A visit, as stored
Every pageview becomes one row: the page and its allow-listed query parameters, where the visitor came from, the country, region and city from the request, the device, browser and operating system, the screen and viewport size, the language, how long the page was engaged with, and how far it was scrolled. Page titles are off unless the site turns them on. Custom events add their name and the properties the site chose to send. Web Vitals add timings. That is the whole row.
Who a visitor is
A visitor number is computed when the request arrives, from the IP address, the browser’s user agent, the site, and a random salt that changes every day. The IP address is used for that computation and for the country lookup, then dropped; it is never written anywhere. Because the salt changes daily, the same person produces a different number tomorrow. Lynq can count a returning visitor within a day and cannot recognise them across days.
Nothing in the browser
Lynq sets no cookies. The script keeps one record in the tab’s session storage so a visit can be counted as one session; it is gone when the tab closes. The only thing that persists is an opt-out flag, and only if the visitor sets it. No canvas, font or audio fingerprinting. Nothing is read from the browser beyond the screen size, the viewport and the language.
If a site reports errors
With data-errors on the tag, an uncaught JavaScript error becomes one row: its message, the script and line it came from, and up to 4 KB of the stack, attached to the same pageview and session as everything else. Query strings are removed from every URL in it before storage. Nothing from the page’s content, forms or variables is read. It is off unless the site turns it on.
If a site runs experiments
A session put in an experiment gets one row with the experiment’s name and the variant. That is the whole row; which variant a person saw is not tied to anything that survives the day.
If a site has uptime checks
With the switch on, Lynq fetches the site’s own URL and stores, per check, the time, the status, how long the answer took and a short reason when it failed. That is a fact about the site, not about anyone; no visitor is involved, and a check never appears in the reports as a visit.
If a site identifies its users
A site can call lynq.identify(id) for its own logged-in users. The id is hashed with a per-site secret before it is stored; the hash is what the reports use. The raw id is kept for 90 days only if the site turns that on, and is off by default.
Global Privacy Control and Do Not Track
A browser that sends Global Privacy Control is always treated as anonymous: pageviews are counted and identify calls are ignored. There is no switch to turn this off. Do Not Track is honoured when the site asks for it with data-respect-dnt on the script tag, in which case the script sends nothing at all.
What a site owner controls
Retention: events are kept for 24 months by default and removed after that; the owner can shorten it. Exclusions: the owner can exclude their own IP addresses and any paths, and those visits are never recorded. Export: any table exports as CSV. Deletion: deleting a site removes every one of its events.
Crawlers
A site can have its server report crawler requests. Only requests that look like a bot are sent, and Lynq keeps, per site, day, crawler and page, a count and the last status seen. No IP address and nothing that describes a person. These rows live in their own table, never touch the visitor numbers, and a visitor who opted out is never among them, because a browser’s request is never sent.
Where it lives
Events are stored for the site’s reports and for nothing else. Aggregates are the only thing the reports read; nothing is sold, shared, or used for anything but the site’s own reports.