ROAS & profitability

What is your budget worth? Your own numbers tell you.

Ad spend from Google, Meta, TikTok and LinkedIn set against first-party-measured revenue — per channel, with a comparison to the previous period. Calls and bookings run in the same funnel.

Not an estimate from a platform's UI, but your own number.

Per channel, with previous period
Refunds netted
Shareable client report
META · PURCHASES AFTER A CLICK · 30 DAYSTwo thirds of the channel were invisibleMeta’s dashboard attributed37Measured against the shop111Dashboard onlyChannel looks weak, budget would be cutWith a cross-checkEvery purchase matched to its own orderThree times as many purchases as reported. META · PURCHASES AFTER A CLICK · 30 DAYSTwo thirds of the channelwere invisibleMeta’s dashboard attributed37Measured against the shop111Dashboard onlyChannel looks weak, budget would be cutWith a cross-checkEvery purchase matched to its own orderThree times as many purchases asreported.
Real case from a client account, anonymised. Counted: purchases after a Meta click, each checked against the order in the shop.
37 → 111
purchases via a Meta click in 30 days:
attributed by the dashboard → actually measured
±20 %
safety limit on every
budget recommendation
4
metrics cross-checked daily:
delivery, value, count, uptake
The ROAS dashboard

From click to booked revenue.

Every captured conversion, call and order value fed back later flows into a live dashboard that sets your ad spend against first-party-measured revenue — per channel, with a comparison to the previous period.

Returns dashboard: real ROAS 2.25×, MER 6.94×, revenue, ad spend, conversions and CPC of a demo tenant over 7 days
ROAS page of a demo tenant, 7 days, net values: real ROAS and MER from first-party measured revenue — numbers as measured, only the name is replaced.
Two numbers, kept apart. The value per channel is the true ad return: that channel's spend against the revenue attributed to it. The headline figure across all channels is a blended number — it sets total ad spend against total revenue, organic and returning business included. Both are labeled that way in the dashboard, so nobody mistakes one for the other.
Cross-checked

We don’t just feed the platforms — we audit their numbers.

Every ad dashboard grades its own homework: Meta counts what Meta credits itself. Because uncoverflow knows every order server-side, we check the platform numbers against the truth daily — in both directions.

Blind despite real sales

Real case: 111 purchases arrived via a Meta click in 30 days, each one verified against the shop — Meta’s dashboard attributed 37 of them. Two thirds of the channel were invisible. Without independent measurement, budget would have been cut in exactly the wrong place.

Claimed, viewed, backed

For each ad channel, three numbers sit side by side: what the platform claims, how many of those only saw an ad, and what we can back with a paid click — next to the orders your shop had at all. If a platform claims more than that, the page tells you. If it stays above even without the view-throughs, something there is counted twice.

Four metrics, every day

The scorecard compares daily what the platform reports with what your shop actually booked: delivery (do our conversions arrive), value accuracy, count accuracy and uptake at Google.

An alarm when a platform overstates

If a platform reports substantially more revenue than your shop booked, the system raises the alarm — an inflated ROAS is the more dangerous direction, because it steers budget into the wrong campaign. Only possible when you see both sides.

Attribution

Who owns the revenue — and who does not.

A return is only as good as the attribution underneath it. The four places where standard setups lose the channel or overstate it are deliberately solved here.

Payment redirects do not eat the source

A buyer paying through PayPal, Stripe and the like comes back without a click ID and with the payment provider as the referrer. If the conversion fired there, the real source would be lost. Attribution therefore runs on the last real session, not on the session the conversion happened to fire in.

Payment providers and your own domain excluded

Your own store and the known payment providers never count as a referral source. Otherwise the funnel credits itself and every paid click looks worse than it is.

Refunds are netted out

Returns are netted against the original conversion — including at Google, as a partial correction or a full retraction. The refund is credited to the channel of the original purchase, not to the channel active on the refund day. Your ROAS does not celebrate goods that went back long ago.

Foreign-currency accounts in euros

Ad accounts in other currencies are converted using daily ECB rates. That keeps the return comparable across countries and stores instead of drifting with exchange rates.

Every campaign table also tells you how many of our closes carry a campaign ID — if too many don’t, the tracking template in the ad is missing, not the purchase.

How much of your revenue does today's setup credit to the wrong channel?

Book a demo
30-day parallel run · runs alongside your existing tracking · cancel monthly
Down to profit

It is not the form submission that counts, it is the paid invoice.

A lead is not revenue yet. So the return calculation does not stop at the click on “Send” — it runs on to the amount that actually reaches the bank account.

FROM THE CLICK TO THE PAID INVOICE · EXAMPLEGoogle adclick with gclidFormestimate €150CRM: wonHubSpot · PipedriveInvoice paidlexoffice · sevDesk€1,850 in Google Adsassigned to the same clickIn the ad account without write-back€150With write-back€1,850Several invoices from the same customer add up; a correction replaces the old value. FROM THE CLICK TO THE PAID INVOICE ·EXAMPLEGoogle adclick with gclidFormestimate €150CRM: wonHubSpot · PipedriveInvoice paidlexoffice · sevDesk€1,850 in Google Adsassigned to the same clickIn the ad account without write-back€150With write-back€1,850
Example values. Smart bidding learns from paid orders instead of submitted forms.

Invoices and won CRM deals flow back

Paid invoices from accounting and won deals from HubSpot or Pipedrive come back into attribution as real order value — credited to the original ad click. Several invoices for the same customer add up; a correction replaces the earlier value.

The invoice share is broken out

For each channel, the dashboard shows which part of the revenue comes from invoices that were actually collected. So you see not only which channel brings inquiries, but which channel brings inquiries that get paid.

Contribution margin after ad spend

Instead of a ratio alone, the dashboard shows the absolute amount in euros left after ad spend. That is the number you use to decide whether more budget is worth it.

How much of your revenue can you trace to a paid invoice today?

Book a demo
Runs alongside your existing tracking · compare first, decide after
From number to decision

The dashboard also tells you what to do.

A return per channel is a finding. It gets interesting when it turns into a budget decision — safeguarded, auditable and with you on the trigger.

Budget recommendations with a safety limit

Concrete suggestions for where budget should go and where it should come from — every change capped at ±20 % so no channel collapses overnight. Optionally applied straight to the Google Ads account with one click, safeguarded against accidental double-application, with every change logged.

The AI analyst explains the outlier

The most conspicuous metric is explained in plain language, together with a recommendation of what to check. Grounded in your real dashboard numbers, not in free speculation.

A report link instead of a screenshot folder

The read-only client report works without a login, is PDF-ready and can be revoked at any time. The client sees their return themselves — including the delivery rate the system runs at.

Side by side

What the dashboard reports — and what the orders say.

What the platform dashboard reports
  • One ad account reported over €9,000 in purchase value on a single day.
  • The same purchase shows up as a win on two platforms at once, by cookie rather than click.
  • The dashboard never sees the return. The ROAS celebrates goods that went back long ago.
  • Add the dashboards up and you have no counter-check — only the platform grading itself.
  • The ad account counted 18 conversions for one product. The shop recorded for that product: not a single order with a Google click.
What uncoverflow checks it against
  • The shop recorded around €500 that day — the value check raised the alarm.
  • Every purchase is attributed exactly once — to the channel that actually brought it.
  • Refunds are netted against the original conversion automatically, on Google too.
  • A daily scorecard checks delivery rate, count and value, and raises the alarm when a platform overstates.
  • Product ROAS: Google cost per product against your real orders — and purchase paths like “Google Ads → Email” that no last-click dashboard shows.
Frequently asked

Answered briefly.

Why does your return differ from the number in the ad account?
Because the two sides count differently. Platforms only see what their pixel captures, yet they also credit themselves with purchases that merely saw an ad — and they never see refunds. We work from the orders in your shop, attribute every purchase exactly once and net returns out. The gap is not an error, it is the actual finding — and the scorecard shows you daily which way it runs.
Can I put your number next to Ads Manager?
Yes. The purchase goes to the person’s most recent paid click — across all their devices. How far back that click may lie is yours to switch: 7 days to compare with Meta’s 7-day click, 30 days for Google Ads, 90 days like GA4. One window for all channels so they stay comparable. Whatever still differs is view-through and purchases without a paid click — we show both separately.
Is the headline figure across all channels a ROAS?
No, and we label it as such. The per-channel number is the ad return: that channel’s spend against the revenue attributed to it. The headline figure is a blended number across total revenue — organic and returning business included. Both are useful, but they answer different questions.
What happens with refunds and cancellations?
They are netted against the original conversion automatically — as a partial correction for a partial refund, as a retraction for a full one, inside the Google Ads account too. They are credited to the channel of the original purchase, not to the channel active on the day of the refund. That keeps the revenue honest both in your dashboard and in the platform.
Where does the ad spend come from?
Straight from the ad accounts — Google and Meta at campaign level, TikTok, LinkedIn and others as a channel total. Spend is refreshed several times a day so that today and yesterday show real numbers, and foreign-currency accounts are converted into euros using daily ECB rates.
Read on

Related.

Let's talk for 30 minutes.

We put your ad spend next to the revenue we actually measure — using your real numbers, not a sample account.

Reply within 24 hours on business days · conversations in German or English · no lock-in, cancellable monthly