Consent Mode Parameters

When debugging or verifying the implementation of Google Consent Mode v2 Advanced, you can hop in your Chrome Dev Tools inspector, and check out a number of parameters in each network call to Google services.

What are these parameters? What do they mean? And what are the possible values?

When using Chrome Web Tools to inspects the http network calls containing “collect”, we have been analyzing the possibile responses of parameters like gcs, gcd, and so on. Here’s a brief vademecum to understand their values.

google consent mode v2 advanced debugging parameter check for gcd and gcs

ParameterMeaningDescription
gcsGoogle Consent StatusControls ad_storage and analytics_storage values
gcdGoogle Consent DefaultControls ad_storage, analytics_storage, ad_user_data, and ad_personalization values
gcuGoogle Consent UpdateWill be added with the value “1” if the Google Consent has just been updated (wait_for_update setting on GTAG)
gcutGoogle Consent Update TypeDocumented values, 1 or 2, no more info on the meaning
dma_cpsDigital Marketing Act ParametersSpecifies if consent is given or not, and for which Google services (search, youtube, play, shopping, ads, maps..)
npaNon Personalized AdsThe output parameter for personalized advertising (impacts remarketing)
Basic explanation of the meaning of each parameters included in the headers of the http requests in “network”.

Note: it can be useful to check out the Google Analytics 4 Measurement Protocol chart by thyngster.com

The possible values of GCS are:

  • 100 – no analytics & no ads cookies
  • 101 – yes analytics & no ads cookies
  • 111 – yes analytics & yes ads cookies
  • 110 – no analytics & yes ads cookies

This is a little less straightforward. The string starts with 11, then uses a number (often 1) to separate the different consent signals, and then ends with a different number (often 5) to end the string. We will come to the last number at the end of this chapter.

One example would be:

&gcd=11<ad_storage>3<analytics_storage>3<ad_user_data>3<ad_personalization>5

Now, as mentioned in our step 5 of the implementation of Consent Mode v2 Advanced, you won’t be observing such a verbose string; instead, the parameters are going to be replaced by mysterious letters. Here’s the mystery unveiled with what we know so far:

LetterDescriptionExample
lConsent mode is not active11l1pl1l1l5
pdenied by defaults, no update (you want this before interaction with CMP banner)11p1p1p1p5
qdenied by defaults and denied after update11p1q1p1p5
tgranted by default and no updates11t1t1t1t5
rdenied by default, granted after update (you want this result in most cases)11r1r1r1r5
mdenied after update without defaults11p1m1p1p5
ngranted after update without defaults11n1n1n1n5
ugranted on defaults, but denied after update11u1u1u1u5
vgranted both previous and after consent11v1v1v1v5
Note: take a look at Simo Ahava’s in depth coverage

The Number 5 at the end of GCD

David Vallejo has been analyzing this in depth (I suggest giving him a follow on LinkedIn), and he suggests that the last value is “ads_signals”. Here are the possible values of the parameter:

  • 1 – Consent Not Defined + Ads Signals Not Defined
  • 2 – Consent Not Defined + Ads Signals Set True
  • 3 – Consent Not Defined + Ads Signals Set False
  • 4 – We don’t know yet
  • 5 – Consent Defined + Ads Signals Not Defined
  • 6 – Consent Defined + Ads Signals Set True
  • 7 – Consent Defined + Ads Signals Set True

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.