Google Consent Mode v2 and Tag Manager

How the plugin sends Google Consent Mode v2 signals, the difference between Basic and Advanced mode, and how Google Tag Manager, GA4 and Ads tags load.

The Integration tab with the Google Consent Mode v2 settings
The Integration tab with the Google Consent Mode v2 settings

Google Consent Mode tells Google’s tags what the visitor has allowed. The plugin sets the signals; you do not need a separate template in Google Tag Manager.

Turn it on

Consent Mode v2 is on by default on the Integration tab. If Google Site Kit is active, it is always on.

The signals

Before any other script, the plugin prints the default state in the page <head>:

Signal Before a choice Granted when the visitor allows
analytics_storage denied Analytics
ad_storage denied Marketing
ad_user_data denied Marketing
ad_personalization denied Marketing
functionality_storage denied Preferences
personalization_storage denied Preferences
security_storage granted Always

When the visitor chooses, the plugin sends a consent update. For a returning visitor, the stored choice is restored in the head before any Google tag runs.

Basic or Advanced mode

Basic (default) Advanced
Google tag and GTM before a choice Blocked Loaded, with consent denied
What Google receives before a choice Nothing Cookieless pings, used to model missing data
Other trackers Blocked until consent Blocked until consent

Basic mode is the stricter choice. Advanced mode gives Google Analytics and Google Ads modelled data for visitors who do not consent, and Google may show your consent signals as “not active” in Basic mode. Choose with your own privacy policy in mind.

Google Tag Manager

In Basic mode, Google Tag Manager loads when the visitor allows analytics or marketing (since version 1.8.10). Inside the container each tag waits for its own category:

Visitor allows GTM Meta Pixel, LinkedIn and other non-Google tags Google Ads Google Analytics
Nothing Waits Wait Waits Waits
Analytics Loads Wait Loads, ad storage denied Loads
Marketing Loads Load Loads Waits
Everything Loads Load Loads Loads

Non-Google tags in Custom HTML tags (Meta Pixel, LinkedIn Insight, TikTok, Hotjar and so on) are held by the plugin’s guard until their category is allowed, even if they fire on All Pages with no consent settings. You do not need to change your container.

Adding GTM’s own consent settings is still good practice: in a tag, open Advanced Settings → Consent Settings → Require additional consent for tag to fire and add, for example, ad_storage for a marketing tag.

The dataLayer event

When the visitor makes a choice, the plugin pushes this event:

{
  event: 'consent_update',
  consent_necessary: true,
  consent_analytics: true,
  consent_marketing: false,
  consent_preferences: false
}

The event is pushed on the page where the choice is made. On later pages the choice is already in Consent Mode before GTM starts, so triggers based on the All Pages trigger plus consent settings work on every page.

The GTM Container ID field

The field on the Integration tab is for your notes only. The plugin does not add GTM to your site: install it with Google Site Kit, GTM4WP or your theme.

Google Site Kit

The plugin detects Site Kit. Site Kit sets denied defaults for its own regions (currently the EEA, the UK and Switzerland); the plugin adds a denied default for every other visitor and sends the updates when visitors choose. The two never send conflicting signals.

If the WP Consent API plugin is active, the visitor’s choice is also shared with plugins that support it, through the wp_consent_functional, wp_consent_statistics, wp_consent_marketing and wp_consent_preferences cookies.

Check it in Tag Assistant

Open Google Tag Assistant (or GTM Preview) in a fresh browser session with no stored choice. You should see the consent default first, then a consent update when you click a button in the banner. If the update is missing, see Troubleshooting.

Updated 28 October 2026

Something wrong or missing? Tell me in the support forum. (opens in a new tab)