Skip to content
← Back to writing
Tracking·October 13, 2026·6 min read

What a GA4 and Google Tag Manager audit actually checks

Most tag audits start the same way. Someone puts the GA4 conversion count next to the ad platform's count, the two disagree by more than anyone can explain, and the question becomes which one is wrong.

Usually both are. A tag audit is how you find out by how much, and why.

The audit itself is not complicated. It is an inventory of what the site records, compared with what the business thinks it records. The gap between those two lists is the finding. I started my career running these and I still run them. The order below is the order I work in, because each step depends on the one before it.

Start with what is on the site

Before checking whether any tag works, list every tag. This step gets skipped because it sounds like paperwork, and it is where the first surprises are.

Open the Google Tag Manager container and export the full list of tags, triggers and variables. Then read the page source itself. Tags pasted directly into the site template do not appear in Tag Manager, and they are common on sites that have been through more than one agency or more than one redesign.

What turns up: a second Tag Manager container nobody remembers adding. A GA4 tag in the template and another in the container, both recording the same page view. A pixel for an ad platform the company stopped buying on two years ago, still collecting. Tags built for a campaign that ended, with triggers that still fire.

Every tag gets an owner and a purpose, or it gets removed. A tag nobody can explain is not harmless. It slows the page, it sends visitor data to an account nobody watches, and it will confuse the next person who tries to work out why a number is wrong.

Check that each event fires once

Now the tags that are supposed to be there. For each event, the question is whether it fires once, at the right moment, with the right details attached. Preview mode in Tag Manager and DebugView in GA4 show this as you click through the site.

The failures repeat from site to site.

Page views counted twice. The GA4 tag fires on page load, and a second trigger fires on the same page because the site changes the address without a full reload. Traffic looks healthy and engagement looks strange.

Forms recorded on the click. The tag fires when someone presses the submit button, not when the form goes through. Every failed validation counts as a lead. On a lead generation site this one error can be most of the gap between GA4 and the CRM.

Confirmation pages that count again. The purchase or sign-up event fires whenever the thank-you page loads. Reload it, reopen it from a browser tab the next day, or arrive from the confirmation email, and it records another conversion.

Purchases with no order ID. Without an ID attached to the event there is no way to find and remove duplicates later, in GA4 or anywhere else.

Compare how each platform counts a conversion

An event that fires correctly can still be counted three different ways. GA4 calls the events you care about key events. Google Ads and Meta each have their own conversion setup, with their own tag.

Check that all of them fire from the same trigger. When the GA4 key event fires on the confirmation page and the ad platform tag fires on the button click, the two will never agree, and no reporting work downstream fixes that.

Then check the counting rules. GA4 can count a key event once per event or once per session. Google Ads can count every conversion after a click or only one. Neither setting is wrong. They need to be chosen on purpose and written down, because a lead form should usually count once and a purchase should count every time.

Even with matching tags the platforms will not report the same totals, for reasons that have nothing to do with tagging. That is covered in why GA4, Google Ads and Meta never agree on conversions. The job of the audit is to remove the differences that are mistakes, so the ones that remain can be explained.

Check where the traffic says it came from

Conversions get credited to a source. If the source is wrong, the conversion count can be perfect and the report still misleads.

UTM parameters with no convention. One source written as Newsletter, newsletter and news-letter is three sources in every report. Pick one spelling, one letter case and one list of allowed values.

UTM parameters on internal links. A banner on your own homepage that links to your own sale page with campaign parameters replaces the real source of the visit with your banner. Paid search brought the visitor in, and the report credits the homepage.

Payment and booking providers shown as referrers. The visitor leaves for a payment page on another domain and comes back to confirm. Unless that domain is on the list of unwanted referrals in GA4, the payment provider gets credit for the sale.

Two domains treated as two visitors. If the marketing site and the checkout or booking site sit on different domains and cross-domain measurement is not configured, each visitor is counted twice and the second half of the visit looks like a referral.

Check what leaves the site

The last pass is about what the tags send, not whether they work.

If the site asks visitors for consent, the tags have to obey the answer. Open the site in a private window, refuse everything, and watch the network requests. Tags that fire anyway mean the banner is not doing what it says.

Then read the page addresses and event details that reach GA4. Email addresses and names turn up there more often than they should, usually carried in a link from an email campaign or left in the address after a form is submitted. Google's terms do not allow personal information to be sent to Analytics.

Write down what each ad platform receives. On most sites nobody has that list, and it is a question you want to be able to answer before someone outside the company asks it.

What the audit should hand back

An audit that returns eighty findings with equal weight has not finished the job. The output is a ranked list.

At the top: anything that sends wrong conversion numbers to an ad platform. Those platforms set bids from the conversions they receive, so a tag that double-counts is moving your budget toward the wrong clicks today.

Next: anything that makes the main reports wrong, such as duplicate page views or sources credited to the wrong channel. Last: the cleanup, the unused tags and the naming.

Then decide who fixes each item, and test again after the fix. A tracking setup drifts every time the site changes, so the list of tags and what each one is for should be kept, not thrown away when the audit ends. The next person who asks why GA4 and the ad platform disagree should be able to start from that document.

Free Checklist

Tag Audit Checklist

20 Checks Before You Trust the Numbers

Run this against your own site before you compare GA4 to an ad platform again. Each item is a yes or a no. Every no is a reason the numbers disagree.

Email only. No other fields.

If you would rather hand the audit to someone who has run them for ten years, it is the first step of the website tracking work. See website tracking →

Related reading

← Back to writing