# How to Check Google Consent Mode v2 Is Working {#post-title}

[All Pixel Helper](/blog/#blog-all-pixel-helper)

By [B2B Gold](/about/#how-we-write) Published 25 September 2026 Updated 26 September 2026

## How do you check Google Consent Mode v2 is working? {#how-do-you-check-google-consent-mode-v2-is-working}

To check Google Consent Mode v2, open Google’s Tag Assistant in a fresh session and read its Consent tab: `ad_storage`, `analytics_storage`, `ad_user_data` and `ad_personalization` should start as denied where you ask for consent, then turn granted when you accept the banner. Then check Google’s requests carry the matching `gcs` value, and the conversion action’s Diagnostics tab in Google Ads.

Google’s [consent mode overview](https://developers.google.com/tag-platform/security/concepts/consent-mode) (last updated 30 July 2026, checked 25 September 2026) describes the four consent types:

| Consent type | What it controls |
| --- | --- |
| `ad_storage` | Storage, such as cookies, for advertising |
| `analytics_storage` | Storage, such as cookies, for analytics, for example visit duration |
| `ad_user_data` | Sending user data to Google for online advertising |
| `ad_personalization` | Personalised advertising |

Consent Mode doesn’t collect consent. Your banner does, then tells Google’s tags with a `default` command on page load and an `update` when the visitor chooses. You’re checking that handover.

## What should a working set-up look like? {#what-should-a-working-set-up-look-like}

It depends on the mode. In basic mode, Google’s tags send nothing until the visitor accepts. In advanced mode, they load straight away and send cookieless requests carrying the denied state until the visitor accepts ([consent mode overview](https://developers.google.com/tag-platform/security/concepts/consent-mode); cookie names from Google’s [cookie list](https://business.safety.google/adscookies/)).

| Moment | Tag Assistant’s **Consent** tab | Basic consent mode | Advanced consent mode |
| --- | --- | --- | --- |
| Page loads, no choice yet | **On-page Default** shows all four denied, where you ask for consent | No Google requests, not even the consent state | Requests carry the denied state; no Google cookies such as `_ga` or `_gcl_au` |
| Visitor accepts | **On-page Update** shows them granted | Google’s tags load, send requests and set cookies | Requests carry the granted state; Google’s cookies appear |
| Visitor declines | **On-page Update** shows them denied, or no update and the default stands | Still nothing sent | Cookieless requests continue with the denied state |

## How do you check it in Tag Assistant? {#how-do-you-check-it-in-tag-assistant}

Tag Assistant is the only tool here that shows Consent Mode’s `default` and `update` commands themselves. Follow Google’s steps in [Troubleshoot consent mode with Tag Assistant](https://developers.google.com/tag-platform/security/guides/consent-debugging).

1. Clear the site’s cookies: in DevTools, open **Application** → **Storage** → **Cookies**, select the site and click **Clear all** ([cookies reference](https://developer.chrome.com/docs/devtools/application/cookies)). If the banner doesn’t come back, use a Chrome profile that has never visited the site.
2. Go to [Tag Assistant](https://tagassistant.google.com/) and click **Add domain** ([Tag Assistant help](https://support.google.com/tagassistant/answer/10039345)).
3. Enter the page’s address and click **Connect**. Your site opens in a new window or tab; **Could not connect** may mean your Google tag waits for consent.
4. On the site, open the cookie banner and accept everything. Tag Assistant should now connect.
5. In Tag Assistant’s **Summary**, select the earliest **Consent** event.
6. In the **Output of your tag** section, open the **Consent** tab and read the **On-page Default** column. Where you ask for consent, all four types should be denied.
7. Select the most recent **Consent** event and read the **On-page Update** column. All four should be granted.
8. Start a fresh session and repeat with a decline. The update should leave all four denied.

An empty **Consent** tab means consent mode isn’t implemented on that page, Google says. The **Tags** tab shows which tags fired or were blocked by consent.

Order matters. Google says to set the default “before any tags or other code uses or updates consent”, ahead of any `config` or `event` command. A default set late, or asynchronously, can miss the tags that ran first, and Tag Assistant reports an error.

Three optional settings in Google’s [set-up guide](https://developers.google.com/tag-platform/security/guides/consent) change what you see:

| Setting | What it does | What it changes in your check |
| --- | --- | --- |
| `wait_for_update` | Holds tags for set milliseconds so the banner can update | Too short, and the first requests carry the default |
| `region` | Sets defaults per region, by ISO 3166-2 code | Repeat the steps with a simulated location in Chrome, as Google suggests |
| `url_passthrough` | Passes ad-click, client and session IDs in addresses while cookies are denied | Links may gain parameters such as `_gl` or `gclid` |

## How do you check it in Google Ads? {#how-do-you-check-it-in-google-ads}

In Google Ads, check Consent Mode in the conversion action’s **Diagnostics** tab, which shows whether Google Ads sees Consent Mode and whether modelling runs ([Verify consent mode implementation](https://support.google.com/google-ads/answer/14218557)).

1. In Google Ads, click the **Goals** icon.
2. Click the **Conversions** drop-down in the section menu.
3. Click **Summary**.
4. In the conversion actions table, click a website conversion action.
5. Click the **Diagnostics** tab.

You should see **Consent mode is implemented**, or **Consent mode is implemented and modeling is active** once modelling runs. The status can take 48 hours to appear, and up to 2 weeks in some cases. Modelling needs 700 ad clicks over 7 days for a domain and country grouping.

Google’s [Tag Diagnostics](https://support.google.com/tagmanager/answer/14681508) can also raise consent notices. Two point to a set-up fault: **Some pages missing consent for EEA users** and **Consent mode installation out of order**.

> **Note:** GA4’s DebugView won’t confirm a declined session: Google says events don’t appear there when consent mode is in place and the visitor hasn’t consented to analytics cookies ([DebugView](https://support.google.com/analytics/answer/7201382)).

## How do you check the requests themselves? {#how-do-you-check-the-requests-themselves}

Open Chrome’s Network panel and read the `gcs` and `gcd` parameters on Google’s requests. Google documents what they carry, not their exact format, so use them to spot changes and Tag Assistant to read the four types.

1. Open DevTools, choose **Network** and tick **Preserve log** ([Network reference](https://developer.chrome.com/docs/devtools/network/reference)).
2. Clear the site’s cookies and reload.
3. Type `gcs` in the **Filter** box. GA4’s requests go to an address ending in `/g/collect`.
4. Click a request and open **Payload**. `gcs` and `gcd` are under **Query String Parameters**.
5. Accept the banner and compare the new requests. `gcs` should now read granted.

Google’s overview says `gcs` carries `ad_storage` and `analytics_storage`, while `gcd`, sent even without consent mode, encodes the choice in more detail. `gcs` is widely read as `G1` plus a digit for each of those two (1 granted, 0 denied): `G100` both denied, `G111` both granted. Google doesn’t publish that layout. On 25 September 2026, GA4 requests we checked on two public sites, before any banner click, carried `gcs=G100` and 12-character `gcd` values such as `13p3p3p2p5l1`; Google publishes no key to those letters. If `gcs` never appears, check Tag Assistant’s **Consent** tab. If Google’s requests are missing even after you accept, [tell whether an ad blocker or CSP is blocking a tag](/blog/pixels-blocked-ad-blocker-csp/).

## Which tags run before a visitor chooses? {#which-tags-run-before-a-visitor-chooses}

Check before you touch the banner. Consent Mode changes how Google’s tags behave; it doesn’t hold back Meta’s, TikTok’s or other vendors’ tags, so your banner, your tag manager or your platform has to.

1. Start as a new visitor, as in the Tag Assistant steps.
2. In **Network**, with **Preserve log** on, reload and leave the banner unanswered.
3. Look for requests to ad and analytics vendors. Google’s cookieless requests are expected in advanced mode.
4. Open **Application** → **Storage** → **Cookies** and note which cookies exist.
5. Accept the banner and compare. Whatever appeared in steps 3 and 4 didn’t wait for the visitor.

Raise what you find with your banner provider or developer. In Tag Manager, a tag without built-in consent checks can wait through **Advanced** → **Consent Settings**, Google says. To read each vendor’s requests, [check whether a pixel is working](/blog/check-if-pixel-is-working/). Whether a tag may run before consent where you sell is a legal question, not a tooling one.

## How do you check it on Shopify? {#how-do-you-check-it-on-shopify}

Check Shopify’s customer privacy settings, then compare what Shopify records with what Google’s requests carry. Shopify says those settings must be configured correctly for consent to reach Google; a third-party banner must be integrated with them, and a custom pixel needs a code snippet added by hand ([customer privacy settings](https://help.shopify.com/en/manual/privacy-and-security/privacy/customer-privacy-settings/understanding-customer-privacy-settings)).

To see what Shopify records, use its [Customer Privacy API](https://shopify.dev/docs/api/customer-privacy) in the storefront’s console:

1. Open the store as a new visitor, from a region where you ask for consent, and leave the banner alone.
2. Run `window.Shopify.customerPrivacy.currentVisitorConsent()`. Each purpose should be an empty string, meaning undecided.
3. Accept the banner and run it again. The purposes you accepted should read `yes`.
4. Run `window.Shopify.customerPrivacy.analyticsProcessingAllowed()`. It should now return `true`; before consent, where consent is required, it returns `false`. `marketingAllowed()` does the same for marketing.
5. Compare with `gcs` on Google’s next request, as in the Network steps.

```
window.Shopify.customerPrivacy.currentVisitorConsent()
// e.g. { marketing: "yes", analytics: "no", preferences: "yes", sale_of_data: "" }
```

The `…Allowed()` methods also weigh where the visitor is and how the store is set up, which `currentVisitorConsent()` leaves out. If `window.Shopify.customerPrivacy` is undefined, the API hasn’t loaded; Shopify documents `window.Shopify.loadFeatures` for that.

If Shopify and Google disagree, or Shopify shows `yes` before anyone clicked, the handover is broken. In a Shopify developer-forum [thread](https://community.shopify.dev/t/web-pixel-google-youtube-app-always-pushing-default-granted/23016) (September 2025 to January 2026), an agency reported the Google & YouTube app’s pixel setting Google’s default to granted on stores set to require consent. On one store it stopped by itself; on the other, Shopify staff traced it in January 2026 to the store’s banner recording consent on page load, which the pixel passed on. Both times the fault showed in the console and in Google’s requests, not on the settings page. A Shopify Community [thread](https://community.shopify.com/t/how-to-activate-google-consent-mode-v2-on-shopify/277670) on setting it up, started in December 2023, had 3,423 views on 25 September 2026.

Shopify’s Pixel Helper shows the other side: a pixel held for consent reads **Pixel is awaiting consent**. More in [why a pixel waits for consent](/blog/shopify-app-pixels-vs-custom-pixels/#why-is-a-pixel-waiting-for-consent).

## How do you see consent signals from several platforms at once? {#how-do-you-see-consent-signals-from-several-platforms-at-once}

If you run only Google’s tags, Tag Assistant and Google Ads are enough. To compare the consent flags on Google’s, Meta’s, Microsoft’s and TikTok’s requests, an extension helps.

[All Pixel Helper](/chrome/all-pixel-helper/), which we build, is a free Chrome extension with a **Consent** tab that decodes `gcs` from Google’s requests and shows the raw `gcd`, shows the Limited Data Use flag on Meta’s requests and the consent flags on Microsoft UET and TikTok requests, and names the consent platform it finds on the page with the banner state that platform reports. It reads the requests this tab sends, not the `gtag('consent', …)` commands, so a default set before Google’s first request doesn’t show, and it misses Google requests sent to a first-party or server-side tagging domain. It doesn’t read `ad_user_data` and `ad_personalization` from the 12-character `gcd` strings Google sends today, so check those two in Tag Assistant. Its region label follows your time zone, or a location your consent platform reports, not your visitors’. In its own words, it is “For technical diagnostics and QA verification only.” The extension itself sends nothing anywhere, but it adds an empty `dataLayer` to pages that have none.

## Why do conversions drop after you switch it on? {#why-do-conversions-drop-after-you-switch-it-on}

Because visitors who decline stop being measured the usual way. Basic mode sends Google nothing for them; advanced mode sends cookieless pings, and Google Ads models conversions only past its click threshold. Shopify notes that a banner reduces recorded sessions and the metrics built on them, such as conversion rates.

A drop right after launch is expected, not a fault. Check it comes from regions where you ask for consent, comparing whole weeks. On Shopify, declined consent is also why platforms report fewer purchases than orders: [are shoppers declining tracking?](/blog/meta-pixel-not-tracking-purchases-shopify/#are-shoppers-declining-tracking) covers Meta, and [what makes GA4 miss purchases](/blog/ga4-shopify-purchases/#what-makes-ga4-miss-purchases) covers GA4. A decline is a gap to accept, not one to work around.

## Frequently asked questions {#frequently-asked-questions}

### What’s the difference between basic and advanced consent mode? {#whats-the-difference-between-basic-and-advanced-consent-mode}

What Google’s tags send before the visitor agrees. Basic mode sends nothing, “not even the default consent status”. Advanced mode sends the consent state and cookieless pings that can include a timestamp, the user agent, the referrer, whether the address carried ad-click information and a random number per page load. Google says advanced mode gets an advertiser-specific conversion model instead of a general one ([consent mode overview](https://developers.google.com/tag-platform/security/concepts/consent-mode)).

### Does Consent Mode affect Meta or TikTok pixels? {#does-consent-mode-affect-meta-or-tiktok-pixels}

No. It adjusts Google’s tags only. Other vendors’ tags need your banner, tag manager or platform to hold them back.

### Do I need Consent Mode v2 outside Europe? {#do-i-need-consent-mode-v2-outside-europe}

Where you must ask for consent is a question for legal advice. Shopify says event data from customers in places such as the EEA “won’t be used for personalized advertising unless Google Consent Mode v2 is activated”, and valid consent obtained ([Shopify](https://help.shopify.com/en/manual/privacy-and-security/privacy/customer-privacy-settings/understanding-customer-privacy-settings)). Google recommends scoping defaults, with `region`, to where you show a banner.

[All Pixel Helper - Tag, dataLayer & Consent Debugger](/chrome/all-pixel-helper/)

All Pixel Helper is a free Chrome extension that lists and decodes the requests a web page sends to 40 ad and analytics platforms, including Meta, TikTok, GA4, Google Tag Manager and Shopify, and marks each one delivered, failed or blocked. It also shows every dataLayer push, with paths you can copy into Tag Manager, and the consent signals on Google, Meta, Microsoft and TikTok requests.

[Add to Chrome](https://chromewebstore.google.com/detail/all-pixel-helper-tag-data/bdedmcfjebcoemocjajpohkbnohbfeld?utm_source=b2bgold.app&utm_medium=referral&utm_campaign=blog&utm_content=blog/check-google-consent-mode&utm_term=post-cta) [Plans and pricing](/chrome/all-pixel-helper/#pricing)

Need help with All Pixel Helper? Email [chrome@afixer.app](mailto:chrome@afixer.app).

## More on All Pixel Helper {#related-heading}

- 25 September 2026 **[How to Check and Debug the dataLayer in Chrome](/blog/check-datalayer-in-chrome/)** See every dataLayer push in Chrome's console or Tag Manager's Preview mode, fix a dataLayer.push that does nothing, and map nested values to GTM variables.
- 25 September 2026 **[Pixels Blocked by an Ad Blocker or CSP? How to Tell](/blog/pixels-blocked-ad-blocker-csp/)** Tell an ad blocker from a Content Security Policy or a consent tool when tags go missing: ERR_BLOCKED_BY_CLIENT, CSP errors in the Console, and what to fix.
- 25 September 2026 **[How to Check If Your Tracking Pixels Are Working](/blog/check-if-pixel-is-working/)** Check any tracking pixel with the platform's own tool or Chrome's Network panel: did it load, fire, reach the platform and carry the right event and values?
