Google Consent Mode
Google Consent Mode passes a user's cookie choices to Google tags on every hit. The `gcs` parameter carries the signal state, and `gcd` carries the consent defaults and updates, so Google can adjust how it stores data and models gaps.
Why it matters
Privacy regulations like GDPR and ePrivacy require you to ask for consent before storing certain cookies. Consent Mode tells Google tags what the user has consented to, so Google can turn analytics and advertising storage on or off accordingly. Without it, Google can't adjust; your tags either always store or never store, regardless of consent.
Using Consent Mode also unlocks Google's behavioural modelling. When users deny analytics storage, Google can still use the hits you send (without cookies) to estimate what would have happened if they'd consented. That keeps your reports more complete.
How it works
Consent Mode sends two parameters on every hit: gcs and gcd.
The gcs parameter is a single digit string, like G100 or G111. Each digit represents one consent signal: ad storage, analytics storage, ad personalisation, and signals for a reserved future flag. 1 means granted, 0 means denied.
So G100 means: ad storage granted, analytics storage denied, ad personalisation denied, reserved flag denied.
The gcd parameter carries consent defaults and updates in a URL-encoded format, listing which consents are in effect and when they were last updated. It helps Google tools respond immediately when a user changes their consent, rather than waiting for the next page load.
When a user denies analytics storage, Google still accepts the hit and records it, but tags that storage to "denied". Google then uses that hit to fill in missing data for the user's session, creating estimates based on similar, consenting users.
What does not matter
Consent Mode is not the same as being GDPR-compliant on its own. You still need a real consent banner that asks users, records their choices, and updates tags when they change their mind. Consent Mode just communicates those choices to Google.
You don't have to use Consent Mode. It's optional. But if you're in a jurisdiction with privacy regulations, it's a strong best practice because it proves to regulators that you're telling Google what users chose.
The exact names and values of Consent Mode changed between version 1 (basic) and version 2 (advanced). Most sites use version 2, which is more detailed, but both work.
Code example
A hit with Consent Mode basic might look like this:
GET /g/collect?v=2&tid=G-XXXXXXX&cid=123.456&gcs=G100&en=page_view HTTP/1.1
Decoded: ad storage is granted, but analytics, ad personalisation, and the reserved flag are all denied.
Version 2 (advanced) includes more detail:
POST /g/collect?v=2 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
tid=G-XXXXXXX&cid=123.456&en=page_view&gcs=G100&gcd=G100&RCV=1
gcd=G100 and RCV=1 tell Google the consent status and when it was confirmed (RCV is the revision count).
How Scalpel shows it
Scalpel Tags decodes the gcs and gcd parameters and groups them into a Consent section in the hit table. You can see at a glance which signals are granted or denied for each request. If you see gcs change between hits, the user has updated their consent choices.