Skip to main content
Google Ads × POS SystemRun this yourself

How to reconcile Google Ads against your point-of-sale system

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 point-of-sale system 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 × POS System

Google Ads vs in-store sales: no gclid ever reaches the till

No gclid, gbraid or wbraid reaches a card terminal, so the only per-record key is a hashed email or phone uploaded as store sales data, where eligible. Compare a closed month by business date. Expect Google to claim a small, modeled slice of in-store revenue; a figure near your total till takings means counter sales are leaking in.

Google has two routes into physical sales, and neither uses the click identifier. Store visits are modeled estimates built from signed-in location data, so they have no row in your POS to match against. Store sales take hashed customer details from receipts or a loyalty program and match them to people who interacted with your ads. Check whether your account qualifies for store sales before planning around it; eligibility is restricted and has changed before.

Google dates conversions to the ad interaction by default, not to the sale, so a month of till data and a month of Google conversions describe different customers. Store visit counts also arrive late and are revised as the model settles. Pull the conversion action breakdown with the conversion-time columns added, isolate any store visit or store sales actions, and keep them apart from the online purchase action in every comparison.

A Google store figure that is a modest, stable fraction of in-person revenue is the honest outcome. A figure that rises and falls with your till totals usually means a POS integration is sending counter sales into the online purchase action. That is the most common cause here: a shared order table on Shopify POS or Square feeding the same conversion action that the website uses.

Google Ads × POS System · what breaks

Why Google Ads and your point-of-sale system disagree

  1. 01

    Counter sales flowing into online conversions

    Where the POS and the online store share an order table, the default integration sends everything. Reported return then climbs with footfall.

  2. 02

    Store visits treated as attributable

    Platform-reported store visits are modelled estimates, not counted events. Read them as directional and never sum them with online conversions.

  3. 03

    Tips and taxes inside the conversion value

    On food and service businesses tips are substantial and are not your revenue.

  4. 04

    Offer codes never used

    Without a code or a distinct landing path, there is no mechanism at all to connect in-store revenue to advertising.

Google Ads × POS System · the fix

What you get from this — Google Ads × POS System

  • A number instead of a suspicion

  • The likely cause, narrowed

  • A basis for deciding

Google Ads × POS System · architecture

What each side is actually counting — Google Ads × POS System

  1. 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. 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. 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. 4

    What your point-of-sale system counts

    Transactions taken in person, which advertising cannot attribute to a click, found in Square, Lightspeed, Toast, Clover or whatever runs the till.

  5. 5

    The filter that makes them comparable

    In-person channel only, separated from any online orders in the same system.

Google Ads × POS System · events

Reading the gap — Google Ads × POS System

15%+ platform higherUsually the wrong event entirely — the channel filter is missing, so counter sales are being counted as advertising conversions.
20%+ platform lowerUsually structural — almost always correct rather than a fault. in-store revenue mostly cannot be attributed, and a small reported figure is the honest one.

Google Ads × POS System · diagnose

Diagnostic order — Google Ads × POS System

  1. 01

    Confirm both numbers cover the same period and channel

  2. 02

    Counter sales flowing into online conversions

    Where the POS and the online store share an order table, the default integration sends everything. Reported return then climbs with footfall.

  3. 03

    Store visits treated as attributable

    Platform-reported store visits are modelled estimates, not counted events. Read them as directional and never sum them with online conversions.

  4. 04

    Tips and taxes inside the conversion value

    On food and service businesses tips are substantial and are not your revenue.

  5. 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 × POS System · prove

How to know you did it right — Google Ads × POS System

Source of truth

your point-of-sale system — in-store transactions for a fully closed month

    Google Ads × POS System · free audit

    What we check in the free audit

    • Confirm both numbers cover the same period and channel
    • Counter sales flowing into online conversions
    • Store visits treated as attributable
    • Tips and taxes inside the conversion value
    • Read the match rate on the upload, not the success message

    Checked against

    your point-of-sale system — in-store transactions for a fully closed month

    Get my free conversion tracking audit

    Free30 minutesNo obligation

    Google Ads × POS System · when not to buy

    When the answer is that you do not need us — Google Ads × POS System

    • If almost all of your in-store transactions 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 × POS System · what we deliver

    The method, step by step — Google Ads × POS System

    • Pull what Google Ads reports

      The match rate on the upload, not the success message.

    • Pull what your point-of-sale system shows

      Export transactions by business date for a closed month, split by sales channel, and note the in-person share of total revenue.

    • Filter both to the same thing

      In-person channel only, separated from any online orders in the same system.

    • Compare per record, not on totals

    FAQ

    Google Ads × POS System questions, answered

    No. Store visits are modeled estimates and online purchases are counted events, so summing them mixes a guess with a count. Report them on separate lines.

    Free · 30 min

    Found a gap between Google Ads and your point-of-sale system?

    Free30 minutesNo obligation