Google Consent Mode v2 Setup and Validation

Set up Google Consent Mode v2 with a CMP, GTM, or gtag.js. Map all four signals, test every choice, and fix common implementation errors.

G
Goutham
5 min read

Google Consent Mode v2 does one specific job: it tells Google tags how to behave based on a user’s consent choice. It does not show a banner, collect consent, decide what is lawful, or make a website compliant by itself.

That distinction prevents the most common implementation mistake. A consent management platform (CMP) asks the user and records the choice. Consent Mode passes the resulting state to Google Ads and Google Analytics. The tags then change their storage and data-use behavior.

This guide gives a marketing operations team a complete implementation and validation checklist. It follows Google’s current Consent Mode overview, website setup guide, and Tag Assistant troubleshooting guide. Technical details were last checked on August 23, 2026.

The working system in one view

LayerWhat it must doOwner
Consent banner or CMPShow choices, collect the decision, and retain the evidence your policy requiresLegal, privacy, and web teams
Consent Mode v2Translate the choice into Google consent statesAnalytics or tag owner
Google tag or GTMChange tag behavior according to those statesAnalytics or tag owner
CRM and offline pipelinePreserve the relevant consent state when permitted data moves off the websiteMarketing operations
ValidationProve the default and update states work for every choice and regionAnalytics QA

If one layer is missing, the implementation is incomplete. A CMP installed without consent signals is not Consent Mode. A gtag('consent') command without a real choice source is not consent collection.

Consent Mode v2 added ad_user_data and ad_personalization to the existing storage controls.

Consent typeWhat granted permits for Google tagsWhat denied changes
ad_storageAdvertising-related storage, such as cookies or device identifiersAdvertising storage is not used
analytics_storageAnalytics-related storage, such as cookies used to measure visitsAnalytics storage is not used
ad_user_dataSending user data to Google for online advertisingUser data such as user_id and enhanced-conversion data is not sent for advertising
ad_personalizationPersonalized advertising use casesPersonalized advertising, including remarketing use, is disabled

These are separate decisions. Do not map one “Accept marketing” button to all four values unless that mapping matches your banner language and approved policy.

Basic mode versus advanced mode

Google documents two implementation patterns. The right choice depends on your policy and legal advice, not on a marketer’s desire for more modeled conversions.

CheckBasic consent modeAdvanced consent mode
When Google tags loadAfter the user grants consentOn page load with the configured default state
Before consentNo data is sent to GoogleWhen storage is denied, measurements without cookies and consent-state signals can be sent
If the user deniesGoogle tags remain blockedTags adjust their behavior and do not use denied storage
Modeling inputGeneral modelAdvertiser-specific signals can support more detailed modeling

Advanced mode does not mean normal user data is collected regardless of the choice. Google’s documentation says that when storage is denied, consent-aware tags do not store advertising or analytics cookies. They can send measurements without cookies. When ad_user_data or ad_personalization is denied, the corresponding advertising uses are disabled.

Do not start in GTM. First write a small mapping table with the CMP values your site actually emits.

Banner choicead_storageanalytics_storagead_user_dataad_personalization
Reject alldenieddenieddenieddenied
Analytics onlydeniedgranteddenieddenied
Measurement, no personalizationYour approved valueYour approved valueYour approved valuedenied
Accept allgrantedgrantedgrantedgranted

The middle row is intentionally not prescribed. Its correct values depend on what your notice says, what data your tags send, the region, and your organization’s policy. Get the map approved before it becomes code.

Also record:

  1. The regions where each default applies.
  2. The CMP event and field that represents each choice.
  3. Who owns the mapping when the banner changes.
  4. How revocation is handled after a user changes their preference.

Google recommends using a CMP template from the Tag Manager Community Template Gallery when your CMP provides one.

  1. Confirm that the CMP supports all four Google consent types.
  2. Add the CMP’s Tag Manager template.
  3. Use the Consent Initialization - All Pages trigger. It runs before normal Initialization triggers.
  4. Configure the approved default state and regional rules.
  5. Map the CMP’s Accept, Reject, and granular choices to consent updates.
  6. Review each Google and third-party tag’s built-in and additional consent checks.
  7. Publish only after the validation matrix below passes.

Do not use a normal page-view trigger to set defaults. If a Google tag runs first, the default arrives too late.

The default command must run before any Google config command. The following is a conservative example, not a legal recommendation:

<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('consent', 'default', {
ad_storage: 'denied',
analytics_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied'
});
</script>
<!-- Load the Google tag only after the default command is queued. -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script>
<script>
gtag('js', new Date());
gtag('config', 'TAG_ID');
</script>

When the user makes a choice, send an update from the CMP callback:

gtag('consent', 'update', {
ad_storage: 'granted',
analytics_storage: 'granted',
ad_user_data: 'granted',
ad_personalization: 'granted'
});

Do not hard-code every update as granted. Use the actual values from the approved consent map. Send the update on the page where the choice occurs. Google warns that updating immediately before a reload can cause the browser to cancel related requests.

If you apply different defaults by region, use Google’s documented ISO 3166-2 region setting. Test the general default and every more-specific regional override.

CustomerLabs can receive a consent update, keep it with the customer profile, and use it when configured destination workflows send data. This does not replace your CMP.

For the current product flow:

  1. In CustomerLabs, open Destinations → Google Adwords → Configuration Settings.
  2. Turn on Consent Mode Configuration.
  3. Set the approved default values for ad_storage, ad_user_data, and ad_personalization.
  4. Turn on Client Side Consent Initialization only when your CMP is not already responsible for initializing those flags.
  5. When the banner choice changes, send the same values to CustomerLabs:
_cl.trackConsent({
ad_storage: 'denied',
analytics_storage: 'granted',
ad_user_data: 'denied',
ad_personalization: 'denied'
});
  1. Save the destination configuration and run a test user through every banner choice.

Use the current CustomerLabs Google Ads destination guide for the product screens. If your team also sends CRM stages, store sales, or Customer Match audiences, follow the separate Consent Mode v2 for offline conversions guide. The website setup alone does not prove the offline payload carries the right state.

CustomerLabs’ privacy and consent operations page explains the commercial workflow for keeping consent state attached as data moves between systems.

The validation matrix: test behavior, not just installation

Open a fresh incognito session for each row. Clear site data between tests.

TestWhat to doPass condition
Default orderOpen Tag Assistant and load the page without touching the bannerThe earliest Consent event contains all four defaults before dependent tags fire
Accept allAccept every purposeThe latest Consent event updates all approved values to granted
Reject allReject every purposeThe latest Consent event keeps all four values denied
Granular choiceAllow analytics but reject advertisingOnly the values mapped to that choice change
RevocationAccept, reopen preferences, then rejectA new update reflects the revoked choice
NavigationMake a choice and visit another pageThe state remains consistent and does not reset unexpectedly
RegionSimulate each configured locationThe expected regional default wins
Form and CRMSubmit a test lead and move it to a test stageThe downstream workflow follows the approved consent rule

Google’s Tag Assistant validation instructions specifically recommend checking the earliest event for defaults and the most recent event for updates. That is stronger proof than looking only for gcs or gcd in a network request.

Common failures and the exact fix

The CMP may not have Consent Mode enabled, or its event is not mapped to Google’s API. Enable the CMP integration and confirm it runs on Consent Initialization.

Defaults appear after Google tags fire

The trigger or script order is wrong. Move the default command before Google tag configuration, or use GTM’s Consent Initialization trigger.

Accept updates, but Reject does not

The implementation is probably listening only to the accept callback. Map every user action, including granular choices and revocation.

Check whether the CMP cookie or preference store uses the correct domain, path, and expiry. Then confirm the saved choice is read before tags initialize on the next page.

Fix the documentation and the expectation. Advanced mode changes tag behavior under denied states; it does not override the user’s choice.

Marketing says the setup is “GDPR compliant”

Replace that claim with the precise statement: the setup communicates consent choices to Google tags. Legal compliance still depends on the notice, lawful basis, records, data processing, regional configuration, and actual behavior.

The handoff your team should keep

Do not close the task with a screenshot of a toggle. Save these five items:

  1. The approved banner-to-signal map.
  2. The GTM container version or code release.
  3. Tag Assistant evidence for Accept, Reject, granular choice, and revocation.
  4. The list of regions tested.
  5. The owner and date for the next quarterly validation.

If your team needs help connecting website consent, CRM consent, and Google destination rules into one tested flow, book a CustomerLabs demo. Bring your CMP name, GTM container owner, Google Ads conversion actions, and one sample CRM journey so the session can focus on the real setup.

Official sources

FAQ

Frequently Asked Questions

Does Google Consent Mode v2 collect consent?

No. Your consent banner or consent management platform collects the user's choice. Consent Mode sends that choice to Google tags so they can adjust their behavior.

Does Google Consent Mode v2 collect consent?

No. Your consent banner or consent management platform collects the user's choice. Consent Mode sends that choice to Google tags so they can adjust their behavior.