How to reconcile Google Ads against your store's order table
This is the check we run first on every account, written out so you can run it without us. It takes about thirty minutes and needs two numbers: what Google Ads says it produced, and what your store's order table actually shows. The gap between them is the only honest measure of whether your tracking works — and if it comes back small, you do not need us.
Free30 minutesNo obligation
Specific to Google Ads × Ecommerce Orders
Google Ads purchases vs your order table: count the right action
Store gclid, gbraid or wbraid on each order at checkout and count the orders carrying one against Google Ads purchase conversions for a closed month. Read the by-conversion-time columns so orders land in the month they were paid. A small difference from modeled and cross-device conversions is normal; a surplus larger than your refunds is not.
Google Ads does not list your order numbers in its reports, so the practical join is the click identifier you saved on the order. Capture all three parameters at landing and write them to the order as a note or attribute. Then the question becomes simple: how many paid online orders carry a Google identifier, and how many purchases does Google claim? If your tag also sends the order number as the transaction ID, Google should drop repeat hits for the same action, which removes most refresh duplicates.
The standard conversion columns credit each order to the day of the click, so an order paid on the 2nd can sit in last month's figures. Check whether your account shows the by-conversion-time version of the columns and use that. Data-driven attribution also splits credit, which is why campaign rows show fractional purchases; compare the account total, not campaign rows, with your whole orders. Check the click-through window on the purchase action too, since a long window keeps reaching back into earlier months.
Google sitting a little above the orders carrying its identifiers is expected, because modeled conversions for unconsented users and cross-device credit have no identifier on your side. A surplus much larger than your refunds points to the most common fault in this pair: two purchase actions both set as primary, usually the Google Ads tag and a GA4 purchase import, so every order is counted twice in the Conversions column.
Google Ads × Ecommerce Orders · what breaks
Why Google Ads and your store's order table disagree
- 01
Refunds never subtracted
The most common cause and the easiest to check. Sum refunds for the same period — if the platform figure is roughly your gross and your own figure is net, that difference is the whole gap.
- 02
Purchase event firing on page refresh
A confirmation page that re-fires on reload counts one order several times. Compare distinct order IDs against total conversions.
- 03
Point-of-sale orders in the same table
If you have a physical shop, counter sales sit in the same order table and will be counted as advertising conversions unless the channel is filtered.
- 04
Post-purchase upsells arriving late
If the conversion fires at checkout and an upsell adds revenue afterwards, the platform is under-reporting by the upsell take rate.
Google Ads × Ecommerce Orders · the fix
What you get from this — Google Ads × Ecommerce Orders
A number instead of a suspicion
The likely cause, narrowed
A basis for deciding
Google Ads × Ecommerce Orders · architecture
What each side is actually counting — Google Ads × Ecommerce Orders
- 1
What Google Ads counts
A click identifier inside the 90-day window, a conversion action name that matches one configured in the account, a conversion timestamp for when the outcome happened, and a value. Read the match rate after uploading — a file can upload perfectly and match nothing.
- 2
How Google Ads attributes it
Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.
- 3
The window it uses
Google's offline import window is 90 days from the click. Anything older can't be matched, and rows outside it fail as unmatched without much explanation. Measure your median click-to-outcome time against that before designing anything.
- 4
What your store's order table counts
Paid orders with their totals, found in Shopify Admin → Orders, WooCommerce → Orders, or a direct query against the orders table.
- 5
The filter that makes them comparable
Financial status is paid, and the sales channel is online rather than point of sale.
Google Ads × Ecommerce Orders · events
Reading the gap — Google Ads × Ecommerce Orders
| What you see | What it usually means |
|---|---|
| 15%+ platform higher | Usually the wrong event entirely — the platform is claiming more than you took. usually refunds, duplicate firing, or a second channel bleeding into the same conversion action. |
| 20%+ platform lower | Usually structural — the platform is seeing fewer orders than you actually took. usually consent, ad blocking, or an identifier that never reached the order. |
Google Ads × Ecommerce Orders · diagnose
Diagnostic order
- 01
Confirm both numbers cover the same period and channel
- 02
Refunds never subtracted
The most common cause and the easiest to check. Sum refunds for the same period — if the platform figure is roughly your gross and your own figure is net, that difference is the whole gap.
- 03
Purchase event firing on page refresh
A confirmation page that re-fires on reload counts one order several times. Compare distinct order IDs against total conversions.
- 04
Point-of-sale orders in the same table
If you have a physical shop, counter sales sit in the same order table and will be counted as advertising conversions unless the channel is filtered.
- 05
Read the match rate on the upload, not the success message
A conversion action that stops receiving hits is flagged as inactive 30 days later — by which point a month of budget has already run against a missing signal. Check the last-received date on every action monthly; it takes two minutes and it's the cheapest monitoring available.
Google Ads × Ecommerce Orders · prove
How to know you did it right — Google Ads × Ecommerce Orders
Source of truth
your store's order table — orders for a fully closed month
Google Ads × Ecommerce Orders · free audit
What we check in the free audit
- Confirm both numbers cover the same period and channel
- Refunds never subtracted
- Purchase event firing on page refresh
- Point-of-sale orders in the same table
- Read the match rate on the upload, not the success message
Checked against
your store's order table — orders for a fully closed month
Free30 minutesNo obligation
Google Ads × Ecommerce Orders · when not to buy
When the answer is that you do not need us — Google Ads × Ecommerce Orders
- If almost all of your orders come from a channel with no click behind it, no tracking work will reach them — and knowing that is worth more than a build.
- If you're running Performance Max exclusively and haven't separated your conversion actions, the import will work and the reporting won't tell you much. Worth sorting the account structure first.
Google Ads × Ecommerce Orders · what we deliver
The method, step by step — Google Ads × Ecommerce Orders
Pull what Google Ads reports
The match rate on the upload, not the success message.
Pull what your store's order table shows
Export orders for a fully closed calendar month, filtered to paid and online. Count them, and sum the total after discounts and before shipping and tax.
Filter both to the same thing
Financial status is paid, and the sales channel is online rather than point of sale.
Compare per record, not on totals
FAQ
Google Ads × Ecommerce Orders questions, answered
Data-driven attribution divides credit for one order across the ads and campaigns that touched it. The account total still approximates whole orders; individual campaign rows will not.
Compare against whichever single action is primary and drives bidding. If both are primary, fix that before reconciling, because each order is being counted twice.
Because you should know the size of the problem before anyone quotes you for it. If the gap is small, you have saved yourself a purchase. If it is large, you now know what you are buying rather than taking our word for it.
No. Both numbers come from systems you already own and neither leaves them. There is no tool to sign up for and nothing to upload.
Then compare totals for a closed period and treat the result as directional rather than exact. The match rate on the upload, not the success message is still the right place to read the platform's side.
Under five percent is working. Five to fifteen usually means reversals are missing. Above twenty is normally the wrong event being counted, not a broken tag — which is why debugging tags first wastes so much time.
Then fix the filter before drawing any conclusion. Financial status is paid, and the sales channel is online rather than point of sale. A mismatch in scope produces a gap that looks like a tracking fault and is not one.
Book the free thirty-minute call and bring both numbers. We will tell you which of the causes above it is, and whether it is something you can fix yourself — which it sometimes is.
More on Google Ads × Ecommerce Orders
- Meta × Ecommerce OrdersHow to reconcile Meta Ads against your store's order table
- TikTok × Ecommerce OrdersHow to reconcile TikTok Ads against your store's order table
- Microsoft × Ecommerce OrdersHow to reconcile Microsoft Ads against your store's order table
RELATED GUIDES
Systems of record beside ecommerce orders, and the funnels it settles
- Google Ads × Enrolment SystemHow to reconcile Google Ads against your application or enrolment system
- Google Ads × Invoicing SystemHow to reconcile Google Ads against your invoicing system
- Google Ads · App install → purchaseHow to track app install to in-app purchase for Google Ads
- Google Ads · Quiz → segmented offerHow to track quiz completion to segmented offer for Google Ads
- Google Ads · FirearmsGoogle Ads conversion tracking for firearms retailers
- Google Ads · FurnitureGoogle Ads conversion tracking for furniture brands
- OneTrust → Google AdsConnecting OneTrust to Google Ads
- ShipStation → Google AdsConnecting ShipStation to Google Ads
Free · 30 min
Found a gap between Google Ads and your store's order table?
Free30 minutesNo obligation
