Consent Mode v2 check
The Consent Mode v2 check confirms that Google Consent Mode v2 is wired up correctly on your site. It uses the same crawler as the scanner, OptSensBot, and runs in three places:
- on the Integration page, as part of the implementation check,
- with every cookie scan, for each scanned page, when Consent Mode is on,
- in the free public check, which works for any site and any consent tool.
For what OptSens sets and why it matters for Google Ads and Analytics, see Google Consent Mode v2.
What it checks
The check loads a page and watches the order in which consent signals and Google tags fire, before any visitor makes a choice. It looks for:
- A consent default: a
consentdefaultcall that sets the initial state before tags run - All four v2 signals in that default:
ad_storage,analytics_storage,ad_user_dataandad_personalization - Correct ordering: the consent default fires before the first Google tag, and no tag runs without a consent state
- The IAB TCF API in time: when the site uses IAB TCF, the
__tcfapifunction exists before the first Google tag runs - wait_for_update: a timeout that gives a banner loaded through a tag manager time to update consent before tags act on it
It also reads region overrides, the url_passthrough and
ads_data_redaction flags, detects the GTM containers and GA4 measurement IDs
present on the page, and recognises a Google tag served through your own domain
with Google tag gateway.
What it does not do
The check observes the consent setup. It does not send hits to your analytics. It blocks Google's measurement requests during the check, including the ones a Google tag gateway sends through your own domain, so Google tags can load without registering page views in your reports.
The result
The check returns one of these results:
| Result | Meaning |
|---|---|
| Fully configured | A consent default with all four v2 signals fired in the right order |
| Partially configured | Some consent code is present, but the setup is incomplete |
| Not configured | Google tags run, but no consent code was found |
| Not applicable | The page has no Google tags, so Consent Mode does not apply |
Common findings
- No consent default: tags can fire without a consent state. Make sure the OptSens script loads before your Google tags.
- Missing signals: the default is present but does not set all four v2 signals.
- Default after first tag: the consent default fires too late, after a tag has already run. Loading order is the usual cause.
- IAB TCF API after first tag: a Google tag ran before the
__tcfapifunction existed, so Google went on without the visitor's TCF consent. - Google tag gateway runs before the consent default: a Google tag served through your own domain ran first. See Google tag gateway for the fixes.
- No wait_for_update: a tag-manager-delivered banner has no window to update consent before tags act.
To fix ordering problems, load the OptSens script at the top of <head>, above
your Google tags. In Google Tag Manager, use the OptSens template with the
Consent Initialization - All Pages trigger. See
install with Google Tag Manager and
verify installation.
If the check comes back empty
If the check cannot read your page, it is usually blocked by a bot challenge or firewall before it loads. Allow OptSensBot and run it again. See OptSensBot for the allow options, and troubleshooting for more help.