True ROAS: joining Google Ads with BigQuery and first-party data
ROAS is revenue from ads ÷ ad cost. Platform-reported ROAS often misleads because it relies on Google's attribution and may miss refunds, offline revenue and margin. The fix: land Google Ads data in BigQuery (e.g. via the BigQuery Data Transfer Service), join it with your GA4 and CRM/revenue tables in SQL, and compute true, profit-aware ROAS from numbers you control.
What ROAS really means
ROAS (return on ad spend) = revenue from ads ÷ cost of ads. For example, $100k revenue on $10k spend is 10:1 — $10 back per $1 spent. A common benchmark is around 4:1, but the right target varies by industry, margin and business model.
Two numbers get conflated: revenue ROAS (gross revenue, platform spend only) and profit/true ROAS (your actual revenue, factoring margin, refunds and the full cost of advertising). Limiting cost to platform spend alone inflates ROAS.
Why your own data beats platform-reported conversions
Google's reported conversion value can miss refunds and offline revenue, and uses its own attribution model. Joining ad cost with your first-party revenue lets you measure what actually hit the bank — not a platform estimate.
Getting Google Ads data into BigQuery
- BigQuery Data Transfer Service (DTS) — Google's native, scheduled Google Ads → BigQuery transfer.
- GA4 → BigQuery export — session and event data (check your property's export settings).
- CRM / revenue tables — your orders, deals, margins and refunds.
Joining the tables for true ROAS
Once Ads data is in BigQuery, you can JOIN it with GA4 sessions, CRM deals and revenue using standard SQL — keying on campaign, date and an order/customer id. Divide your real revenue (net of refunds, adjusted for margin) by ad cost to get true ROAS per campaign.
Common pitfalls
- Attribution mismatch between Google's model and your own.
- Forgetting refunds, returns and cancellations.
- Using revenue instead of margin when your products vary in profitability.
- Stale pipelines — automate the transfer and the reporting so the numbers stay fresh.
Frequently asked questions
- What's the difference between revenue ROAS and true ROAS?
- Revenue ROAS uses gross revenue and platform spend only. True/profit ROAS factors in your actual revenue (from your own data), margins, refunds, and the full cost of advertising — a far more honest picture.
- How do I get Google Ads data into BigQuery?
- The simplest official route is the BigQuery Data Transfer Service, which schedules automatic transfers; you can then JOIN that data with GA4 and CRM tables in SQL. Verify current setup details in Google Cloud's docs.
- Why not just trust Google's reported conversion value?
- It can miss refunds and offline revenue and uses its own attribution. Joining with first-party revenue in BigQuery lets you measure what actually landed.