Why Google and Meta ROAS don’t match your register

Guests blurred in motion at the counter of a bright modern cafe, in black and white

On Monday morning, Google says last weekend's ads returned 4x what you spent and Meta says 3.5x, but the register shows a good weekend and nothing that looks like that. Both reports can be right, because they count different things: the platforms count conversions they can see and value them by their own rules, while the register counts checks guests actually paid.

Return on ad spend (ROAS) is the revenue a report credits to your ads, divided by what you spent. The spend is the same in every report. The revenue is whatever that report decided to count.

How can Google and Meta both say the ads worked?

Here is a made-up weekend, to show the shape. Say a 60-seat room spends $400 on Google and $400 on Meta to promote the fall menu.

  • Google reports $1,600, a 4x return. That is 16 conversions valued at $100 each: reservation-button clicks, taps on Directions, a few calls from the listing. Someone set the $100 once, and no one has looked at it since.
  • Meta reports $1,400, a 3.5x return. That is 14 results, valued the same way.
  • Together, the platforms claim $3,000 on $800 spent, or 3.75x. Some of that is the same Saturday table counted by both.
  • Matched to the register, 15 tables paid checks that trace back to either ad. They averaged $80, so $1,200, or 1.5x.

None of those figures is false. Only the last one rang up, and it's the one you can walk a partner through line by line.

It isn't necessarily a failed weekend, either. A 1.5x with 15 tables you can point to is a number you can reason about, which the 3.75x never was. What changes is the question: not whether the ads worked, but what happened to the rest of the bookings the platforms claimed.

What is each report actually counting?

Before you compare any two ROAS figures, ask four things of each one.

  1. What was the conversion? A menu view, a reservation click, an order and a paid check are different moments in a guest's evening. Google, for one, counts taps on Directions and calls from your listing as conversions, and by default credits an ad for one that happens within 30 days of a click (Google's local actions help page).
  2. What value was it given? A booking carries an assumed number. A paid check carries the real one.
  3. Which location, and which night? A Friday click can become a Saturday table, and a guest can click an ad for one location and eat at another.
  4. Who else claimed it? Google and Meta each report by their own rules, and neither sees what the other counted. Added together, their figures can count one guest twice.

Does the register number tell the whole story?

Not on its own. A check traced to an ad tells you the guest paid after the ad was part of their path. It doesn't prove they wouldn't have come anyway, and it can't see the guest who walked in without leaving a trace.

The platforms' own estimates deserve the same caution. Google's help page describes its in-store sales figure as an estimate built from several signals (store sales measurement). So in our made-up weekend, the gap between 3.75x and 1.5x is not all wasted spend. Some of it is double counting. Some of it is phone bookings and walk-ins who never left a trail, which we wrote about in how to tell if marketing brought in your walk-ins.

What tends to happen is that all of it gets treated as one number. The risk is a budget decision built on a figure nobody can rebuild. Keep three kinds apart: what traces to a paid check, what the platforms estimate, and what no one can see yet.

Which number should you take into the budget meeting?

The question is whether you can say which campaigns connect to paid checks, and what the rest suggests looking at next. The answer may lead you to change a campaign. It may reveal a tracking gap instead. Either is more useful than arguing over which dashboard has the bigger number.

You can try this on your own last weekend, without us. Write down what you spent on each platform, what each one reported, and what each counted as a conversion. Then ask your reservation or ordering provider where each booking came from, and see how many of them show up as paid checks. You won't get a perfect answer. You will know which kind of number you are looking at.

That is the view the restauWant app is built around: campaign spend set against the checks traced to it, by location, with traced results kept apart from estimates.

Next step: Read Verified, Business, and Total revenue: which number should you use? to decide which view belongs in a finance conversation and which belongs in planning.

Built for the rush. See it against your own numbers.