Consent Mode v2 Lint for GA4 & Google Ads

Finds the consent-signal bugs that silently switch off Google Ads conversions and remarketing for EEA and UK traffic - in your source, before you ship.

Get the complete version $29

This page is the working piece. The full pack has everything below.

Finds the consent-signal bugs that silently switch off Google Ads conversions and remarketing for EEA and UK traffic - in your source, before you ship.

A freelancer's consent-mode setup or audit is commonly quoted at $400-$1,200; a full agency implementation at $1,200-$2,500+.

Buy the full version — $29
Want the full version?
Enter your email and we send the download link.
ENDEJAESPT

Find a tool

· ReadyStack

Worked example

Real numbers from this tool, line by line.

Consent Mode v2 Lint for GA4 & Google Ads

Eighteen findings in a twenty-two-line file. That is what this checker returns for a developer shipping GA4 and Google Ads tags to visitors in the EEA or the UK, run against a test file built from consent-mode mistakes that really ship.

None of those eighteen lines throws an error. That is the whole problem. Write adStorage instead of ad_storage, or true instead of the string 'granted', or region: ['EU'] when the region parameter accepts ISO 3166-2 codes only, and the browser accepts it, the page loads, the tag fires — and Google sets no consent state at all. There is no red line in the console and no warning in the network tab. The only symptom is a number going down somewhere else, weeks later.

That symptom got more expensive on 15 June 2026. Until then, two things jointly decided whether advertising data reached Google Ads: the Google Signals toggle in the GA4 property, and the ad_storage consent signal. Since that date they are separate. Google Signals now only governs behavioural reporting inside GA4, and ad_storage alone decides what reaches Google Ads. A loose consent implementation that was quietly carried by the old fallback now simply loses advertising data, on the day of the switch, with no notification.

The obvious tools do not catch this. Google Tag Assistant and the browser console inspect a page that is already deployed and already loading tags. They cannot read a consent block sitting in a feature branch, a component that only renders on one route, or a landing page nobody has opened in months. By the time a deployed-page checker can see the mistake, the mistake has already been live.

So the check belongs in the editor. Consent Mode v2 Lint carries 20 rules: 18 that read hand-written gtag(), HTML and JS — misspelled and camelCase consent keys, boolean, numeric and unquoted values where Google requires 'granted' or 'denied', invalid region shorthands, a wait_for_update under 500 ms or passed as a string, url_passthrough and ads_data_redaction switched off, dataLayer.push(['consent', ...]), 'defaults' and 'updates' command typos, a consent default that grants an advertising signal, allow_google_signals after the June 2026 change, leftover placeholder tag IDs, and anonymize_ip, which does nothing in GA4. Two more rules read a GTM container export: tags carrying no consent settings at all, and Google Ads conversion tags marked *No additional consent required*.

Every finding names the line and the correct value. Checking the file you have open is free and finished — all 20 rules, nothing withheld, no watermark and no trial clock — and it will also list every rule it carries, so you can see what was not tested. What the licence adds is scope: every file in the repository in one pass, an exportable CSV, JSON or HTML report to hand a client or a DPO, and machine-readable output so CI fails the build instead of production. A freelancer's consent-mode audit is commonly quoted at $400–$1,200.

15 seconds — what it actually does

Questions people ask

What does Consent Mode v2 Lint actually do?

It reads your gtag or GTM code and reports consent-signal mistakes that browsers accept silently. It catches misspelled and camelCase consent keys, boolean or unquoted values where Google requires the strings 'granted' and 'denied', invalid region codes, a too-short wait_for_update, and consent defaults that grant advertising signals. Twenty rules, each reporting a line number and the correct value.

Who is this for?

Web developers, freelancers and agencies who ship GA4 or Google Ads tags to visitors in the EEA or the UK. It is aimed at whoever owns the tagging code in the repository rather than the marketer who owns the Google Ads account, because these mistakes live in source files and branches, not in the ad platform interface.

Why can't I just use Google Tag Assistant or the browser console?

Tag Assistant and the console inspect a page that is already deployed and already loading tags. They cannot read a consent block sitting in a feature branch, a component that renders on one route, or a landing page nobody has opened in months. This runs against source files in your editor, before the code ships and before data is lost.

What is free and what does the licence add?

Free checks the file you have open, or just the lines you select, against all twenty rules, and lists every rule so you can see what was not tested. Nothing is watermarked or time-limited. The licence widens the scope: every file in the repository at once, an exportable CSV, JSON or HTML report, and machine-readable output for CI.

What does this cost compared with hiring someone?

The licence is $29 once, with a 7-day full refund. A freelancer's consent-mode setup or audit is commonly quoted at $400-$1,200, and a full agency implementation at $1,200-$2,500 or more, depending on how many tags, platforms and consent categories the site uses. The free tier stays free and is not time-limited.

Ask about this tool

One question, answered by the person who built it. Your email only if you want the answer sent.