Real run

Shopify GA4 Purchase Tracking Check

Sample 1 · 2026-10-30 · Grok Bot executor subagent, builder batch 6 (model family not disclosed)

Bot page

What I matched

Shopify orders O1 to O20 and GA4 rows G1 to G16, October 12 to October 18, 2026. Join key: GA4 transaction ID = Shopify order number without the #, as you said. Expected value per order = subtotal minus discounts, the Google and YouTube app rule since April 24, 2025 (your GA4 tag comes from that app). Shipping and tax are not part of the expected value.

Match table

Order Number Sales channel Expected value GA4 row GA4 revenue Gap (GA4 minus expected) Result
O1 #1201 Online Store 64.00 G2 64.00 +0.00 matched
O2 #1202 Online Store 106.20 G3 106.20 +0.00 matched
O3 #1203 Online Store 42.00 G4 42.00 +0.00 matched
O4 #1204 Online Store 77.40 G5 77.40 +0.00 matched
O5 #1205 Online Store 54.00 none no purchase event
O6 #1206 Online Store 132.00 G6 132.00 +0.00 matched
O7 #1207 Point of Sale 38.00 none no purchase event
O8 #1208 Online Store 68.40 G7 68.40 +0.00 matched
O9 #1209 Online Store 48.00 G8 48.00 +0.00 matched
O10 #1210 Online Store 95.00 G9 190.00 +95.00 duplicate (event count 2)
O11 #1211 Online Store 57.60 G10 57.60 +0.00 matched
O12 #1212 Online Store 58.00 G11 64.95 +6.95 value gap
O13 #1213 Online Store 110.00 G12 110.00 +0.00 matched
O14 #1214 Point of Sale 72.00 none no purchase event
O15 #1215 Online Store 44.00 G13 44.00 +0.00 matched
O16 #1216 Online Store 115.20 none no purchase event
O17 #1217 Online Store 66.00 G14 66.00 +0.00 matched
O18 #1218 Draft Orders 216.00 none no purchase event
O19 #1219 Online Store 52.00 G15 52.00 +0.00 matched
O20 #1220 Online Store 88.20 G16 88.20 +0.00 matched

GA4 rows with no matching order in the Shopify export:

GA4 row Transaction ID Date Revenue
G1 1199 Oct 12 46.00

Notes on the flagged rows: - #1210: event count 2 and revenue 190.00 against 95.00 expected. One order logged twice. - #1212: gap +6.95, the same as that order's shipping. The revenue looks like it includes shipping, which the app rule does not. My own reading; confirm it. - #1205 and #1216: Online Store orders with no purchase event. - #1207, #1214 (Point of Sale) and #1218 (Draft Orders): no event. Whether these channels send a purchase event is not in my saved sources, so this is a question, not an error. - 1199: an event dated Oct 12 for an order outside the export. It may be an order placed before the range or a test order; I cannot tell from here.

Totals

Match share = matched Online Store orders / Online Store orders.

Item Count
Shopify orders 20
Online Store orders 17
Matched to a GA4 row 15
Online Store orders with no event 2
Other channel orders with no event 3
GA4 rows with no order 1
Duplicate events 1
Value gaps over 0.01 (not counting the duplicate) 1
Match share 88.2%

These are 20 orders over 7 days, a small sample. The pattern can point to setup questions; it is not proof of how often each problem happens.

Setup questions

  1. Your theme.liquid still has a gtag.js snippet from 2023 next to the Google and YouTube app. Could that old snippet send its own purchase event? It might explain the double event on #1210 and the shipping in #1212, but I cannot confirm that from the exports.
  2. Is the store's private mode off? GA4 cannot track events while it is on. Your input does not say.
  3. For #1205 and #1216, did those buyers finish on the standard checkout, or on another path (for example a payment app redirect)?

Proposed checks (held)

# Check Status
1 Place one test order and count the purchase events GA4 records for it HELD
2 If the old gtag.js snippet sends purchase events, remove it from theme.liquid HELD
3 Ask Shopify support whether Point of Sale and Draft Orders send purchase events through the app HELD
4 Look up order 1199 in Shopify to see where it came from HELD

Questions for you

  1. Do you want GA4 to include Point of Sale and draft orders at all, or only the Online Store?
  2. Can you export Oct 11 orders too, so I can check transaction 1199?

Needs your decision

  • Any change to theme code, the app, or GA4: HELD until you approve.