Reconciling GA4, Meta and Shopify revenue: a practical checklist

Every ecommerce team eventually has the same meeting. Shopify says one revenue figure, GA4 says another, and Meta claims a third. Someone asks which is right, and the conversation goes in circles.

The first thing to accept is that they will never match exactly. Shopify records orders. GA4 records what its tag observed in the browser, subject to consent and blockers. Meta reports conversions it attributes to ads, using its own attribution windows. Those are different questions.

The goal is not identical numbers. It is to understand the expected differences, remove the errors, and agree which source answers which question. This checklist is the order we work through it.

1. Start with Shopify as the order record

For questions about how many orders were placed and how much revenue was taken, Shopify is the source of truth. Pull orders for a fixed period and note what is included: taxes, shipping, discounts, refunds, test orders, draft orders and orders from other sales channels such as POS or marketplaces.

2. Compare like with like in GA4

  • Use the same date range and time zone as Shopify.
  • Check whether GA4 purchase revenue includes tax and shipping, and align the Shopify figure accordingly.
  • Exclude channels GA4 cannot see, such as in-person or marketplace orders.
  • Compare order counts as well as revenue. Large gaps in counts point to tracking issues; gaps only in revenue point to configuration.

3. Look for duplicate and missing purchases

Duplicate purchase events are common after theme changes, app installs or migrations to Shopify's customer events. Check for multiple purchase events with the same transaction ID. Missing events often come from checkout changes, consent configuration or pixels that fail silently. Test a real order end to end and watch every event fire.

4. Account for consent and blockers

If you use a consent banner, some visitors will decline analytics. Ad blockers and browser privacy features also reduce what client-side tags see. This is an expected, legitimate gap. Estimate it rather than trying to eliminate it, and configure consent mode correctly so platforms model the gap where they are designed to.

5. Treat Meta as an attribution view, not an order count

Meta reports conversions it attributes to ads within its attribution settings, including view-through conversions. That number is useful for comparing campaigns, but it is not designed to match orders. Make sure the Pixel and Conversions API share event IDs so purchases are deduplicated, and check event match quality in Events Manager.

6. Write down the definitions

Once the errors are fixed, document which source answers which question. For example: Shopify for revenue and orders; GA4 for on-site behavior and channel trends; Meta for comparing Meta campaigns against each other. Agree on these definitions with the agencies that report to you.

7. Monitor, do not just fix

Tracking breaks quietly. A simple daily or weekly comparison of order counts between Shopify and GA4, with an alert when the gap moves outside its normal range, catches problems before they distort a month of decisions. A BigQuery export makes this straightforward to automate.

When to get help

If the gap between Shopify and GA4 order counts is large and unexplained, or if purchase events have changed after a recent site update, it is usually worth a focused audit before any further budget decisions are made on the numbers. Tell us what you are seeing and we can suggest where to look first.