Start free
new

DNT and GPC skip totals

When a request reaches the collector with Do Not Track or Global Privacy Control on, it is still not counted — and you can now see how many were skipped, as one aggregate number.

In every plan, including Free. Privacy and performance.

📘 Step-by-step guide, with screenshots and diagrams →

Start free, no cardOpen the demo

DNT and GPC skip totals: example screenshot with made-up demo dataDNT and GPC skip totals: example screenshot with made-up demo data
ExampleScreenshot with made-up demo data, not a real customer’s numbers.

What it is

DNT and GPC are still honoured: those requests return 202 and write no pageview, event or visitor hash. A single daily total per site is incremented instead. The dashboard shows the sum for the date range, with no path, IP or person attached. The default tag with data-dnt never sends a request, so those visitors are not in the number — we never saw them. script.js stays 845 B.

Why it matters

It is useful to know how often the collector is being asked not to count, without keeping anything about the people who asked.

How it works

  1. Keep data-dnt on your tag if you already have it. The script still sends nothing for DNT/GPC visitors.
  2. If a request does arrive with a DNT or GPC header (for example a tag without data-dnt, or the server-side events API), it is dropped and the daily total goes up by one.
  3. Open your dashboard: when the range includes any such requests, a short note shows the aggregate.

Privacy: what is and isn’t collected

Collected

  • A count of dropped requests, per site, per day

Never collected

  • A visitor hash, IP address or user agent for the skipped request
  • The page they were on
  • Anything that could identify a person
  • Cookies, localStorage or anything else stored on the visitor’s device
  • IP addresses or user agents (used in memory, then discarded)
  • Anything that links a visitor across days (the visitor ID resets daily)

How quietstats works, and the legal caveats →

Rows and limits

  • One row per site per day, a running total only
  • Bots are still dropped and are not added to this total
  • Core script.js is unchanged (845 B)
  • Migration 0053, additive

“Rows” are database rows written, which is what our hosting is billed on. Reads are not rows written. Methodology →

Questions

Does this record people who objected?

No. Only a number goes up. No hash, path, IP or user agent is stored for the skipped request.

Why is the number smaller than I expect?

The default tag never sends a request when DNT or GPC is on, so those visits never reach us and cannot be counted. The total is only for requests that arrived and were dropped at the server.

Does the core script change?

No. script.js stays 845 B.

Related features

All features → · Sitemap →

Set it up

Nothing to set up: it works with the standard one-line script.

HTML
<script data-host="https://quietstats.co.uk" data-dnt="true" src="https://quietstats.co.uk/js/script.js" id="YOUR_SITE_ID" async defer></script>

Try it on your own site

Free during launch: one site and 5,000 pageviews a month, no card needed. After launch, paid plans start at £5 a month.

Start freeSee pricing