Direct answer
A UK cookie banner has to satisfy two separate rulebooks at once. UK law, the Privacy and Electronic Communications Regulations read with UK GDPR, decides whether you may store a non-essential cookie: you need prior consent, a reject option as easy as accept, and a record of the choice. Google decides whether your advertising keeps working: Consent Mode v2 for advertisers, and a Google-certified CMP for serving ads to EEA and UK visitors. Build one setup that answers both. Load the CMP before any tag, default every storage type to denied, unblock tags only on consent, and pass Google the signals it expects.
Key takeaways
- A banner is required whenever you set a non-essential cookie. Analytics, ads and most embeds count.
- Reject all must be as easy as accept all, on the first layer. Accept and Customise alone is the illegal one.
- Since 5 February 2026 the maximum PECR fine matches UK GDPR: £17.5m or 4% of turnover.
- Consent Mode v2 is Google's rule, not the law. Skip it and remarketing, audiences and measurement degrade.
- The CMP must load before the tags, and tags stay blocked until consent. Most broken setups fail this line.
What UK law actually asks for
The rule is older than most of the tools that sell against it. Regulation 6 of PECR has required consent before storing or reading information on a user’s device since 2003, and UK GDPR sets the standard that consent must meet: a freely given, specific, informed and unambiguous opt-in. This is the compliance half of our UK engineering and compliance work, and it sits next to the same evidence discipline we describe for overseas teams handling UK personal data.
Prior opt-in for analytics, advertising pixels and most third-party embeds. The strictly necessary exception is narrow: it covers only what a service the user explicitly requested cannot run without.
A reject-all control on the first layer, equal in weight to accept. No pre-ticked boxes, no consent inferred from scrolling, and withdrawing consent must be as easy as giving it.
Store what was consented to, when, and which banner version served it. If a regulator or a customer asks, the answer is a record, not a screenshot of the current site.
These cookies are the usual strictly necessary set that does not need consent. Everything else does.
Two rulebooks, one banner
Most teams only ever think about one of these. In our own delivery records the word “PECR” barely appears; everything is framed as “the Consent Mode deadline” or “a Google consent-policy violation”. That is backwards. PECR is the law that now carries the £17.5m fine, up from a £500,000 cap. Google’s requirement is a commercial gate on your ad features. A banner tuned to keep Google happy can still break the law, and a banner that is legally clean can still switch your ads off if the Consent Mode signals never reach Google.
Google has two distinct requirements, often confused. Advertisers using Google Ads or GA4 must send Consent Mode v2 signals for EEA and UK users, in force since March 2024. Publishers serving ads through AdSense, Ad Manager or AdMob must additionally use a Google-certified CMP integrated with the IAB Transparency and Consent Framework, in force since 16 January 2024. Fail the first and measurement degrades. Fail the second and personalised ads stop serving.
Consent Mode v2 and what you actually lose
Consent Mode v2 is four signals. Two of them, ad_storage and analytics_storage, change how the tags behave on your page by controlling whether cookies are written. The two added in v2, ad_user_data and ad_personalization, are signals sent to Google that carry no on-page effect but decide whether Google may use the data for advertising and remarketing.
| Signal | Controls | Denied means |
|---|---|---|
| ad_storage | Advertising cookies and identifiers | No ad cookies stored or read on the page |
| analytics_storage | Analytics cookies | No analytics cookies; GA4 may model the gap |
| ad_user_data | Sending user data to Google for ads | Data is not sent for advertising purposes |
| ad_personalization | Remarketing and audiences | No remarketing lists or audience building |
You then choose how the tags load, and the choice is a real trade-off.
Google tags are blocked until the visitor interacts with the banner. Nothing is sent before that.
- Simplest and the strictest reading of PECR
- No data and no modelling before a choice
- Lower recovered conversions
Tags load with consent defaulted to denied and send cookieless pings, which lets Google model conversions.
- Recovers measurement from users who reject
- More to configure and to get wrong
- Needs the default-denied block in place first
For most UK sites that spend on Google or Meta, use advanced mode: the modelled conversions are worth the extra care, and the default-denied block is the same line PECR wants anyway. Wiring this into a WordPress theme and its tag manager is exactly the kind of work a CMP wired correctly into a WordPress build needs, rather than a plugin dropped in and left on defaults. The minimum, provider-agnostic pattern is a default-denied block before any tag, then an update on consent.
<!-- Load the consent platform before any Google or marketing tag. -->
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){ dataLayer.push(arguments); }
// Deny everything until the visitor chooses. This is the line most sites miss.
gtag('consent', 'default', {
ad_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
analytics_storage: 'denied',
functionality_storage: 'granted',
security_storage: 'granted',
wait_for_update: 500,
});
</script>
<!-- The consent platform calls this when the visitor accepts a category. -->
<script>
function onConsentChange(choice) {
gtag('consent', 'update', {
ad_storage: choice.marketing ? 'granted' : 'denied',
ad_user_data: choice.marketing ? 'granted' : 'denied',
ad_personalization: choice.marketing ? 'granted' : 'denied',
analytics_storage: choice.analytics ? 'granted' : 'denied',
});
}
</script>What breaks in production
For this guide we went back through our own UK delivery records. Client names are withheld. These are the failures that actually cost money, and the rule each one taught.
With Consent Mode v2 the CMP loads the tag manager. During a plugin cleanup the CMP was switched off, the container stopped injecting, and nothing errored. Analytics and ads data simply went quiet.
The CMP owns the tag loader. It is not a removable extra.A JavaScript error inside the consent banner stopped third-party scripts loading and left the buttons undismissable. Orders stopped for hours on a live store, with no deploy that day.
Consent sits on the critical path. It must fail open, not closed.On a fresh browser the banner sometimes did not render, and the consent cookie was written as accepted with no interaction.
Test in a cookieless session. A banner that auto-consents is evidence against you, not for you.The small plugin that signals consent state to analytics was deactivated in a cull of unused plugins. Consented UK tracking broke silently, and the client asked for it to stay on permanently.
The consent bridge is load-bearing, not clutter.A marketing-consent checkbox posted with the wrong field-key format was dropped without error, so leads arrived with no recorded consent behind them.
Confirm the consent value lands in the record, not just in the form.A Google Ads account was flagged for a consent-policy violation because several sites in a portfolio had no banner at all. The fix was a CMP rollout across four sites in days.
The ad account pays for missing consent long before a regulator does.- Load the CMP before any tag and default to denied. Blocking first is what the law wants and also the technical default that keeps Google’s signals honest. The same line solves both.
- Monitor for the absence of data. Broken consent rarely throws an error; it just goes quiet. Alert on a drop in events and conversions, not only on exceptions.
- One property is not one site. A WordPress plugin does not reach a separate booking portal or storefront on another stack. Each surface needs its own consent layer.
The Consent Debt Score
The Consent Debt Score is our triage model for an existing site. It does not decide whether you are lawful. It tells you how much revenue and regulatory exposure your current consent setup is carrying, and how urgently to act.
A brochure site with a working certified CMP and no advertising scores one or two. An ad-spending store firing Meta and Google pixels on page load, with an Accept-only banner and a second tag container the scan never sees, scores nine or more. Same banner on the surface, very different exposure underneath.
A real boundary: one CMP, two platforms
The hardest consent problem we hit is not the banner. It is coverage. Take a UK clinic whose website and store we build and run: the marketing site is WordPress, with a certified CMP that bundles Consent Mode v2, and the booking and commerce flow lives on a separate stack on its own subdomain. A WordPress consent plugin cannot reach that second surface. Any tracking on the portal is unconsented until it gets its own consent layer, either a second certified CMP or a hand-coded default-denied block like the one above. Getting identical, cross-domain consent on both surfaces, so a visitor’s choice on one is honoured on the other, is the real engineering work.
What our production record shows is worth stating plainly. On WordPress and Shopify we run Complianz, a Google-certified CMP that bundles Consent Mode v2, standardised across a partner agency’s UK portfolio under one agency licence; CookieYes is our default where a WordPress plugin is not the right fit; and a plugin-free CMP covers a separate portal that no plugin can reach. On a custom build we gate analytics behind a consent state in the application itself, send the four Consent Mode signals and add a withdraw link, which is the same consent behaviour a SaaS site’s measurement setup depends on. We have never shipped a bespoke consent platform where a certified one already exists, because Google’s ad rules require the certification, not our code.
Recommendations by business type
Meta and Google pixels are non-essential. Block them until consent, wire advanced Consent Mode v2, and keep the banner off the checkout critical path so a script error never stops orders.
Reject-all on the first layer, a marketing-consent checkbox that actually records, and analytics you can defend without relying on the 2026 exemption. On a UK web build, put consent in the acceptance criteria at the start of the project, not after launch.
Gate analytics behind a consent state, send the four signals and give users a withdraw path. The database console and a third-party snippet are not a consent record.
One Google-certified CMP across the portfolio, one licence, one scan cadence. A missing banner on a single site is an ad-policy violation for the whole account.
Frequently asked questions
- Do I need a cookie banner for a UK website in 2026?
- If you set any non-essential cookie, yes. Analytics, advertising pixels and most third-party embeds are non-essential and need prior consent under PECR. Strictly necessary cookies, such as login, basket and security tokens, are exempt. Since 5 February 2026 first-party analytics used solely to improve your own service can be exempt, but only if you give clear information and an easy way to object, and the exemption does not cover advertising.
- Is an Accept button without a Reject option allowed?
- No. The ICO says rejecting all non-essential cookies must be as easy as accepting them, with the reject control on the first layer of the banner. A banner offering only Accept and Customise is the pattern the ICO has publicly called non-compliant.
- What is Google Consent Mode v2 and does a UK site need it?
- Consent Mode v2 passes the visitor's consent state to Google through four signals, including ad_user_data and ad_personalization. Google has required it since March 2024 for EEA, UK and Swiss traffic. Without it, Google Ads and GA4 lose remarketing, audiences and full conversion measurement for those users.
- Do PECR and Google's rules ask for the same thing?
- No, and this is where teams go wrong. PECR and UK GDPR decide whether you may store the cookie at all, with fines now up to £17.5m or 4% of turnover. Google's rules decide whether your advertising keeps working: Consent Mode v2 for advertisers, and a Google-certified CMP for serving ads to EEA and UK visitors. A setup can satisfy one and fail the other.
- Does Appycodes build its own cookie banner?
- On WordPress and Shopify we configure an off-the-shelf, Google-certified CMP, because Google's ad rules require the certification, not our code. On a custom build we gate analytics behind a consent state in the application itself, send the four Consent Mode signals and add a withdraw path. We do not ship a bespoke consent platform where a certified one already exists.
Primary sources
- ICO guidance on cookies and similar technologies
- ICO: the Data (Use and Access) Act 2025
- Data (Use and Access) Act 2025, legislation.gov.uk
- Google: consent mode overview
- Google: about consent mode
- Google: certified CMP requirement for the EEA and UK
- Google: consent management requirements for serving ads
Technical and operational guidance, not legal advice.
UK topic cluster
Engineering & compliance
UK hosting, GDPR, accessibility, performance and delivery guidance.
Related guide
UK GDPR for overseas teams
The consent record, processor terms and least-privilege access behind UK personal data.
Case study
UK clinic website and store
The WordPress site and separate commerce surface behind this consent boundary.




Ritesh Agarwal







































