Skip to content

Shopify order reconciliation for GA4 and Meta

Find the Shopify orders GA4 and Meta never received.

TagGap matches every Shopify order with what your analytics and ad platforms reported, then names the purchases that went missing, were counted twice or were sent with the wrong value. Each one comes with the evidence and a fix.

  • Read-only
  • No customer data
  • No pixel to install
  • Free plan
TagGap dashboard: $4,812 of revenue unreported to Meta CAPI in 30 days, 91.4% of orders matched in GA4, 38 duplicates, and an alert that GA4 never received 212 orders since Oct 21.
The TagGap dashboard, shown with sample data from a demo store.

Your dashboards disagree. Nobody can tell you which orders.

  • Shopify says 1,240 orders. GA4 says 1,050.

    Some of that gap is normal: consent, ad blockers, POS sales. Some of it is a tag that stopped firing. In a dashboard they look identical.

  • Purchase tracking moved into checkout

    Since Shopify's August 26, 2026 cut-off for legacy Thank you page scripts, purchases fire from app pixels inside checkout, where no outside scan or browser extension can see them.

  • Bad data trains your ads

    Missing purchases make campaigns look worse than they are, and duplicates make them look better. Smart bidding optimizes toward whichever is wrong.

Order counts above are an illustration.

Free · no install · about 20 seconds

Is your Shopify tracking broken? Scan your storefront

Paste your store address to see which pixels and tags load, which load twice, and whether consent is defaulted correctly.

Public storefront only. No login, no install, about 20 seconds.

  • Pixels and tags

    Meta Pixel, GA4, Google Ads, TikTok and GTM containers with their IDs, plus server-side setups such as Elevar or Stape.

  • Double counting

    Tags loaded twice, purchase events without an event_id, and theme snippets that duplicate an app's pixel.

  • Consent defaults

    Whether Consent Mode defaults to denied before your banner loads, as Google and EU law expect.

Also free: check an ad link

See whether fbclid, gclid and UTMs survive every redirect between your ad and your page.

Check an ad link

How TagGap works

  1. Connect, read-only

    Install from Shopify, then connect GA4 and Meta with read-only permissions. Nothing in your tracking changes.

  2. Every order is matched

    GA4 purchases are matched to orders by transaction_id. Meta is compared day by day. Test, POS, draft and rebill orders are set aside.

  3. You get named orders and a fix

    See which orders are missing, duplicated or mis-valued, the likely cause, and a step-by-step guide. Get an alert when it changes.

Read how matching works

What the app shows you

GA4 · order by order

Every unmatched order, with proof

TagGap lists each Shopify order with no GA4 purchase, a duplicate, a wrong value or a late event. Open any order to see the ids it searched for, what was sent, and the fix guide for that exact problem.

  • transaction_id matched against order id, number and name
  • Same-value, same-hour fallback, clearly labeled
  • Copy the raw evidence as JSON for your developer
GA4 unmatched orders table: orders #10870 to #10859 with values, Shopify times and reasons such as No purchase event, Duplicate transaction and Value or currency missing.
Evidence for order #10870: no GA4 purchase with transaction_id 5121257090, #10870 or 10870; event ID not received; order value $15.74; Open fix guide button.

Meta · day by day

Meta gaps, without the guesswork

Meta only reports daily totals, so TagGap compares each day with your Shopify orders and lists the orders that carried a Meta click or browser id on days with a gap. They are marked probable, not confirmed, because that is what the data supports.

  • Revenue unreported to Meta, in dollars
  • fbp and fbc shown per order
  • Browser and server deduplication checks
Meta CAPI likely unreported orders: a notice that Meta reports daily totals only, then 38 orders such as #10870 for $107.69 marked Likely unreported (aggregate gap), Probable.

Diagnostics

The reason, not just a red number

Unmatched orders are grouped by cause with their count and value, so you fix the problem that costs the most first. A drop in the daily match rate is flagged the day it happens.

  • No purchase event, duplicate, value mismatch, missing currency, late event
  • Likely cause, for example a checkout tag lost in a migration
  • Email and Slack alerts
GA4 overview: likely cause Checkout tag lost after the Aug 26 migration; why orders are unmatched over 60 days, led by 212 orders with no purchase event worth $3,920; a daily match rate chart that drops for the last five days.

Ad links

Catch ad links that drop click ids

TagGap opens your ad destination URLs with test click ids and UTMs, follows every redirect and tells you where a parameter disappears, before it costs you attribution.

  • fbclid, gclid, ttclid and UTMs checked through each hop
  • Broken pages, redirect loops and missing tags
  • Free single-link check, no install: try it
Tracked links: add ad destination URLs or a CSV; the BFCM Meta prospecting link scores 25 Broken because the click ID and UTM parameters are lost on the way to the page.

Audit your tracking instead of guessing

TagGap does not replace your tracking. It checks it, including server-side setups, so you know whether the events you pay to send actually arrive. TagGap vs server-side tracking apps

TagGap compared with manual spreadsheet reconciliation and platform dashboards
What you needTagGapSpreadsheet exportDashboards side by side
Names each Shopify order GA4 never received Yes Partly, by hand No
Leaves out POS, test, draft and subscription orders Yes Partly, by hand No
Finds duplicate purchases and wrong values Yes Partly, by hand No
Explains the likely cause and links a fix Yes No No
Re-checks automatically and alerts you Yes No No
Changes your tracking setup No No No

Built to be safe to install

  • Read-only permissions

    Shopify read_orders, Google analytics.readonly and Meta ads_read. TagGap cannot edit your store, tags or campaigns.

  • No customer data

    No names, emails, phone numbers, addresses or IPs are requested or stored. Order data is deleted after 13 months, or when you uninstall.

  • A real company behind it

    Operated by Wells Software Consulting LLC in Chicago, with a published DPA and subprocessor list.

Every alert links to a fix guide Weekly, daily or hourly checks by plan

Simple pricing, in public

Start free. Upgrade when you want order-level evidence and faster checks.

  • Free

    $0 / month

    Free forever

    • No monthly order cap
    • 1 destination (GA4 or Meta)
    • Weekly check
    • 3 monitored ad links
    • Weekly tracking report
    • Email alerts
  • Starter

    $49 / month

    14-day free trial

    • Up to 1,000 orders a month
    • GA4 + Meta
    • Daily check
    • 25 monitored ad links
    • Everything in Free
    • Order-level evidence for every gap
  • Pro / Agency

    $299 / month

    14-day free trial

    • Up to 50,000 orders a month
    • GA4, Meta, Google Ads, TikTok
    • Hourly check
    • 500 monitored ad links
    • Everything in Growth
    • Up to 25 stores
    • API access

Prices in USD, billed through your Shopify invoice. GA4 and Meta are live today; Google Ads and TikTok comparisons are rolling out on Growth and Pro.

Compare plans

Questions merchants ask

Does TagGap change my tracking or install a pixel?

No. TagGap is read-only. It asks Shopify for read_orders only, Google for analytics.readonly and Meta for ads_read. It never edits your theme, pixels, Customer events, campaigns or ad accounts, so it cannot break anything that works today.

How is this different from a server-side tracking app?

Server-side tracking apps (for example Elevar, Littledata, Stape or TAGGRS) send events to GA4 and Meta. TagGap checks whether those events actually arrived, order by order. Keep the tracking setup you have and use TagGap to prove it works, or to find out exactly where it does not.

How does it work for Meta?

Meta only exposes daily purchase totals to apps, so TagGap compares daily counts and revenue with your Shopify orders. On days with a gap it lists the orders that carried a Meta click or browser id as likely unreported. It labels them probable, not confirmed, because Meta does not reveal which individual purchases it received.

Is some gap between Shopify, GA4 and Meta normal?

Yes. Consent choices, ad blockers, attribution windows and time zones mean the numbers rarely match exactly. The problem is that a normal gap and broken tracking look the same in a dashboard. TagGap separates them: it shows which orders are missing and the likely reason, so you can tell expected loss from a tag that stopped firing.

How much does TagGap cost?

There is a free plan for one destination with a weekly check. Paid plans are Starter at $49, Growth at $129 and Pro / Agency at $299 a month, each with a 14-day free trial. Billing runs through your Shopify invoice.

All questions

Find out which orders your tracking missed

TagGap is in Shopify App Store review. Get early access, or run the free scan now.