Conversion Tracking for Ecommerce: Where to Start and What to Ignore

Conversion tracking on an ecommerce store fails in a boring, repeatable way. The pixels fire, the dashboard fills up, and the numbers disagree with Shopify by 20 percent. Nobody notices until a campaign gets scaled on a purchase count that never happened. I have fixed this on 303 jobs, and the order I fix it in has not changed in four years.

This page is the map for everything else I have written on tracking. If you only read one section, read the order of work below, because most stores spend money on the wrong layer first.

The order of work that actually holds

Every tracking rebuild I do runs in the same five steps. Skipping one of them is why a setup that looked fine in March is quietly wrong by June.

  1. One source of truth for the order. Shopify, WooCommerce or whatever the store runs on decides what a sale is. The ad platforms are downstream copies, never the reference.
  2. A data layer that pushes the same event names everywhere. If the theme pushes addToCart and the app pushes add_to_cart, you have two events and half the data.
  3. GA4 as the hub, with ecommerce parameters on every event that carries money: value, currency, items, transaction_id.
  4. Server-side delivery for the platforms that spend real budget. Meta first, Google Ads second, TikTok and Pinterest only if the store actually runs them.
  5. A test routine that proves each event before a campaign depends on it. Not once at launch. Every time the theme changes.

The order matters because each step assumes the one before it is clean. A server-side container sitting on top of a broken data layer just moves wrong numbers faster.

The four setup routes, and who each one is for

RouteWhat it isBest forWhere it breaks
Native platform integrationShopify or WooCommerce sends events straight to the ad platformOne store, one ad platform, standard funnelLimited event control, no custom parameters, weak on COD and third-party checkouts
Web GTM onlyEverything through the browser containerContent sites, lead forms, simple storesBrowser restrictions and consent eat 10 to 30 percent of purchase events
Server-side GTMYour own tagging server receives the hit and forwards itSeveral platforms, custom logic, first-party cookiesNeeds hosting, monitoring and someone who reads the logs
Direct API buildYour backend calls the platform API itselfCustom stacks, CRM-driven lead flow, offline conversionsYou own the payload, the retries and the schema changes

Most stores I audit have two of these running at once by accident, which is worse than having only one. Two routes means duplicate purchases, and duplicate purchases mean the platform optimises toward a number that does not exist.

The five numbers that tell you it is broken

You do not need a formal audit to find the problem. These five comparisons find it in about ten minutes on most accounts.

  • GA4 purchases against Shopify orders for the same seven days. A gap over five percent needs an explanation, not a shrug.
  • Revenue, not just count. A purchase event with no value inflates the conversion rate and hides the revenue problem.
  • Meta Events Manager: server and browser events for the same purchase, both visible with a shared event_id. One without the other means deduplication is not configured.
  • Event Match Quality in Meta. Under 6 with a working checkout usually means customer parameters are missing, not that the pixel is old.
  • Consent mode in GA4. If denied traffic is missing entirely instead of modelled, the tag is firing before consent, and your EU numbers are fiction.

What I would fix first on a store doing under 500 orders a month

Below that volume, server-side GTM is usually the wrong first purchase. The honest priority is a clean GA4 ecommerce install through one container, correct purchase value, and a native Meta integration with maximum data sharing. That covers most of the gap. Move to a server container when you run three or more platforms, when you need custom parameters, or when purchase events are being lost at a rate that costs more than the hosting.

I have watched stores buy a server-side setup, a consent tool and a dashboard subscription in the same month, then wonder why the numbers still disagree. The setup was never the bottleneck. The event definition was.

Where to go next, depending on your stack

These are the guides I send clients, in the order I send them.

What good looks like after a rebuild

The GA4 purchase count lands within three to five percent of Shopify orders. Meta shows browser and server events for the same purchase, deduplicated. Every event that carries money has value, currency and items. Consent is passed to both containers. Changes to the theme do not silently kill a tag, because there is a test routine that catches it in a day instead of a quarter.

None of that is exotic. It is simply the part of tracking nobody enjoys doing, which is why it stays broken.

If you want a second pair of eyes on an account you inherited, I run a read-only audit of the whole stack: tracking packages start at $199. If you would rather talk it through first, a $19 15-minute call is usually enough to tell you whether the problem is the install or the event definition.

Want this set up properly in your own account? Fixed-price packages from $199, read-only audit first — or ask one question on a $19 call.

Talk to NasimQuick call from $19
Book a Call
🔒 Secure checkout
Loading secure checkout…
Payments by Stripe · Cards, Apple Pay, Google Pay