Trackstars
August 20, 2026 Privacy & Compliance

Do Ad Blockers Send the GPC Signal?

Only about 3% of ad blockers send Global Privacy Control, a signal that is legally binding in 12 states and costs one line of code to send.

Jon Cairo Jon Cairo

Checking what your browser sent when you loaded this page

An ad blocker is built to stop tracking. There is a signal that stops tracking by law in twelve states. It costs one line of code to send, and almost no ad blocker sends it.

Ad blockers are not using the one signal the law enforces for do not track

Here is what the largest ad blockers in the Chrome Web Store look like today, and whether they send GPC.

ExtensionUsersSends GPC
AdBlock59MNo
Adblock Plus37MNo
uBlock Origin Lite17MNo
AdGuard16MNo
DuckDuckGo3MYes
Ghostery2MNo
Privacy Badger1MYes

Add that up and about 3% of these installs send the signal. The other 97% send nothing.

The exact numbers are not the point, and I cannot speak to their accuracy. They are rounded figures straight off the store listings. The ratio is the point, and 3% is pitiful. The tools that do send it are the small, privacy-specific ones, and the official list of GPC implementers reflects that: Brave, DuckDuckGo, Firefox, Privacy Badger, Disconnect, OptMeowt, Abine. Not one mainstream ad blocker is on it.

So the tools with the largest privacy-minded install base on the internet are not using the one privacy mechanism that carries actual legal weight.

Can a Chrome extension even send GPC?

If Chrome extensions cannot send the GPC signal, the conversation stops here. So can they send it?

The GPC signal is a header, and yes, they can send it. An extension on Manifest V2 can rewrite request headers through the webRequest API. An extension on Manifest V3 can do it through declarativeNetRequest, which is a more restricted API but explicitly supports adding headers to requests. This is not theoretical. uBlock Origin Lite already ships the ability to send Sec-GPC, and it is often described as roughly the only capability where Lite exceeds classic uBlock Origin.

For the JavaScript property, it is harder. Setting navigator.globalPrivacyControl means injecting a script into the page before anything else reads it. Mozilla decided to expose the property as read-only, which makes it awkward for extensions to set at all. Manifest V3’s Lite model does not inject page scripts. And as we covered in the last article, an injected value can land after your tags have already looked, which is its own mess.

The main signal is the header. The JavaScript variable is a record that it was sent. It exists so code running inside the page can see what the header already did on the way in, which is why the spec defines its value entirely in terms of whether a Sec-GPC header would be sent. We covered how that works in detail in the GPC explainer.

So a blocker that sends only the header has not shipped a partial feature. It has created a legally binding opt-out on every request that leaves the browser, and the receiving server sees it whether or not any script in the page ever does. The missing JavaScript value costs you visibility for tags running inside the page. It does not cost you the opt-out.

What one prominent ad blocker developer thought of the issue

uBlock Origin is an interesting case to look at, because its author explained his reasoning in public, and the reasoning is thoughtful.

In November 2021, asked whether uBO would send GPC by default, Raymond Hill gave two arguments. The first was about defaults:

in my opinion it’s no different than DNT header, which I never saw as a good approach, sites should assume no tracking/data mining is wanted by default, and a header should be sent to whoever wants to be tracked/data mined, i.e. this should be opt-in.

The second was about verification:

Just like DNT header, there is no way for users to find out whether a site respects GPC or not, so safest assumption is that it’s not respected, just like DNT was not.

Both of those are thoughtful positions. The first is a principled objection to the whole shape of opt-out privacy, and he is right that asking people to opt out of surveillance is a worse world than not being surveilled by default. That is the ideal case and it makes sense as one.

It is not the world we live in, though, and we have to deal with the world we live in. Every US state privacy law is built the other way around, with tracking legal until the person says stop. Declining to send an opt-out because the law should not have required one does not change the law. It just means the people running the blocker never say stop.

The second argument is the DNT lesson, learned the hard way by everyone who watched that standard get ignored for a decade.

In the same thread, a member of the uBO team pushed back on the claim that GPC was legally binding, and quoted the GPC FAQ to do it:

GPC on its own does not create any legally binding obligations.

They were correct. In November 2021, that sentence was accurate.

GPC has become legally binding

What made the arguments above correct previously is now changing.

The verification argument said there is no way to know whether a site respects GPC. There is now, and it comes with dollar figures attached. California’s first CCPA enforcement action, the $1.2M Sephora settlement, cited GPC signals that had no effect on the site. The California Privacy Protection Agency’s first settlement, $632,500 from Honda, ordered the company to honor GPC as part of the fix. California’s regulations now require businesses to visibly confirm that they processed the signal, which is a verification mechanism written directly into law.

The legally binding argument was true and is no longer. Twelve states now require businesses to honor GPC as an opt-out of sale: California, Colorado, Connecticut, Delaware, Maryland, Minnesota, Montana, Nebraska, New Hampshire, New Jersey, Oregon, and Texas. A site that receives the signal has to treat it the same as a click on its Do Not Sell or Share My Personal Information link.

And the “leave this to the browser” argument is about to be overtaken. California’s AB 566 requires every browser shipped to Californians to include an opt-out signal setting by January 1, 2027, and requires it to be easy for a reasonable person to find. The browsers are being compelled to do the thing extensions were told to leave to them.

The DNT comparison is the part that deserves the most revisiting, because the comparison is exactly backwards now. DNT failed for one reason: no law stood behind it, so ignoring it cost nothing. GPC is the same idea with the missing piece supplied. Treating them as equivalent made sense when both were unenforceable. It stops making sense once one of them carries fines.

We could not find any public reassessment of that position since 2021.

Here is the part which should interest anybody using or building an ad blocker.

There is no law that requires a site to respect your ad blocker. Blocking is a technical measure, and the response to a technical measure is a technical countermeasure. Sites reshuffle domains, move tracking server side, serve first party endpoints, and rotate paths. Filter lists chase them. It is a real arms race, blockers are good at it, and it is also a race you can lose quietly without your users ever knowing.

GPC changes what kind of fight it is. There are now state laws that require a site to respect the signal. Once it arrives, working around it is not clever engineering, and it is not something a SaaS company can build a product around. It is a legal violation. Sephora did not get fined for failing to block a signal. They got fined because the signal arrived and nothing happened.

I can tell you from working in this industry, on both the client side and the SaaS side, that it is rare for a signals engineer to try to break a law once that law is on the books. The vast majority of engineering teams follow the law to the best of their ability. Outsmarting an ad blocker is a game. Outsmarting the GPC signal is a legal violation you will eventually get sued for.

Put these two things together: the ad blocker stops what it can reach, and the GPC signal comes in over the top and takes out anything else. A tracker that evades your filter list still receives a header that makes using the data unlawful in twelve states.

Instead of trying to get around your ad blocker, the site has to stop tracking you. That is a much better outcome than winning the next round of the filter list war.

There is no downside to an ad blocker sending the GPC signal

The objection is that sites will ignore the Global Privacy Control signal and keep going. That treats this as a bet that can be lost. It cannot.

Sending the header costs nothing and removes nothing. The blocker keeps doing every single thing it already does. Filter lists still run, requests still get blocked, nothing is traded away. You are adding a line to requests the extension is already intercepting. There is no scenario where a user ends up worse off because their browser also mentioned that they do not consent to having their data sold.

The reasoning also assumes the outcome is binary, and blocking has never worked that way. No filter list catches everything. Trackers move, and some always get through, and nobody concludes from this that ad blockers are pointless. The standard applied to GPC should be the same standard applied to blocking: does it reduce the amount of tracking happening on this person’s machine? If it does, ship it.

It does. Plenty of sites honor the signal today, and the number keeps climbing, because the compliance tooling now does it automatically. A site running a properly configured consent platform reads GPC and applies the opt-out without anyone at that company thinking about it. It has become the default configuration rather than an advanced feature.

Then there is the part that should be most interesting to a blocker author. The trackers that beat your filter list are precisely the ones GPC still reaches. A tracker that moved server side, rotated its domain, or hid behind a first party endpoint has defeated the blocking, and it has not defeated the header, because the header went out with the request anyway and using that data is now unlawful in twelve states. The one category of tracking your product cannot stop is the category the signal covers.

So the question is not whether every site will honor it. The question is whether some will, at no cost, on top of everything the blocker already does. The answer is obviously yes.

The objections to ad blockers sending GPC

It is another fingerprinting bit. This came up in the original thread and it is the strongest technical objection. An extra bit does help someone fingerprint you, and it is fair to say so.

What matters is weighing the two sides at the scale they actually happen at. The signal reaches every site the person visits, and in twelve states every one of those sites is legally required to stop selling and sharing their data. Set against that, you have the rarer case of a site running fingerprinting, which picks up one more bit, and which is still legally required not to track that person anyway. A better fingerprint held by someone who is barred from acting on it does not weigh much against opting out everywhere at once.

Sites will ignore it. Some will, and it still costs nothing to send, as above. The ones that ignore it are also taking a real risk now. Sephora ignored it and paid $1.2M. Honda ignored it and paid $632,500. Ignoring it is a thing that shows up on a regulator’s desk, which is a different situation from DNT, where ignoring it showed up nowhere.

Regulators are not the only exposure either. California’s CIPA wiretap law carries a private right of action, and it has already produced thousands of lawsuits and demand letters over ordinary tracking technology. Having received a signal that explicitly said do not track me, and having tracked anyway, is not a fact you want to explain to that kind of plaintiff.

Sending it by default is not a real user choice. This is the serious legal question, and it has an answer. Colorado’s rules say a default baked into pre-installed software does not express intent, but deliberately installing a tool that is marketed as exercising your opt-out rights absolutely does. Nobody gets an ad blocker by accident. Installing one is exactly the affirmative choice the regulation describes.

It is not our job. It is exactly the job. An ad blocker exists to stop people being tracked on the internet. GPC does that, with the law behind it, and it does it in the places blocking cannot reach. Sending the signal is not a detour from the product, it is the product working through a second channel.

What an ad blocker sending GPC would actually unlock

Turning GPC on in a browser today is not something a normal person does. In Chrome it sits behind an experimental flag. In Firefox it exists but is tucked away where nobody finds it. The signal has been legally meaningful for years and its distribution has been terrible.

Ad blockers are the widest privacy distribution channel that exists. They are already installed. Their users have already made an explicit choice not to be tracked. Adding a header to requests those extensions are already intercepting is close to free.

Do that, and something like a hundred million people become legally opted out across twelve states, on every site they visit, without changing a single habit. No settings hunt, no per-site footer links, no cookie banner roulette.

There is no other lever in privacy right now with that ratio of effort to effect.

FAQ

Can a Chrome extension send the Sec-GPC header?

Yes. Manifest V2 extensions can rewrite request headers through the webRequest API, and Manifest V3 extensions can add headers through declarativeNetRequest. uBlock Origin Lite already has the capability.

Can an extension set navigator.globalPrivacyControl?

It is harder. It requires injecting a script into the page before anything reads the value, Firefox exposes the property as read-only, and Manifest V3’s Lite model does not inject page scripts. The header is the part that matters legally, and the header is the easy part.

Which ad blockers send GPC today?

Among the large ones, effectively none. Privacy Badger and DuckDuckGo send it, and both are privacy tools rather than conventional ad blockers. AdBlock, Adblock Plus, uBlock Origin, uBlock Origin Lite, AdGuard, and Ghostery do not.

Why did uBlock Origin decline to add it?

In 2021 its author argued GPC was no different from DNT, that opt-out is the wrong default, and that users had no way to verify whether sites respected it. At the time GPC carried no legal weight, so the comparison held. Twelve states, two enforcement actions, and a browser mandate later, the facts behind that reasoning have changed.

Doesn't sending GPC make me easier to fingerprint?

Slightly, yes, and adoption does not erase that, because whether you send it is itself a distinction. What you get in exchange is an opt-out that legally binds every site you visit in twelve states, while the rarer site that picks up the extra bit is still barred from tracking you anyway.

Is it legal for a tool to send GPC by default?

Colorado’s rules address this directly. A default in pre-installed software does not count as user intent, but choosing to install a tool marketed as exercising your opt-out rights does. Installing an ad blocker is a deliberate act.

What is the downside of an ad blocker sending GPC?

There isn’t one. The blocker keeps doing everything it already does, nothing is traded away, and no user ends up worse off because their browser also said they do not consent to a data sale. The only real cost is a line of code.

Does uBlock Origin send GPC?

No. Neither uBlock Origin classic nor uBlock Origin Lite sends the signal by default, though Lite has the technical ability to add the header. Its author explained his reasoning publicly in 2021, when GPC carried no legal weight. Twelve states, two enforcement actions, and a browser mandate later, that reasoning is worth revisiting.

Does Brave send GPC?

Yes, by default, and it is one of the browsers on the official implementer list. So does DuckDuckGo. Firefox has a setting, and Chrome is testing one behind a flag.

How do I check whether my browser is sending GPC?

The GPC project runs an official reference server that reports both halves of the signal for whatever browser you open it in: whether your request carried the Sec-GPC header, and whether the navigator.globalPrivacyControl property is set.

Which states require sites to honor GPC?

California, Colorado, Connecticut, Delaware, Maryland, Minnesota, Montana, Nebraska, New Hampshire, New Jersey, Oregon, and Texas. The list has grown nearly every year.

Does Manifest V3 stop extensions from sending GPC?

No. Manifest V3 removed blocking webRequest, but declarativeNetRequest can still add headers, which is how uBlock Origin Lite manages it. What Manifest V3 does restrict is injecting scripts into the page, which is the harder half of GPC and the less important one.

Would an ad blocker sending GPC replace blocking?

No, and it should not try to. The two cover different ground. Blocking stops requests the filter list can reach, and the signal makes the data unusable in twelve states for anything that gets through.

Would the header alone be enough?

Yes. The header is the signal, and a server receiving it has received the opt-out. The JavaScript property is only a record of what the header did, useful for tags running inside the page.