Does your cookie banner actually reach your pixels? A five-minute test

A five-minute test for theme and checkout, and how to fix what fails.

Most Shopify stores in Europe have a cookie banner. Far fewer have a banner that actually controls their tracking. In audits, I regularly find GA4, Meta or TikTok firing before the visitor clicks anything, or ignoring a refusal on the checkout. Here is the five-minute test I use, what each result means, and how to fix what fails.

What you need

  • Google Chrome, with a private (incognito) window for each test.
  • A European location, or a VPN set to a European country, so the banner shows.
  • The browser’s DevTools (right-click → Inspect), with the Network and Application tabs.

Minute 1: before any choice

  1. Open a private window, open DevTools on the Network tab, check “Preserve log”, then load your home page.
  2. Don’t touch the banner.
  3. In the Network filter, type each of these and note what you see: collect (GA4), facebook.com/tr (Meta), analytics.tiktok.com (TikTok), googleadservices or googlesyndication (Google Ads).
  4. In the Application tab, under Cookies, look for _ga, _fbp, _gcl_au and _ttp.

Pass: no Meta or TikTok requests, no advertising or analytics cookies. GA4 requests are acceptable only if you chose advanced Consent Mode, and then they must carry gcs=G100 (open the request and look at its parameters).

Fail: any request to Meta or TikTok, any _fbp or _ga cookie, or GA4 requests with gcs=G111.

Minute 2: refuse

  1. Click “Reject” (or “Refuse all”).
  2. Browse two or three pages, open a product, add it to the cart.
  3. Check the same filters and cookies again.

Pass: nothing new to Meta or TikTok, no tracking cookies. GA4 requests, if any, still carry gcs=G100.

Minute 3: the checkout, still refused

  1. Go to the checkout and fill in the contact step with a test email.
  2. Check the Network tab again.

This is the step most setups fail. The checkout runs pixels, not theme scripts, so a banner that only blocks scripts in the theme does nothing here.

Pass: no Meta, TikTok or Google Ads requests on the checkout.

Minute 4: accept

  1. Open a new private window and load the store.
  2. Click “Accept all”.
  3. Browse a product page.

Pass: GA4 requests now carry gcs=G111, the _ga, _fbp and _gcl_au cookies appear, and Meta’s requests to facebook.com/tr start. If nothing fires after acceptance, your banner is blocking too much, and you are losing data from visitors who agreed.

Minute 5: check what Shopify knows

Open the Console tab and type:

Shopify.customerPrivacy.currentVisitorConsent()

It should return the choice you just made, for example { analytics: "yes", marketing: "yes", preferences: "yes", sale_of_data: "yes" }. Do the same in the refusal window: you should see "no". If the values are empty or don’t match the banner, your banner doesn’t write to Shopify’s Customer Privacy API, which is why pixels and the checkout ignore it.

Reading the gcs parameter

gcsAds storageAnalytics storage
G100DeniedDenied
G101DeniedGranted
G110GrantedDenied
G111GrantedGranted

No gcs at all on a GA4 request means Consent Mode isn’t set up for that tag.

What failures usually mean

SymptomLikely causeFix
Tags fire before any choice, on the themeScripts hardcoded in theme.liquid or added by an app outside Customer eventsRemove them and move tracking to pixels
Theme respects refusal, checkout doesn’tBanner doesn’t write to the Customer Privacy APIUse an integrated banner, or call setTrackingConsent
Custom pixel fires regardless of choicePixel permission set to “Not required” with no consent logic insideRequire consent on the pixel, or add Consent Mode code
Meta fires after refusalMeta app’s data-sharing settings, or a Meta tag in GTM with no consent triggerCheck the app’s permissions; add a consent condition to Meta tags
No gcs on GA4 hitsNo Consent Mode defaultAdd the default before GTM loads
Nothing fires after acceptancePixel only reads consent at load and misses the updateSubscribe to visitorConsentCollected

The full fix, with code for the theme and for custom pixels, is in Consent Mode v2 on Shopify with the Customer Privacy API.

Frequently asked questions

Does Shopify’s cookie banner block all pixels?

It controls pixels managed through Customer events, according to each pixel’s permissions. Scripts hardcoded in the theme or injected by apps outside Customer events aren’t controlled by it.

Should a purchase still work after rejecting cookies?

Yes. The checkout must work normally after a refusal. Only tracking stops. Place a test order after refusing to confirm it.

Why does my app pixel fire before consent?

Check the app’s own consent settings and the pixel’s permissions in Customer events. Some apps let you choose how they behave before a choice is made, and the defaults aren’t always what your legal team expects.

Why this matters beyond compliance

If the test fails and you want to rebuild the setup properly, see how to set up a cookie consent banner on Shopify.

A banner that leaks is a legal risk. A banner that blocks too much is a data problem: if accepted visitors aren’t tracked, your ad platforms optimize on a fraction of your sales. Both show up in the numbers: compare GA4 purchases with Shopify orders, as explained in why GA4 shows fewer purchases than Shopify.

Consent is one of the eight areas of my Shopify tracking audit (from 800€), and Consent Mode v2 is included in all my Shopify tracking packages. Not sure what your results mean? Book a free 30-minute call.

Elliot Latil

Full Stack Web Analytics expert: GA4, GTM, server-side tracking and Shopify. About me