Ecommerce tracking audit: the checks that change a budget decision

An ecommerce tracking audit should start with the numbers you spend money on. Reconcile revenue, then deduplication, then consent, then the rest.

Tracking and data
3 November 20266 min read

Most audit checklists walk through tags, triggers and duplicates. That is useful. It is also tag housekeeping. We did not find one that ties each check to a simple question: would this fault change what you spend? This piece orders the checks by that test.

If you would rather have someone else run it, see our ecommerce tracking audit service. Our free tracking audit is also an option.

Which tracking errors actually change a spend decision?

A tracking fault matters when it moves a number that moves a budget. A misnamed event in a report nobody reads is untidy. Purchases counted twice in the report that sets next month's spend is expensive.

So rank faults by what they distort:

  1. Revenue and orders. If reported purchases do not match real orders, every ROAS and CPA built on them is off.
  2. Duplicates. The same order counted more than once inflates the platform that counts it.
  3. Consent signals. If consent choices are not passed on, platforms may see less, or the wrong, data.
  4. Everything else. Naming, UTM hygiene, internal traffic filters, event parameters. Fix these, but later.

That order is our view, not an industry standard. It follows one rule: the closer a fault sits to money, the earlier it gets checked.

Audit the numbers you make decisions on first, not every tag.

How do you reconcile Shopify, GA4 and ad platforms?

Treat shop orders as the reference for revenue. Ad platforms and analytics tools are estimates built around that record. They attribute orders by their own rules, so they will not match the shop exactly. They should not drift far from it without a reason.

The reconciliation, in order:

  1. Pick one period and one definition of revenue. Say whether it includes tax, shipping, discounts and refunds.
  2. Pull orders and revenue from the shop for that period.
  3. Pull purchases and revenue from Google Analytics 4 basics and from each ad platform.
  4. Compare on the same attribution window. A platform with a longer window will claim more by design.
  5. Put the three side by side. Write down the gap per source, and whether it is stable or moving.

A stable gap is a property of counting rules. A gap that jumps after a site release, a banner change or a new tag is a fault. Vendor guides on why numbers never match list causes such as differing windows and tracking loss, and they sell fixes for them1. Read them for the causes. For the full diagnosis of one common gap, see Meta ROAS vs Shopify revenue.

Check the basics on the Google side as well. Conversion actions feed bidding, so Google Ads conversion tracking should be built on the same purchase event GA4 counts. Otherwise the two drift for reasons nobody wrote down.

Is deduplication of pixel and server events working?

A tracking pixel sends visitor actions from the browser to an ad platform. The Conversions API (CAPI) sends events from the advertiser's server instead. Meta describes it as a connection between an advertiser's marketing data and Meta's systems for targeting and measurement2. Running both is a normal setup. It also means one purchase can arrive twice.

Event deduplication is the fix. Meta's developer documentation says an event arriving from both sources is counted once when the event name and event ID match and the second copy arrives no more than 48 hours after the first3. If the IDs differ or are missing, this method cannot match the two copies. Meta documents a fallback based on browser and user identifiers, but it works in narrower cases3.

What to check:

  • Does every purchase event from the browser carry an event ID?
  • Does the server event carry the same ID and the same event name?
  • Does the platform's own diagnostics view show the two sources as matched?

Meta's Conversions API overview also tells advertisers to confirm that events are received, deduplicated and matched correctly2. A purchase count in Ads Manager far above shop orders is the symptom to look for. The detailed fix is in Meta pixel and Conversions API deduplication. If you are weighing the server route itself, read is server-side tracking worth it. Server-side tracking means collecting data on a server you control and passing it on, instead of running every tag in the browser.

What gap between systems is normal, and what isn't?

You will find "normal" gap ranges online. Treat them as rules of thumb. The ones we found come from vendors and have no primary source behind them1. We do not quote a number here, because we cannot stand behind one.

Use three tests instead:

  • Is it stable? A steady gap points to counting rules. A moving gap points to a fault.
  • Does it move with a release? Gaps that change the day a tag, theme or banner changed are tracking problems.
  • Does it differ by event? If purchases match and add-to-carts do not, look at that event.

A gap you can explain is fine. A gap you cannot explain is the work.

What do you fix first, and who owns it?

Fix in the order of the money, and name an owner for each item. An audit without owners tends to end at "someone should look at this".

PriorityCheckTypical owner
1Revenue reconciliation: shop vs analytics vs platformsHead of Growth or analytics lead
2Duplicate purchase eventsDeveloper or tag manager owner
3Consent signals reaching tagsDeveloper with the privacy owner
4Campaign tagging and namingPaid media team

For campaign tagging, UTM parameters tell analytics where a visit came from, and UTM naming conventions decide whether your channel report can be read at all. It is boring work. It is also why some channel reports say "direct" far too often.

Then re-run the reconciliation. An audit with no before and after is a document, not a fix.

How often should you audit ecommerce tracking? We know of no sourced standard interval. Our view: repeat the revenue reconciliation every month, and run the full audit again after any change to tags, theme, checkout or the consent banner.

For ZFD: We run the audit in this order because a fault near the money costs more than a fault in a tag name. We also say plainly that a clean audit does not tell you which sales the ads caused. That is a separate question, covered in incrementality.

Sources

  1. Why Meta, Google, GA4 and Shopify Never Match (TrueROAS)Vendor
  2. Conversions API overview (Meta for Developers)Primary source
  3. Handling Duplicate Pixel and Conversions API Events (Meta for Developers)Primary source
  4. About consent mode (Tag Manager Help)Primary source
  5. EU user consent policy (Google Ads Help)Primary source

Key takeaways

  1. Audit the numbers you make decisions on first, not every tag.
  2. Shop orders are the reference for revenue. Platforms and analytics are estimates around it.
  3. Duplicate events and broken consent signals are high-impact faults, and neither raises an error message.
  4. "Normal" gaps quoted online are rules of thumb without a primary source.
  5. A clean audit does not prove incrementality. It makes measuring it possible.

Next step

Have a budget decision that depends on these numbers? Book a call about your budget decision. Prefer to start with the tooling? See our Analytics & tracking service.