AuditTag

How to audit your marketing tracking: the complete checklist

By Sam ParkinsonUpdated 18 September 202611 min read

The short answer: a tracking audit checks five things, in this order. What is installed. Whether the key events fire. Whether they carry the right values. Whether they fire once. Whether the platforms agree with your real orders.

Most broken tracking fails at the first or the last step: a tag nobody knew was there, or a platform reporting a number nobody compared against the order system.

A website can look completely healthy while the data underneath it is wrong. The ads keep running, the dashboards keep loading, and a conversion quietly stops being counted. This is the audit we run, written down so you can run it yourself.

Before you start: write down what "right" means

You cannot audit tracking against nothing. Spend ten minutes writing a one-page tracking plan, even a rough one:

If you find you cannot answer the third point, that is already your first finding. Tracking that nobody can describe is tracking that nobody will notice breaking.

Step 1: inventory every tag on the site

Open the site in a clean browser profile with no extensions that block scripts, and list every marketing and analytics tag you can find:

  1. View the page source and search for G- (GA4), GTM- (Tag Manager), AW- (Google Ads), fbq( or fbevents.js (Meta), and UA- (the retired Universal Analytics).
  2. Open developer tools, go to the Network tab, reload, and filter for collect, google, facebook, tiktok. This catches tags that load dynamically and never appear in the source.
  3. If you use Tag Manager, open the container and list every tag and its trigger. Paused and forgotten tags are common.
  4. Check the platform's own integrations (Shopify's apps and sales channels, a WordPress plugin) which often install tags without anyone touching code.

You are looking for three failure patterns: the same platform installed twice (a hardcoded GA4 plus a GA4 in Tag Manager plus a platform integration), a platform you pay for with no tag at all, and dead tags such as Universal Analytics, which Google stopped processing in 2023.

Want step 1 done for you? AuditTag reads your public pages and lists which of GA4, Tag Manager, Google Ads, Meta Pixel and legacy Universal Analytics it can detect, in about a minute. Run a free audit →

Step 2: complete one real test purchase per platform

Presence is not proof. The only way to know the purchase event works is to buy something and watch it arrive. Use a discount code or a low-value product and refund it afterwards. With the order in progress, have these open:

Walk the whole path: product page, add to cart, checkout, payment, confirmation. For each platform, write down which events arrived and which did not. A path that goes view_item, add_to_cart, begin_checkout and then nothing is the single most common result, and it means the purchase is not connected to the checkout.

Step 3: check the payload, not just the event name

An event that arrives empty is almost as bad as one that never arrives. Click into the purchase event on each platform and check:

FieldWhat to checkWhat breaks if it is wrong
valuePresent, a number, equals the order total you expect (with or without tax and shipping, consistently)Revenue reports £0; value-based bidding optimises on nothing
currencyPresent, a three-letter ISO code such as GBPGA4 can drop the revenue entirely
transaction_idPresent, unique, matches the real order numberDuplicates cannot be removed; reconciliation is impossible
itemsNon-empty, each with an id, a name and a numeric priceProduct reports are empty even when totals look fine
event_id (Meta)Present and identical on the browser and server eventBrowser and Conversions API events are both counted

The classic silent bug is a price or value sent as a string, "49.99" instead of 49.99. It looks right to a human and is wrong to the platform. dataLayer testing covers how to catch this systematically.

Step 4: look for duplicates

Double counting is worse than under-counting, because it flatters the exact metric you scale spend on. Signs of duplication:

Step 5: test with consent in its default state

If the site shows a cookie banner, run the test purchase again in a private window without accepting, and once more after rejecting. Record what each platform receives. Two things can be wrong: tags firing before consent when they should not, or nothing at all being sent when your setup (for example Google Consent Mode) is meant to send cookieless signals. Testing only after clicking "accept" hides both.

Step 6: reconcile against real orders

Pick a closed window, such as last week, and compare the order count and revenue in your store against GA4, Google Ads and Meta for the same dates and timezone. Expect differences, and know why each exists:

A stable gap you can explain is fine. A gap that changed suddenly, or a platform that shows more sales than you made, is a fault. Note the date it changed and check what was deployed that day.

Step 7: check what happens after a change

Almost every tracking failure has the same origin: something else changed. A theme update, a new app, a rebuilt checkout, a consent banner update, a Tag Manager publish. Finish the audit by writing down how you will know next time. At minimum, repeat step 2 after every change to the purchase path. Conversion tracking QA turns this into a repeatable test plan, and tracking monitoring covers automating it.

The checklist in one place

  1. Tracking plan written: platforms, events, install method, source of truth.
  2. Every tag inventoried; no duplicate installs; no dead Universal Analytics.
  3. Every platform you pay for has a tag.
  4. Test purchase: purchase arrives in GA4, Meta and Google Ads.
  5. Payload: value, currency, transaction_id and items present and correctly typed.
  6. Exactly one purchase per order on every platform; confirmation-page refresh does not re-send.
  7. Consent: default, accepted and rejected states each behave as designed.
  8. Reconciliation: gaps against real orders are stable and explained.
  9. A named trigger for re-testing after every change.

How AuditTag handles it

Doing this by hand once is manageable. Doing it after every deploy, across every template, is where it stops happening. AuditTag automates the parts that can be automated honestly, and is explicit about the parts that cannot.

What AuditTag checks

  • Which of GA4, Tag Manager, Google Ads, Meta Pixel and Universal Analytics are detectable on your public pages (free audit)
  • Missing analytics, a missing conversion pixel, and Universal Analytics left running alone
  • Captured ecommerce dataLayer events against a JSON Schema: value, currency, transaction_id, items (Guardrails)
  • Re-checks on a schedule and after deploys, alerting only when something regresses (Guardrails)

What this doesn't prove

Detecting a tag in a page's HTML does not prove the purchase event fires in checkout, and tags loaded through a server-side container or a platform's own pixel system may not be detectable at all. A test order (step 2) is still the proof. Guardrails is in early access, and the first sites are watched hands-on while the automation ships.

Start with step 1 on your own site

The free audit lists the tracking it can detect on your public pages and flags the gaps, in about a minute. No account, no card, nothing installed, and it never touches your site.

Run a free audit →

Questions people ask

What is a tracking audit?

A tracking audit is a structured check that the analytics and advertising tags on a website are installed once, fire on the right events, send the right values, respect consent, and agree with the business's own records. It answers one question: can you trust the numbers your marketing decisions are based on?

How often should I audit my tracking?

Do a full audit once, then re-test the purchase path after every theme change, app install, checkout change, consent banner change or tag manager publish. Those are the moments tracking breaks. A full audit once a quarter catches slower drift; continuous monitoring replaces the need to remember.

How long does a tracking audit take?

A focused audit of one ecommerce site, covering tag inventory, one end-to-end test order per platform and a reconciliation against orders, takes a competent person half a day to a day. Automated presence checks take about a minute, but they only tell you what is installed, not whether it fires correctly.

What is an acceptable gap between GA4 and my store's orders?

There is no official figure. Some gap is normal because of ad blockers, consent refusals and processing delay. What matters is that the gap is stable and explainable. A sudden change in the gap, a gap that grows over time, or zero revenue is a tracking fault, not noise.

More tracking guides