Purchase Tracking Reconciliation

Compare your Shopify orders export against GA4 or Meta's purchase data to find what's missing or duplicated.

Describe the result you need. AI will set up the tool and ask for any missing details.

Configure with AI

Enter to submit · Shift + Enter for a new line

Sent to AI. Leave out passwords and private customer data.

Drop your Shopify orders export here or browse files

CSV up to 25 MB. It's read in your browser and never uploaded.

From GA4: Explore > a table with transaction_id. From Meta: Events Manager > Purchase event details, or your Conversions API log. The # in Shopify's order name is optional here.

Off includes refunded and pending orders too, which real ad platforms usually never saw a purchase event for.

How the check works

Export your orders from Shopify admin (Orders > Export), and pull the order numbers or transaction IDs your GA4 Explore report or Meta's Purchase event log shows for the same date range.

Upload the Shopify export here, paste the tracking data's order numbers (one per line), and the tool matches them by order number, flagging Shopify orders with no matching tracking event, and tracking entries with no matching order (often duplicates from a refreshed thank-you page, or a different date range).

What counts as a real problem

Some gap is normal: ad blockers, Safari's tracking prevention, and shoppers who close the tab before the thank-you page finishes loading all stop a browser pixel from firing. A match rate in the 90s is typical.

A gap over 5-10%, or one that's grown recently, usually points to something fixable: a pixel that only fires on checkout_completed with no server-side fallback, an app that duplicates the event, or a theme change that broke the pixel install.

Questions people ask

Where do I get the GA4 order numbers?

Build a GA4 Explore report with the transaction_id dimension over the same date range as your Shopify export, then export or copy that column.

What about Meta?

Events Manager's Purchase event details show order/transaction IDs, or pull them from your Conversions API delivery log if you run one.

Why would I have more tracking events than orders?

Usually duplicates (a refreshed thank-you page firing the pixel twice) or a date range mismatch between the two exports. The tool flags both separately.

Does this work for WooCommerce too?

It's built around Shopify's orders export headers (Name, Financial Status, Total). A WooCommerce order export with an order number column and similar headers may still work if you rename the columns to match.

Want this builtinto your store?

I'm Emmanuel, a Shopify and WooCommerce developer. If this tool pointed at something you'd rather have fixed for you (a faster store, cleaner product data, a migration, a custom feature), send me a note.

Emmanuel Asika

Emmanuel Asika

Shopify & WooCommerce developer, Dublin

I build and fix online stores: new builds, migrations, speed, SEO and the custom bits apps can't do.

hello@emmanuelasika.com

Last reviewed 30 September 2026.

Sources: Shopify Help: Export orders · Google: GA4 ecommerce events