Consent

Which Google Consent Mode Is Your Site Actually Running?

Most practice websites cannot answer this, and the answer is not a setting anyone picked. It is decided by how the tags were installed. How to tell, what each mode costs you, and why we default to the stricter one.

Consential Research is the editorial desk at Consential.io. Articles are drafted against primary sources, listed at the end of every piece, and reviewed by Joe Garraffo before publication.

Article title card reading Which Google Consent Mode Are You Running, from Consential Research

Most practice websites cannot answer which Google Consent Mode they are running, and the reason is that nobody chose it. It is not a setting in a dashboard. It is a property of how the tags were written into the page, decided years ago by whoever installed them, and frequently different for different tags on the same site.

Working out which one you have takes about two minutes and changes what you can honestly say about your own site. It also explains something that otherwise looks inexplicable, which is why two practices running what appears to be the same consent banner, from the same vendor, configured by the same agency, can behave completely differently when you actually watch the network.

Two modes, one real difference

Google Consent Mode v2 has two implementation patterns, and the difference is not what the banner looks like. It is whether Google's tag is on the page before the visitor decides anything.

Advanced. The tag loads on page load. Before consent it sets all four v2 parameters to denied and sends cookieless pings: no identifiers, no cookies, just a signal that a page was viewed. When the visitor consents, a second call flips the relevant parameters to granted and normal measurement begins. Those pre-consent pings are what Google uses to model the conversions it could not observe directly.

Basic. The tag never loads until the visitor consents. Nothing is sent beforehand, cookieless or otherwise. When consent arrives, the tag loads and fires normally. There are no pre-consent pings, so there is nothing to model from.

Both are legitimate

Neither pattern is a workaround or a misconfiguration. Google documents both in its consent mode overview. They trade differently, and the trade is the whole decision: Advanced preserves modelled measurement at the cost of transmitting before consent, Basic transmits nothing at the cost of the modelling.

Which Google Consent Mode you have is an install property

This is the part that surprises people. You do not pick Basic or Advanced anywhere. You pick it by how the tag is written into the page.

A tag written the conventional way is fetched by the browser immediately, which means you are running Advanced at best:

<script async src="https://www.googletagmanager.com/gtag/js?id=G-YOUR-ID"></script>

A tag written as an inert placeholder is not fetched at all until a consent manager rewrites it, which is Basic:

<script type="text/plain" data-consential-category="analytics" data-consential-src="https://www.googletagmanager.com/gtag/js?id=G-YOUR-ID"></script>

The second pattern works because a browser will never execute a script whose type is not a recognised JavaScript MIME type. The consent manager finds those placeholders and converts them into real script tags once the matching category is granted. It is the standard client-side blocking technique, and its useful property is that blocking becomes independent of load order.

ADVANCED Tag loads immediately Four params set to denied Cookieless pings sent Consent flips params to granted Keeps modelled conversions Transmits before consent BASIC Tag held as a placeholder type="text/plain", never executed Nothing sent at all Consent rewrites it to a real tag Loses modelled conversions Transmits nothing before consent
The difference is decided in the markup, not in a dashboard, and it is visible by viewing source.

Why most sites run both Google Consent Mode patterns at once

Because the mode is a property of each individual tag rather than of the site as a whole, a single practice website routinely ends up running both patterns simultaneously without anyone having decided to.

A GA4 tag converted to the placeholder convention is blocked. A Meta pixel injected directly by a plugin, that nobody converted, is not blocked at all, and no consent manager can intercept what it never had a chance to rewrite. Mixed installs are the norm rather than the exception, and usually nobody involved knows it.

Per tag Not per site. Every script has its own answer, which is why a single overall claim about your consent posture is usually wrong in one direction or the other.

This is also the mechanism behind a claim worth internalising: a consent banner is not evidence of blocking. A banner can be present, correctly worded and fully functional while the tags behind it fire on page load regardless of what the visitor clicks. The general version of that argument is in consent mode is not tag blocking, and where the unconverted tags tend to hide is covered in where tracking tags actually load.

ONE SITE, ONE BANNER, FOUR DIFFERENT ANSWERS GA4, converted to a placeholder by the consent manager BLOCKED Tag manager container, also converted BLOCKED Meta pixel, injected by a plugin, never converted NOT BLOCKED Chat widget, hardcoded in the theme footer NOT BLOCKED The banner is identical for all four. Only conversion to a placeholder decides which are actually governed.
A typical mixed install. Nobody chose this arrangement; it is the residue of who installed what and when.

The reason mixed installs persist is that converting a tag requires somebody to know it exists. A consent manager can only rewrite the placeholders it was given, and a plugin that writes its pixel directly into the page at render time never presents one. So the tags most likely to be governed are the ones a technical person deliberately handed over, and the tags least likely to be governed are the ones that arrived through a settings screen somebody filled in once.

Why we default to Basic

Consential sets all four parameters to denied in every US jurisdiction, including states where a granted default would be permitted, and holds Google's tag until the visitor acts.

The reason is context. A cookieless ping carries no identifiers, which on a retail site makes it genuinely low risk. On a practice site the ping still carries the page address, and the page address may name a procedure. The identifier is absent and the health context is not, which is a materially different situation from the one Advanced was designed around. That reasoning is developed in Consent Mode v2 for healthcare advertisers.

The cost is real and worth stating plainly. Basic gives up modelled conversions, so reported conversion counts in Google Ads will be lower than under Advanced. That is a measurement loss, not a performance loss: the same patients still book, and fewer of them are attributed. For practices where most conversions are phone calls or form submissions handled server side, the practical gap is smaller than the headline suggests, because the modelling was estimating browser-side conversions that were not the whole picture anyway.

There is a second-order effect worth anticipating, because it causes alarm when nobody warned about it. Smart bidding strategies optimise against reported conversions, so a switch from Advanced to Basic reduces the signal those strategies receive and campaigns typically need a learning period to resettle. The right way to make the change is deliberately, at a point in the month where a fortnight of noisier performance is tolerable, with the date recorded so that a later dip is attributed correctly rather than chased as a campaign problem.

The alternative framing some practices prefer is that the modelled numbers were never patients in the first place. A modelled conversion is an estimate of an event nobody observed, which is a legitimate input to a bidding algorithm and a poor input to a conversation about how many consultations the practice booked. Losing them removes an estimate rather than a patient, and practices that reconcile ad platform figures against their actual calendar tend to find the reconciliation easier afterwards, not harder.

How to check your own site in two minutes

Two checks, and neither needs access to anyone's implementation.

First, view source and search for googletagmanager.com. If you find a conventional script tag with a live src, that tag is not blocked. If you find type="text/plain" with the source in a data attribute, it is. Do this for every third-party script you find, not just the first, because the answer varies per tag.

Then check behaviour rather than markup. Open a private window with the network panel open, load a treatment page, and touch nothing. Requests appearing before you interact with the banner tell you what is actually happening, which is the authoritative answer when the markup is ambiguous. Google's implementation guide describes what a correctly wired default call should look like if you want to compare.

Behaviour beats markup whenever the two disagree, and they disagree more often than you would expect. A tag can be correctly written as a placeholder in the theme and then injected a second time by a plugin in its original form, so the source shows the careful version and the network shows the careless one. A caching or optimisation layer can combine scripts and defeat a rule that identified them by filename. In both cases the markup is telling you what somebody intended and the network is telling you what happened.

One last thing to check while you have the panel open: whether the requests stop after you decline. Some implementations block correctly before a decision and then release everything on any interaction, including a dismissal, which converts a considered no into an accidental yes.

Whichever mode you conclude you are running, the useful output of this exercise is the list of tags that turned out not to be governed by anything. That list is almost always longer than expected, and it is what consent gating is for.

Key takeaways

  • Advanced loads the tag immediately and sends cookieless pings before consent. Basic holds the tag entirely until consent arrives.
  • Which one you have is decided by how each tag is written into the page, not by any dashboard setting.
  • The mode is a property of each individual tag, so most sites run both at once without anyone realising.
  • A consent banner is not evidence of blocking. It can be present, correct and fully functional while tags fire regardless.
  • We default to Basic because a cookieless ping still carries a page address, and on a practice site that address may name a procedure.
  • Basic costs modelled conversions. That is a measurement loss rather than a performance loss, and it is smaller when conversions are handled server side.

Common questions

What is the difference between Google Consent Mode Basic and Advanced?

In Advanced, the Google tag loads on page load and sends cookieless pings before consent, which feed conversion modelling. In Basic, the tag does not load at all until the visitor consents, so nothing is sent beforehand and there is nothing to model from. Both are legitimate implementations that trade differently.

How do I choose between Basic and Advanced?

You do not choose it in a dashboard. It is determined by how the Google tag is written into the page. A tag that the browser fetches immediately is Advanced at best; a tag held as an inert placeholder until a consent manager releases it is Basic.

Can a site be running both at once?

Yes, and mixed installs are the norm. A GA4 tag converted to the placeholder convention is blocked while an advertising pixel injected directly by a plugin is not blocked at all. Usually nobody involved is aware of the split.

Sources

  1. Consent mode overview, Google Tag Platform documentation Google's description of the two implementation patterns and cookieless pings
  2. Set up consent mode on websites, Google Tag Platform documentation Implementation reference for default and update calls

Find out which mode you are actually running

The free scan loads your pages the way a visitor does and reports which tags fire before anyone consents to anything.