CCPA and Your Cookie Banner: Why the AI Tags Fire Before Anyone Clicks
The banner on most American websites was designed for a European law and installed to make a compliance checkbox go away. California asks for something different, asks for it in a different order, and — unlike a banner — can be tested from outside in about ten minutes. The gap between what the banner claims and what the network tab shows is where the exposure actually sits.
The Wrong Shape of Compliance
European consent law and California privacy law solve the same anxiety in opposite directions. The European model is prior consent: nothing non-essential loads until the visitor agrees. The California model is disclosure plus an exit: you may collect, but you must say what you are collecting before you do it, and you must give the visitor a real way to stop the sale or sharing of it afterwards.
Installing a European-shaped banner against a California-shaped obligation produces a specific and common failure: a site that interrupts every visitor with a consent dialog, satisfies none of the notice requirements, and still lets the tags fire before the dialog is answered. It has taken the cost of the stricter regime and the legal position of the looser one.
What California Actually Asks a Website To Do
- •Notice at collection, at or before the point of collection, naming categories and purposes
- •A clear opt-out of sale and share, reachable from every page
- •Global Privacy Control honored as a valid opt-out with no confirmation step
- •Symmetric choices — rejecting is as easy and as visible as accepting
- •Opt-outs that persist and propagate to the vendors already holding the data
- •A CMP toggle screen is not a notice at collection
- •An 'Accept' click is not a defense to a sale you never disclosed
- •Detecting GPC is not suppressing the tags that GPC is meant to stop
- •A cookie category list is not an automated-decision-making disclosure
- •Vendor terms are not fixed by anything that happens in the banner UI
Why the AI Tags Are the Hard Part
A CMP can block a script it knows about. The 2026 problem is that a growing share of the tracking surface is not a script anyone added deliberately. An AI personalization vendor ships a single snippet that then loads its own sub-resources. A support widget adds session capture when a feature flag flips. A tag manager container holds tags added by three departments and audited by none. The CMP inventory reflects the site as it was configured, and the browser reflects the site as it is.
The consequence is that "we categorised our cookies" is a statement about a spreadsheet. The only reliable evidence is a load trace of a real page in a real browser with no choice made, and then a second one with the opt-out asserted — which is a test almost nobody runs after the initial install, and which almost always finds at least one tag that ignores both.
The Consent Banner Is Also an Accessibility Surface
A banner is a modal that appears before the page is usable, so it inherits every obligation a modal has: focus must move into it and stay there, it must be dismissable from the keyboard, its controls must have real accessible names rather than icon-only buttons, and its text must meet contrast requirements against whatever it overlays. Injected third-party banners are among the most common keyboard traps we see, and the failure is unusually expensive because it sits in front of every page on the site rather than on one template. A rejection path that a keyboard user cannot reach is also, separately, a rejection path that does not work.
A Banner Audit You Can Actually Run
Ten-Minute Checks
- ☐Open the site in a clean profile, make no choice, and list every third-party request
- ☐Send a Global Privacy Control signal and diff the request list against the first run
- ☐Count the clicks to reject versus the clicks to accept
- ☐Follow the notice-at-collection link and check it names categories, purposes and retention
- ☐Tab through the banner with the mouse untouched and confirm you can reject and escape
Within the Quarter
- ☐Reconcile the CMP's tag inventory against an actual production load trace
- ☐Read every AI vendor's terms for training, benchmarking and product-improvement carve-outs
- ☐Wire the opt-out state into the tag manager, not just into the banner's own storage
- ☐Give automated decision-making its own disclosure instead of a cookie category
- ☐Re-run the trace after every marketing release — tags arrive without tickets
Frequently Asked Questions
Does the CCPA require a cookie banner at all?
No. California is opt-out, not opt-in. What it requires is a notice at collection before collection happens, a working opt-out of sale and share available from every page, and honoring of the Global Privacy Control signal. A banner is one way to surface some of that, and on its own it satisfies none of it.
Our CMP says it is CCPA-compliant. Is that enough?
A CMP is a control surface, not a compliance state. It can only govern tags it knows about, it depends on your configuration being accurate, and its GPC handling frequently sets an internal flag that never reaches the tag manager. Verify with a production load trace rather than with the vendor's compliance page.
What happens if tags fire before the visitor chooses?
Under California's opt-out model, pre-choice loading is not automatically unlawful the way it is in Europe. The problem is what it usually proves: that the notice at collection was not given before collection, and that the opt-out does not actually stop the flow. It is also the fact pattern plaintiffs build wiretapping-style claims around when the receiving vendor is a third party.
Is 'Accept All' with a 'Manage Preferences' link a dark pattern?
It depends on symmetry. If rejecting requires more clicks, smaller type, a second screen, or wording designed to discourage it, that is the shape regulators have described as impairing choice. The safe design is a reject control with the same prominence, in the same place, taking the same number of interactions as accept.
Do we need a separate disclosure for AI features?
Yes, if those features make or substantially inform decisions about people. Automated decision-making and profiling carry their own pre-use notice and opt-out mechanics that a cookie category toggle does not satisfy. Treat the banner as governing data flow and the AI disclosure as governing the decision.
Is the banner itself an accessibility risk?
Frequently. It is a modal that blocks the page before anything else, injected by a third party, and it is a common source of keyboard traps, unlabeled controls and low-contrast dismiss buttons. Because it renders on every page, one defect there outweighs almost anything on an individual template — and a reject button a keyboard user cannot reach is a broken opt-out as well as an accessibility failure.
Related Reading
Check the Banner From the Visitor's Side
The banner is the one element on your site that every visitor meets before anything else, and it is almost always third-party code nobody on your team has opened. Keyboard traps, unlabeled dismiss buttons and unreadable contrast in that layer affect every page at once.
A scan reads the page as it is actually served, banner included. Run a free scan of your site and see what the first screen hands a visitor.