TrackCheck › Blog

Shopify Consent Mode v2 not working? 8 fixes to check

Your consent app says Consent Mode v2 is on, but Tag Assistant, Google Ads or GA4 disagree. Here's how to find the break on a Shopify store, symptom by symptom.

By TrackCheck · Updated 15 October 2026 · 5 min read

On Shopify, Google Consent Mode v2 depends on a chain. Your banner collects a choice, Shopify's Customer Privacy API stores it, and whichever route loads your Google tags turns that choice into the four consent signals. That route might be the Google & YouTube app, GTM in your theme, or a custom pixel. A break anywhere in the chain looks the same from the outside: warnings in Google Ads, odd numbers in GA4, or tags firing when they shouldn't.

This guide is Shopify-specific. On WordPress, see Consent Mode v2 not working on WooCommerce. For the basics, start with our Consent Mode v2 explainer.

Gather the evidence first (5 minutes)

  1. Open tagassistant.google.com and connect it to your storefront in a fresh private window.
  2. Before touching the banner, open the first event's Consent tab and note the "On-page default" for ad_storage, analytics_storage, ad_user_data and ad_personalization.
  3. Click Accept all and check for an "On-page update" on the next event.
  4. In DevTools › Network, filter collect and note the gcs value on Google hits (G100 means both denied, G111 means both granted). Also note how many different measurement IDs (tid=G-…) appear.
  5. Repeat with Reject all in a new private window.

Then match what you saw to the fixes below.

1. The consent app isn't connected to Shopify's Customer Privacy API

Symptom: the banner works visually, but Shopify's pixels behave as if nobody consented, or as if everybody did. GA4 purchases may vanish entirely, or appear even after "Reject all".

Cause: the app stores consent only in its own cookie, or its Shopify integration setting is switched off.

Fix: in the app's settings, look for the Shopify Customer Privacy API integration (names vary) and make sure it's on. Check the app's docs if you can't find it. If the app doesn't support it, that's a reason to switch; see how to choose a consent app.

2. Two systems are both setting Google consent

Symptom: Tag Assistant shows two defaults, or a default followed by conflicting updates.

Cause: the consent app's Google Consent Mode feature and another source (a GTM CMP template, a hand-written snippet in theme.liquid, or a second consent app) are all setting consent.

Fix: choose one source for Google consent states. Usually that's the consent app's built-in Consent Mode v2 setting, or its GTM template if you use GTM. Remove the others, including old snippets and the app embeds of apps you no longer use.

3. GTM in the theme loads before the default

Symptom: Tag Assistant warns that a tag read consent before a default was set. The first GA4 hit sets a _ga cookie before any click.

Cause: the GTM snippet sits above the consent default in theme.liquid, or the consent app's script loads later (for example as a deferred app embed).

Fix: make sure the default runs first. Either use the consent app's GTM template on the Consent Initialization - All Pages trigger, or place a default snippet (all four signals denied) above the GTM code, with the app sending the update.

Not sure what your store fires before consent?

Send us your URL and we'll run a free homepage pre-consent scan: which trackers and cookies load before a shopper chooses. No obligation.

Get my free scan Use the free checklist

4. Google is installed twice

Symptom: two measurement IDs in the Network tab, or one ID sending two page views. Consent looks right on one set of hits and wrong on the other.

Cause: GA4 or Google Ads is loaded by the Google & YouTube app and by GTM or theme code. Usually only one route is wired to consent.

Fix: keep one route per Google product and remove the rest. If you keep the Google & YouTube app, check its own consent settings; it follows Shopify's Customer Privacy API. Duplicates also inflate your revenue (see our duplicate purchase guide).

5. The update never arrives for returning visitors

Symptom: first visit after accepting is fine, but on later pages or visits the first Google hits show G100.

Cause: the app sends the update only on the click, or Google tags fire before the app has read the stored choice.

Fix: check the app's option to apply stored consent on page load, and keep a short wait_for_update on the default so tags wait briefly for it. Test by accepting, opening a new tab in the same private window, and loading another page.

6. UK visitors aren't in the banner's regions

Symptom: no banner when you browse from the UK, and Consent Mode defaults to granted (or isn't set at all).

Cause: the banner is limited to the EU/EEA, or Shopify's customer privacy regions don't include the United Kingdom.

Fix: add the UK to the banner regions in both the app and Shopify's customer privacy settings, and check the default for UK visitors is denied. Our Shopify cookie banner guide covers the banner settings.

7. Checkout and purchase tracking ignore the storefront setup

Symptom: storefront consent looks perfect, but purchases are missing, or fire regardless of consent.

Cause: theme code (including GTM in theme.liquid) doesn't run on Shopify's checkout. Purchases come from app pixels or custom pixels, which follow their own customer privacy permission. If you load gtag inside a custom pixel, it doesn't inherit the consent states your theme set.

Fix: in Settings › Customer events, check each custom pixel's customer privacy permission matches its purpose (analytics and/or marketing). If a custom pixel loads Google tags, set the consent defaults and updates inside the pixel too; Shopify's Web Pixels documentation explains how pixels access the visitor's consent. Or let the Google & YouTube app handle checkout tracking. See GA4 not tracking Shopify purchases for the purchase side.

8. Only v1 signals are sent

Symptom: ad_storage and analytics_storage look right, but ad_user_data and ad_personalization are missing. Google Ads still warns.

Cause: an outdated app version, GTM template or hand-written snippet.

Fix: update the app or template, and map the Marketing category to all three ad signals. Our Google Ads consent diagnostics guide covers what Ads expects.

Don't forget non-Google pixels

Consent Mode only governs Google tags. Meta, TikTok and Pinterest need to be blocked by your consent app, gated in GTM, or run through Shopify app pixels that follow the Customer Privacy API. If they fire before consent, see Is your Shopify store firing Meta Pixel before consent?

Final check

Test (fresh private window)Expected
Land, don't clickAll four signals denied by default; no _ga or _fbp; no Meta hits
Reject all, browse and add to basketStill denied; nothing non-essential
Accept allUpdate to granted; gcs=G111; one measurement ID per property
Return visit after acceptingGranted from the first hit
Test order with consent acceptedOne purchase in GA4 DebugView

Want it checked properly?

The TrackCheck Health Check is a fixed-price review for UK Shopify and WooCommerce stores: a full consent test (before choice, after "Reject all", after "Accept all", including Consent Mode v2 signals), a GA4-vs-orders reconciliation, a prioritised fix list and a recorded walkthrough, delivered in 5 working days.

See Health Check pricing Start with a free scan

This article is technical guidance, not legal advice. Platform menus change; check the vendor's current documentation if a setting has moved.