Consent Mode v2 Verification: Tag Assistant and gcs Tests
How to verify a Consent Mode v2 setup with Tag Assistant and the gcs parameter: measured results for accept, reject and analytics-only scenarios.
First, identify your installation path
There are two installation paths, and which one applies is decided by how Google Analytics fires, not by preference. If the page source contains gtag/js?id=G-, the tag is embedded and you must follow the direct tag path; if only gtm.js?id=GTM- is present, GTM injects GA. The most common mistake is choosing the GTM path merely because a GTM container exists on the page.
Tag Assistant is an interpretation; gcs is the evidence
In the Consent tab of Tag Assistant, before consent you should see security_storage granted and the other six signals denied. The real evidence, however, is the gcs parameter on the collect request in DevTools → Network. gcs reads as three digits: G + consent mode active + ad_storage + analytics_storage.
Measured results
The results below were taken with a real browser and a clean profile on cookietrace.com on 17 September 2026.
- Before consent: all 8 collect requests carried gcs=G100 and no _ga was written
- Accept all: seven signals granted, requests gcs=G111, _ga and _ga_JZXBBVK46B created
- Reject all: everything denied except security_storage, requests gcs=G100, no _ga
- Analytics only: analytics_storage granted, advertising signals denied, requests gcs=G101
What a broken setup looks like
There is exactly one symptom: the gcs parameter is missing entirely. If you see gcs=G100, the signal is being sent. A collect request without gcs means the consent-default block did not reach that request — almost always because it sits below the Google tag or loads asynchronously.
The boundary not to overstate
Consent Mode v2 is not a blocking mechanism. The tag still loads and requests still reach Google; what changes is that the request carries no cookie and _ga is not written. Scripts embedded directly in the page, such as Meta or TikTok, need Prior Blocking. This is also Advanced Consent Mode behaviour; in Basic mode the tag does not fire at all until consent arrives.