Turn on Google Consent Mode v2 defaults

This guide shows you how to enable Google Consent Mode v2 default settings in GTM Kit, why you might want to, and the legal context behind it.

What this does

Google Consent Mode v2 is the API Google’s tags (Analytics, Ads) use to know whether they have permission to set cookies, send personal data, or use behavioral signals. Tags must check Consent Mode before they fire; if no consent state has been declared, modern Google tags assume the worst-case state and disable measurement.

When the Default Consent State master toggle is on, GTM Kit emits a gtag('consent', 'default', {...}) block before the GTM container loads. This declares the initial denied/granted state for each consent category, so Google’s tags know what they are allowed to do from the very first page load.

When you need this

You need GTM Kit to emit consent defaults if all of the following are true:

  • You serve EU traffic (or anywhere with similar regulation: UK, Switzerland, Brazil, etc.).
  • You use Google Analytics 4, Google Ads, or another consent-aware Google tag.
  • Your CMP does not already emit Consent Mode v2 defaults itself.

You should leave this off if:

  • Your CMP already handles Consent Mode v2 (Cookiebot, Cookie Information, Complianz, OneTrust, Iubenda, Usercentrics in their default modes all do this). Two sources emitting consent defaults is a real bug; the second one’s defaults can override the first’s.
  • You only serve markets without consent regulation and you have no plans to expand into the EU.

If you are unsure, check the CMP’s settings panel for a “Google Consent Mode” or “Consent Mode v2” option. If it is on, leave GTM Kit’s master toggle off.

Steps

Go to GTM Kit, General, then scroll to the Google Consent Mode section.

2. Read the warning

If your CMP already handles Consent Mode (Cookiebot, Complianz, CookieYes, Cookie Information are listed by name in the warning), GTM Kit recommends leaving this setting off. Re-confirm before flipping the toggle.

The toggle name is Activate GCM settings.

The defaults that ship are:

  • All seven consent categories denied (ad_storage, ad_user_data, ad_personalization, analytics_storage, functionality_storage, security_storage, personalization_storage).
  • wait_for_update set to 500 ms (newer installs) or whatever you previously had.
  • url_passthrough and ads_data_redaction off.
  • region empty (applies globally).

This is a strict GDPR-baseline configuration. You probably want to leave the per-category defaults at denied. To adjust, see Set per-category consent defaults. To scope the defaults to specific countries, see Scope Consent Mode to specific countries or regions.

4. Save

GTM Kit re-renders the consent block on the next page load.

Verify it worked

View source on your public site. In the <head>, you should see a script block roughly like:

<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('consent', 'default', {
    'ad_storage': 'denied',
    'ad_user_data': 'denied',
    'ad_personalization': 'denied',
    'analytics_storage': 'denied',
    'functionality_storage': 'denied',
    'security_storage': 'denied',
    'personalization_storage': 'denied',
    'wait_for_update': 500
  });
</script>

This block must appear before the GTM container script. GTM Kit handles ordering automatically.

In DevTools, check the order in Sources, page, view-source. The consent block comes first; GTM next.

Common issues

Two consent default blocks appear. Your CMP is also emitting one. Disable GTM Kit’s master toggle. Two sources cause unpredictable resolution depending on script timing.

The block appears but tags still do not fire. That is the expected behavior when defaults are denied. Tags will fire once you (or your CMP) call gtag('consent', 'update', {...}) with granted for the relevant categories. See Push consent updates from custom code for how to do this.

You see deprecated category names. Consent Mode v1 used a different category vocabulary. GTM Kit ships v2 categories. If your GTM tags still reference v1 category names, update them in the GTM workspace.