TrackCheck › Blog

Google Consent Mode v2 explained for small online stores

What it is, what the four signals do, why the order of events matters, and how to check yours is working, without the jargon.

By TrackCheck · Updated 15 October 2026 · 5 min read

If you run Google Ads or GA4 on a UK online shop, you've probably been told you "need Consent Mode v2". Your cookie banner app may even have a toggle for it. But few store owners are told what it actually does, so it's hard to know whether yours is working.

This guide explains it in plain English, then shows you how to check it in a few minutes.

What Consent Mode is (and isn't)

Google Consent Mode is a way for your website to tell Google's tags (GA4, Google Ads, Floodlight) what a visitor agreed to in your cookie banner. The tags then adjust: with consent they work normally, and without consent they don't set cookies.

Two things it is not:

The four signals in v2

The original Consent Mode had two signals. Version 2 added two more, and Google requires all four for its advertising features to work fully for visitors in the UK and EEA, in line with its EU user consent policy.

SignalWhat it meansUsually tied to
ad_storageMay advertising cookies be stored?Marketing
analytics_storageMay analytics cookies (like GA4's _ga) be stored?Analytics
ad_user_dataMay user data be sent to Google for advertising?Marketing
ad_personalizationMay data be used for personalised ads such as remarketing?Marketing

Each signal is either granted or denied. A typical banner maps "Analytics" to analytics_storage and "Marketing" to the three ad signals.

The one thing that must be right: default first, then update

The most common broken setups get the order wrong. On every page load, this has to happen:

  1. Default. Before any Google tag runs, the page sets all four signals to denied for UK visitors.
  2. Banner loads. It either shows the choice to a new visitor or reads a returning visitor's saved choice.
  3. Update. The banner sends the visitor's choice to Google, both when they click and on every later page for returning visitors.

In code, the default looks like this. It must sit above your Google Tag Manager or gtag.js snippet, unless your banner's GTM template sets it for you:

window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'default', {
  'ad_storage': 'denied',
  'analytics_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'wait_for_update': 500
});

And when someone accepts everything, the banner sends:

gtag('consent', 'update', {
  'ad_storage': 'granted',
  'analytics_storage': 'granted',
  'ad_user_data': 'granted',
  'ad_personalization': 'granted'
});

If the default comes after GA4 has already fired, or the update only happens on the click and not on later visits, your data and your compliance both suffer. Speed and caching plugins that defer or delay JavaScript are a frequent cause, especially on WordPress.

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

Basic vs advanced mode

There are two ways to implement Consent Mode. Neither is "the right one" for everyone.

Advanced mode recovers more data in Google's reports, but it means some information is sent to Google before or without consent, which some businesses aren't comfortable with. Google also applies minimum traffic thresholds before GA4's behavioural modelling kicks in, so a small shop may not see modelled data in GA4 either way. If you're unsure, basic mode is the conservative choice. Whether the trade-off is right for your business is a decision for you (and your adviser), not your banner app's default setting.

What changes in your reports

Once Consent Mode is working, GA4 will show fewer users, sessions and purchases than your store actually had, because visitors who reject analytics aren't measured (or are only modelled). That's expected. Your Shopify or WooCommerce orders remain the source of truth for sales. If the gap looks too big, our guide to why GA4 revenue doesn't match Shopify orders explains how to tell normal consent loss from broken tracking.

How to check yours in 5 minutes

  1. Open a private window and go to tagassistant.google.com. Connect it to your store's URL.
  2. Before clicking the banner, open the first event and select the Consent tab. You should see all four signals as denied under "On-page default".
  3. Click Accept all. The next events should show an "On-page update" with all four granted.
  4. Repeat in a fresh private window with Reject all: the update should keep everything denied.
  5. Close the tab after accepting and reopen your site in the same window. The saved choice should be applied straight away, with no burst of "denied" hits.

Prefer the Network tab? Filter for collect and look at the gcs parameter on Google requests: G100 means ads and analytics are both denied, G111 means both are granted, G101 means only analytics is granted, and G110 means only ads is granted.

Common mistakes

Next steps

If you're on WooCommerce, our WooCommerce consent setup guide walks through plugins, GTM and caching. For a quick health check of any store, run the 10-minute cookie consent audit.

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.