Google Consent Mode v2 in WordPress: Complete Setup Guide
Since March 2024, Google has required Consent Mode v2 for all advertisers in the EU/EEA using Google Ads, Google Analytics, or other Google services. Without it, you lose remarketing data, conversion tracking, and audience segmentation.
Yet many WordPress sites haven't implemented it correctly — or at all.
This guide gives you a step-by-step setup. No fluffy theory, just what you need to do.
Why it's urgent
Without Consent Mode v2:
- Google Ads can't track conversions from EU users correctly
- You can't build remarketing audiences
- Your Smart Bidding strategy loses data and performs worse
- You risk violating GDPR/ePrivacy regulations
Google states that advertisers with correct Consent Mode recover up to 65% of lost conversion data via modeling.
What is Consent Mode v2?
Consent Mode is a Google technology that lets your Google tags (Analytics, Ads, Floodlight) adapt their behavior based on the user's cookie consent.
v1 vs. v2 — what's new?
| Feature | v1 | v2 |
|---|---|---|
analytics_storage | Yes | Yes |
ad_storage | Yes | Yes |
ad_user_data | No | Yes (new) |
ad_personalization | No | Yes (new) |
| Conversion modeling | Limited | Improved |
| EU requirement for Google Ads | No | Yes |
The two new parameters — ad_user_data and ad_personalization — are required to comply with the EU's Digital Markets Act (DMA).
How it works
Before consent (default):
gtag('consent', 'default', { 'analytics_storage': 'denied', 'ad_storage': 'denied', 'ad_user_data': 'denied', 'ad_personalization': 'denied', 'wait_for_update': 500});Google tags still load, but send no cookies — only anonymized, cookieless pings that Google uses for conversion modeling.
After consent (user accepts):
gtag('consent', 'update', { 'analytics_storage': 'granted', 'ad_storage': 'granted', 'ad_user_data': 'granted', 'ad_personalization': 'granted'});Now everything works normally with full cookies.
Setup step by step
Method 1: Google Tag Manager + CMP plugin (recommended)
Choose a CMP plugin (Consent Management Platform)
You need a cookie banner that supports Consent Mode v2 natively:
| Plugin | Price | Consent Mode v2 | GTM integration | My rating |
|---|---|---|---|---|
| CookieYes | Free (100 pages/mo) | Yes | Yes | Best free |
| Complianz | €49/year | Yes | Yes | Best paid |
| CookieBot | From €12/mo | Yes | Yes | Most known |
| Real Cookie Banner | €59/year | Yes | Yes | Best UX |
Configure CMP plugin with Consent Mode v2
Enable Consent Mode v2 and map cookie categories to Google parameters:
| Cookie category | Google parameter |
|---|---|
| Necessary | Always granted |
| Statistics/Analytics | analytics_storage |
| Marketing | ad_storage, ad_user_data, ad_personalization |
| Functional | (no Google mapping) |
Install Google Tag Manager
Add the GTM container to your WordPress theme. The GTM script must load after consent default is set but before other scripts. Most CMP plugins handle this automatically.
Configure tags in GTM
In Google Tag Manager, set up your GA4 and Google Ads tags as normal. Consent Mode handles the rest. Under Advanced Settings → Consent Settings, require the appropriate consent types.
Test the implementation
In Google Tag Assistant:
- Go to
tagassistant.google.com - Connect to your site
- Verify consent state displays correctly
- Accept cookies → verify consent updates
Expected behavior:
| Scenario | analytics_storage | ad_storage | ad_user_data | ad_personalization |
|---|---|---|---|---|
| Before consent | denied | denied | denied | denied |
| Only statistics accepted | granted | denied | denied | denied |
| All accepted | granted | granted | granted | granted |
| Only necessary | denied | denied | denied | denied |
Method 2: Plugin-only (simple)
If you don't use GTM, install Complianz or CookieYes, enable Consent Mode v2, and add your GA4 Measurement ID directly in the plugin. It handles everything.
Server-side tagging (advanced)
For maximum data quality and GDPR compliance, combine Consent Mode with server-side tagging:
| Factor | Client-side | Server-side |
|---|---|---|
| Adblock immunity | No | Yes (first-party) |
| Data quality | 60-80% | 90-95% |
| GDPR control | Limited | Full |
| Speed | Many scripts | One script |
Options: Stape.io (managed, from €10/mo), Google Cloud Run (self-hosted), or Cloudflare Workers.
Server-side ≠ consent-free
Server-side tagging does NOT exempt you from obtaining consent. You still need a cookie banner and must respect the user's choice. Server-side just provides better data quality for users who do consent.
Common mistakes to avoid
- Missing consent default — If you don't set
consent('default', ...)before GTM loads, all tags fire without consent. GDPR violation. - Wrong category mapping — Many CMP plugins don't map
ad_user_dataandad_personalizationcorrectly. Verify both are mapped to your "Marketing" category. - Cookies set before consent — Audit with Chrome DevTools → Application → Cookies.
- Not testing "reject all" — Always test what happens when the user clicks "Reject all". No Google cookies should be set.
- Missing GEO-targeting — For users outside the EU, you can set default to
granted. Most CMP plugins offer this option.
Verification in Google Ads and GA4
Google Ads
- Go to Tools → Diagnostics → Consent Mode
- Check that status is "Active"
Google Analytics 4
- Go to Admin → Data collection
- Under Admin → Data settings → Consent Mode: Verify consent signals are received
Conclusion
Consent Mode v2 is not optional for WordPress sites using Google services in the EU. Without it, you lose conversion data, remarketing audiences, and Smart Bidding performance.
The good news: With a good CMP plugin and 30-60 minutes of setup, you're done. Start with CookieYes (free) or Complianz (€49/year) and follow the steps above.
Need help with setup?
Consent Mode setup is one of those tasks that often goes wrong. I help with correct implementation, testing, and verification. Book a free consultation and let's secure your tracking.




