Launch Offer2 free audits with all 229 checks. No credit card required.Start free audit

How to Test Consent Mode V2 in 5 Minutes: A DevTools Walkthrough (2026)

Intermediate

How do I test Consent Mode V2?

Open Chrome DevTools → Network tab → filter for collect → reject all on the cookie banner → confirm GA4 hits still fire with gcs=G100 (denied) and ad_user_data=denied. Then accept all → confirm gcs=G111 (granted). If hits don't fire at all in either state, Consent Mode is misconfigured. If gcs is missing entirely, Consent Mode isn't installed.

If gcd is missing, you're on Consent Mode V1 — the V2 signals (ad_user_data, ad_personalization) aren't being communicated, and your EU/UK Google Ads measurement is broken.

The full test takes 5 minutes per page and is the single highest-ROI consent diagnostic you can run.

Before you start: what should already be in place

The test assumes you've implemented Consent Mode V2 in some form — gtag.js with default + update commands, GTM with a Consent Initialization tag, or a CMP that handles it for you (Cookiebot, OneTrust, Iubenda, Usercentrics, Termly). If none of that is set up, the test will fail in predictable ways — see the diagnostic table at the end.

You'll also need:

  • Chrome (or any Chromium browser — Edge, Brave, Arc all work)
  • An incognito window (clean cookie state)
  • The page you're testing — ideally a high-traffic landing page, not the homepage

The 5-minute test

Step 1 — Open DevTools and isolate Google traffic (1 minute)

  1. Open the page in a fresh incognito window
  2. Open DevTools (F12 or Cmd+Option+I on Mac)
  3. Go to the Network tab
  4. Type collect in the filter box
  5. Don't interact with the cookie banner yet — leave it in its default state
  6. Refresh the page (Cmd+R / Ctrl+R)

You should see network requests to region1.google-analytics.com/g/collect (GA4) and possibly googleads.g.doubleclick.net or similar (Google Ads). These are the hits Consent Mode is governing.

Step 2 — Inspect the denied-state request (1 minute)

Click the first collect request that appears. Scroll down to the request payload (URL parameters). You're looking for two things:

The `gcs` parameter. Should equal G100 if Consent Mode V2 in Advanced mode is working with consent denied. The encoding:

`gcs` valueMeaning
G100Consent set, both ad_storage and analytics_storage denied (Advanced mode only)
G110ad_storage granted, analytics_storage denied
G101ad_storage denied, analytics_storage granted
G111Both granted
(missing)Consent Mode is not installed at all

The format is G1xy where x = ad_storage (1=granted, 0=denied), y = analytics_storage (1=granted, 0=denied). The G1 prefix is constant.

The `gcd` parameter. This is the V2-specific signal that covers all four consent types. It's present in every hit even when Consent Mode isn't fully active. Format:

The string starts with 11, separates each signal with a digit, and ends with 5. If gcd is missing entirely, your implementation is V1-only — the new V2 parameters aren't being communicated, and Google Ads measurement in the EU/UK is broken since March 2024.

Step 3 — Accept consent and re-test (1 minute)

  1. Click Accept All on your cookie banner
  2. Watch the Network tab for new collect requests
  3. Click into the new request

Now gcs should be G111 (or G110 if you only accept ad cookies, G101 if only analytics). The gcd parameter should encode granted for whichever signals were accepted.

If gcs doesn't change after consent — Consent Mode is installed but the consent_update command isn't firing. Check your CMP's update wiring.

If hits stop firing entirely after consent — extremely rare, usually a tag-trigger conflict where consent is gating the tag itself instead of just the cookie behaviour.

Step 4 — Reject consent and re-test (1 minute)

Need to validate whether consent timing is distorting your GA4 data?

  1. Open a fresh incognito window with the same URL
  2. Click Reject All on the cookie banner
  3. Inspect the next collect request

In Advanced Consent Mode: hits should still fire with gcs=G100 and gcd showing all denied. The hits are cookieless pings — they contain the event name, page URL, referrer, timestamp, but no client_id, no user_id, no _ga cookie value. Used for conversion modelling only.

In Basic Consent Mode: hits should NOT fire at all when consent is denied. If hits are firing without consent in Basic mode, your CMP isn't properly blocking the tags.

Step 5 — Verify the GA4 admin signals (1 minute)

GA4 surfaces consent-signal health in the property admin. Go to GA4 Admin → Data Streams → your stream → Configure tag settings → Consent settings. You should see two indicators:

  • "Ads measurement consent signals active" — confirms ad_user_data is being received
  • "Ads personalization consent signals active" — confirms ad_personalization is being received

Both green means V2 is working end-to-end. Either red or "not detected" means the signal isn't reaching Google despite what DevTools shows — usually a server-side or sGTM transformation issue stripping the signals.

What "passing" looks like

The healthy fingerprint of a working Consent Mode V2 implementation:

State`gcs``gcd` present?Hits firing?GA4 cookies set?
Page load (pre-consent), Advanced modeG100Yes, all deniedYes (cookieless)No
Page load (pre-consent), Basic mode(none)(none)NoNo
Accept AllG111Yes, all grantedYesYes
Reject All, Advanced modeG100Yes, all deniedYes (cookieless)No
Reject All, Basic mode(none)(none)NoNo

If your behaviour matches one of these rows in each state, you're working. If not, jump to the diagnostic table below.

Faster alternatives to manual DevTools

For repeat testing, two free Chrome extensions cut the time roughly in half:

Consent Mode Inspector by InfoTrust. Free Chrome extension. Visually displays the current Consent Mode state for each of the four signals on any page. Instantly shows you what gcs and gcd resolve to without opening DevTools. Best for QA across many client sites.

Tag Assistant (Google's official). Free, also a Chrome extension. Shows the gcs and gcd URL parameters appended to outgoing requests, plus the dataLayer state and tag-firing sequence. Better for diagnosing the *why* when something fails — Consent Mode Inspector tells you the result, Tag Assistant tells you how it got there.

For weekly client QA: install both. Use Consent Mode Inspector for the first-pass green/red check, then Tag Assistant when you need to debug.

Diagnostic table — what each failure means

SymptomDiagnosisFix
gcs missing entirely from all hitsConsent Mode not installedAdd the consent default + update commands; install a CMP that supports Consent Mode V2
gcs present but gcd missingConsent Mode V1 onlyUpgrade CMP to V2 or add ad_user_data and ad_personalization to your consent_default command
gcs=G100 but no hits firingWrong mode (Basic instead of Advanced)Switch to Advanced Consent Mode for cookieless pings — required for conversion modelling
gcs doesn't update after Acceptconsent_update not firingCheck CMP's update wiring; ensure update command runs *before* page transition
Hits fire pre-banner with gcs grantedDefault state set to grantedChange consent_default to denied for all signals — this is a serious GDPR violation if EU/UK
GA4 admin shows "ads measurement signals not detected"Server-side transformation stripping signalsCheck sGTM client transformations; verify gcd reaches region1.google-analytics.com unchanged
gcs=G100 shows even after AcceptTags reading consent before default was setMove consent_default to first script in <head> or set Consent Initialization priority to 100 in GTM

The "tags reading consent before default" warning in GTM Preview mode is the most common error we see across audited properties — about 40% of new V2 implementations show it within the first month.

Volume threshold for conversion modelling

Even when Consent Mode V2 passes every test, the modelled-data benefit only activates above Google's volume thresholds:

  • 1,000 daily ad clicks per domain over 7 consecutive days (Google Ads requirement for conversion modelling)
  • Consent Mode V2 in Advanced mode (Basic mode disables modelling entirely)
  • Blended reporting identity in GA4 (Device-based or Observed disables modelling)
  • 7-day window of consent-denied data for the model to train on

Below threshold, GA4 silently shows only observed conversions — no UI warning. The test passes, the implementation is correct, but the practical lift is zero. For low-volume properties (under 10,000 monthly sessions), focus on getting the implementation correct now so when traffic grows, modelling activates automatically.

FAQ: How to Test Consent Mode V2 in 5 Minutes: A DevTools Walkthrough

Can how to test consent mode v2 in 5 minutes: a devtools walkthrough be caused by consent timing instead of a tag bug?

Yes. Many consent-related issues come from when the signal arrives, not whether the setting exists in the interface. Browser-level validation matters more than screenshots of the CMP setup.

Should I test this only in GA4 reports?

No. Start in the browser first, then confirm the reporting impact in GA4. Otherwise you may confuse modeled-data shifts with broken implementation.

What is the fastest way to prevent this from happening again?

Create a repeatable QA step for banner changes, region logic, and container releases so consent behavior is validated before it reaches production users.

Validate How to Test Consent Mode V2 in 5 Minutes: A DevTools Walkthrough before it becomes a compliance and reporting problem

Run a free audit to check consent timing, browser behavior, and downstream GA4 impact in one workflow.

These findings come from auditing thousands of GA4 properties. See how your property compares

GA4 Audits Team

GA4 Audits Team

Analytics Engineering

Specialising in GA4 architecture, consent mode implementation, and multi-layer audit frameworks.

Share