Skip to content

Google Consent Mode v2

The CMP drives Consent Mode automatically (googleConsentMode: true by default). You provide the default (denied) in the head snippet; the CMP issues the update when the visitor decides.

CMP category Google Consent Mode signal(s)
necessary security_storage (always granted)
preferences functionality_storage, personalization_storage
statistics analytics_storage
marketing ad_storage, ad_user_data, ad_personalization

In the denied state a Google tag still sends cookieless pings, and Google’s conversion/behavioural modelling recovers a large share of conversions you’d otherwise lose. Hard-blocking throws that away. Prefer the Google bridge; LightningCMP.debug() warns when a Google tag is hard-blocked.

wait_for_update: 500 gives the CMP a 500 ms window to read the stored decision before Google tags act on the default — keep it. If a site-hosted gtm.js/gtag.js loads before the CMP’s default, debug() surfaces a consentmode-order hint: add the inline gtag('consent','default',{…denied…}) block in <head> before your tag, or let the CMP load the tag for you via bridges.google.tagId.

To turn the integration off entirely (rare — only if another system owns Consent Mode): googleConsentMode: false.