Blog
CookiePass and Google Consent Mode: what a consent banner does to your traffic
Published · Updated · 3 min read
We run CookiePass on this site. It is a cookie consent service that implements Google Consent Mode v2 the way Google specifies it, and that property turns out to matter more than the banner's colours: it decides what your Google tag sends on every page view before the visitor has answered, after they say yes, and after they say no. This is what that looks like from the server side, where every one of those hits passes through your container.
What Consent Mode actually changes
Choose the mode that fits your organisation's policy. Do not disable deliberate script blocking just to make events appear. **Basic:** block the tracking snippet until the relevant consent is given. No pre-consent tracking events are expected in SignalHost. **Advanced:** load Google's tags with `denied` defaults. Google may receive cookieless measurement pings before a choice or after rejection. A ping is not consent.
The `gcs` field describes only advertising and analytics storage. It does not prove the two newer consent permissions. Check all four in Google Tag Assistant; encoded request fields can change.
gcs=G100 ad_storage denied, analytics_storage denied
gcs=G101 ad_storage denied, analytics_storage granted
gcs=G110 ad_storage granted, analytics_storage denied
gcs=G111 both granted
(no gcs) storage summary missing; our current storage gate permits it, not proof of consentSet `analytics_storage`, `ad_storage`, `ad_user_data` and `ad_personalization` to `denied` before the SignalHost snippet runs. Your banner then updates each permission to match the visitor's choices.
How CookiePass wires it up
Consent Mode v2 requires a sequence, not a setting. The default state has to be declared before the Google tag loads — denied, for anyone who has not chosen yet — and an update has to follow the moment the visitor decides, then be restored on every return visit. Get the order wrong and the first page view of every session goes out as consented before the banner has even rendered.
This is the sequence CookiePass produces from its own script, so nothing about it lands in your Tag Manager container:
gtag('consent', 'default', {
ad_storage: 'denied',
analytics_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
wait_for_update: 500
});
// …the visitor accepts all four purposes…
gtag('consent', 'update', {
ad_storage: 'granted',
analytics_storage: 'granted',
ad_user_data: 'granted',
ad_personalization: 'granted'
});That is the whole integration. Google's own tags honour the consent state automatically, and that includes the tags SignalHost publishes into your web container. Nothing in your server container needs a consent condition — adding one by hand is how a gated Google tag ends up with ungated event tags beside it, sending data straight to Google.
What your server container sees before and after the choice
**Basic:** block the tracking snippet until the relevant consent is given. No pre-consent tracking events are expected in SignalHost. **Advanced:** load Google's tags with `denied` defaults. Google may receive cookieless measurement pings before a choice or after rejection. A ping is not consent.
- Before a choice and after Reject: the relevant permissions stay `denied`.
- Analytics only: `analytics_storage` may be granted; advertising permissions stay denied.
- Marketing allowed: grant only the advertising purposes the visitor actually agreed to.
- Withdraw permission: the affected values return to `denied`. Reload and check the saved choice.
Does seeing an event mean consent is correct? No. Live events show arrival at SignalHost, not all four consent settings or delivery to an ad platform. Use Tag Assistant to check consent, then check the destination separately.
What it means for your traffic numbers
Does seeing an event mean consent is correct? No. Live events show arrival at SignalHost, not all four consent settings or delivery to an ad platform. Use Tag Assistant to check consent, then check the destination separately.
- **Basic:** block the tracking snippet until the relevant consent is given. No pre-consent tracking events are expected in SignalHost.
- **Advanced:** load Google's tags with `denied` defaults. Google may receive cookieless measurement pings before a choice or after rejection. A ping is not consent.
A checklist
- Before tracking starts, your banner must set permissions to denied. After a choice, update only the purposes the visitor allowed, remember that choice, and handle withdrawal.
- Open a fresh private window for each test. In Google Tag Assistant, enter your site URL and inspect the earliest and latest Consent events.
- Before a choice and after Reject: the relevant permissions stay `denied`.
- Analytics only: `analytics_storage` may be granted; advertising permissions stay denied.
- Marketing allowed: grant only the advertising purposes the visitor actually agreed to.
- Withdraw permission: the affected values return to `denied`. Reload and check the saved choice.
- Add the exact loader URL from your SignalHost installation snippet to your banner's blocking rules. Your own hostname may not match its usual Google rules. Release it only after the required consent.
[Cookie-banner setup guide](/en/blog/cookie-banner-consent-mode-server-side)

