What you'll be able to do after this guide: see exactly which ad platform actually delivers profitable orders, not inflated platform numbers. You will stop wasting money on campaigns that look efficient but drain your bank account.

What you need: a Google account (free), Google Sheets (free), access to your Google Ads and Meta ads accounts, access to your CRM or order system (Shopify, HubSpot, anything with an export), and 4 to 8 hours of focused time. No coding required.

Why Platform Dashboards Lie About Your ROAS

Your Google Ads dashboard shows a ROAS of 4.2x. Your Meta dashboard shows 5.0x. You feel good. You increase the budget. Then you look at your bank account and wonder where the money went.

This is the inflated ROAS trap. Industry audits from 2023 to 2025 consistently find that Google Ads and Meta default attribution models overcount conversions by 20 to 50 percent. Google uses last click non-direct, and Meta defaults to a 28 day click plus 1 day view window. View through conversions are counted as sales even when someone saw your ad for a split second and bought six weeks later from a different source. Meta itself has confirmed that switching to a 7 day click only model drops reported ROAS by roughly 30 percent.

Platform dashboards are designed for one thing: making you spend more. They show the best possible version of your performance. They are optimization tools, not accounting tools. The median ecommerce ROAS on Google Ads in the US in 2024 was 2.0x to 3.0x, according to WordStream benchmarks. If you see 4x or higher, you are likely double counting organic or brand search overlap. The same customer who already knew your brand clicks a branded search ad and that gets all the credit. Not incremental.

The gap between platform ROAS and true ROAS is the single biggest source of wasted ad spend for most small businesses. You cannot fix what you cannot measure honestly.

What You'll Need to Build Your True Dashboard

The true ROAS dashboard tools you need are surprisingly cheap. The total tool cost starts at zero dollars per month. Your real cost is time.

  • Google Sheets: Free. This is your dashboard surface. You will pull data into separate tabs and use formulas to blend and deduplicate.
  • Supermetrics free tier: Pulls ad platform data (spend, clicks, conversions) into Sheets. Free tier supports 1 to 2 connectors and limited rows. Paid starts at $39 per month if you exceed limits.
  • CozyROI: A free alternative to Supermetrics for media only data. No CRM connection, but works well for a quick spend vs platform ROAS comparison. Free up to 100K rows.
  • Zapier free tier: 100 tasks per month. Enough to send new closed deals from your CRM into a "Sales Truth" sheet if you handle fewer than 3 deals per day. Paid plans start at $30 per month for higher volume.
  • Your CRM or order system: Shopify, HubSpot, Salesforce, or even a manual spreadsheet. You need reliable data on what actually closed.

Setup time for a non technical user with templates: 4 to 8 hours, plus about 2 hours per month for maintenance. You do not need to be a developer. You just need to follow steps.

Step 1: Pull Ad Platform Data into Google Sheets

This first step creates a raw record of what the platform claims you earned. You will use a Google Sheets ad data connector to pull numbers directly from Google Ads and Meta.

Install the Supermetrics add on from the Google Workspace Marketplace (free trial). Or use the CozyROI template. Create two tabs in your sheet: RAW_GOOGLE and RAW_META. In each, use the add on to select your account and pull these metrics for the last 30 days: spend, clicks, impressions, and the platform's own conversion count (including purchases, form fills, or whatever your campaign tracks).

Important: do not pull your CRM data yet. This tab is just the platform's version of events. You are collecting the number you will later compare against reality.

Platform conversions include form fills that never respond, purchases from organic visitors who clicked a retargeting ad, and duplicate orders from the same customer across devices. The default answer is "every conversion counts." The truth is that 30 to 50 percent of ad form fills never respond to follow up, according to MarketingSherpa 2025 data.

You have now captured the inflated numbers. Next you capture the real ones.

Step 2: Import Real Closed-Won Data from Your CRM

Now you build the CRM to Google Sheets automation that feeds your actual sales data into the dashboard. This is where the honesty lives.

Use Zapier to watch for new events in your CRM: a deal marked as "closed won," an order paid, a subscription activated. When that event fires, Zapier sends a row to a new tab called SALES_TRUTH. The row must include: order or deal ID, email address, total revenue, timestamp, and lead source (from UTM parameters or manual assignment).

If you use Shopify, set up the "Order Paid" webhook. If you use HubSpot, trigger on "Deal Stage Changed to Closed Won." Zapier's free blueprint "Lead to Sheet" (released February 2026) already includes fields for lead source, qualified date, and closed won value. Use that template if you want a faster start.

Critical rule: only count a lead or order if it is real. A zombie lead (someone who filled a form but never replied, never answered the phone, never opened an email) should not appear in SALES_TRUTH. If you cannot contact them, you cannot monetize them. Start with qualified leads or purchases, not form fills.

You now have two sets of data: what the platform says (inflated) and what your business actually collected (real). The gap will be painful. That pain is the first step toward profitable ads.

Step 3: Deduplicate and Attribute Revenue to the Right Platform

The most common cause of false ROAS is double counting the same customer across platforms. A person sees a Meta ad, clicks a Google ad later, and buys. Both platforms claim the sale. The deduplicate ad platform ROAS step fixes this.

Create a third tab called UNIFIED. Use the formula =UNIQUE(FILTER(SALES_TRUTH!A:A, SALES_TRUTH!A:A<>"")) on emails to get one row per customer. Then for each unique email, assign the order to the platform that drove the last click before purchase (non direct). You can pull this from your UTM parameters or from a scale ad spend without killing ROAS attribution model.

Use =SUMIFS(...) formulas to sum revenue per platform. Then divide by the spend from RAW_GOOGLE or RAW_META. The result is your true platform ROAS. A blended true ROAS is (Google revenue + Meta revenue) / (Google spend + Meta spend).

Here is a real example. Pawsome Pet Toys spent $5,000 per month on Google and $3,000 per month on Meta. Platform dashboards showed Google 4.2x and Meta 5.0x. After deduplication and using only actual paid orders, Google true ROAS was 2.7x, Meta true ROAS was 2.9x, and blended true was 2.8x. The owner reduced Meta spend by 20 percent, reallocated to brand search (which had no overlap), and started server side tracking to feed real purchase data to Google Smart Bidding.

For deduplication across platforms, you need a unified customer ID. Use an MD5 hash of the email in both your CRM and ad platform (via G Client ID or Meta External ID). Hash matching removes duplicate customers even if their emails are in different formats. This is the gold standard for reducing cost per lead through honest measurement.

DIY vs. Hiring an Expert: The Real Trade Off

You have two paths: build it yourself or hire someone. Each has a clear cost and a clear risk. The DIY ROAS dashboard vs hire expert decision depends mostly on your time and your tolerance for data cleaning.

DIY cost: $0 to $50 per month in tools. 4 to 8 hours setup. 2 hours per month maintenance. You have full control. You understand every number because you built it. The downside is that time zone mismatches, unpaid Zapier task limits, or a missing deduplication formula can silently produce false results. The biggest common mistake: ignoring dedup leads to a 20 percent higher false ROAS.

Expert cost: $500 to $2,000 one time setup, plus $100 to $300 per month maintenance. They set up the entire pipeline, server side tracking, and dedup. You save time. But you create dependency. You still need to verify the data monthly because the expert's incentive is to keep the dashboard running, not to make you see ugly numbers. Many experts will avoid showing you the scary 2.5x true ROAS because they want to keep your retainer.

For most growing businesses, the best path is a hybrid. Build a simple version yourself in one weekend. Run it for 30 days. See the gap. Decide if you want to upgrade to a paid connector like Supermetrics ($49 per month) or hire an expert to handle the server side part. The alternative is to keep spending based on inflated numbers and wonder why your bank account does not match your dashboard.

If you want to dig deeper, check the cut Google Ads cost per lead by 4x with smart tracking guide for advanced attribution techniques, or the profit first framework for scaling ad spend safely to know when to pull the trigger on budget increases.

Offline conversion delay warning: A sale may happen 30 days after the ad click. If you sync daily, your ROAS will look low for 30 days then spike. Use a rolling 30 day average true ROAS, not a daily number. Otherwise you will make bad budget cuts during the delay window.

Where to Go Next

You now know how to build a dashboard that shows your true ROAS, not the platform's fantasy number. The work is straightforward, but it requires focus and a willingness to see ugly numbers. Most business owners stop at the pain point and go back to trusting the dashboard that makes them feel good. Those who push through make smarter budget decisions and lower their cost per acquisition permanently.

If you want a shortcut, let us audit your current funnel and tracking setup for free. We will show you exactly where your site and campaigns are leaking leads, in minutes. See exactly where your site and funnel are leaking leads, in minutes.

Cover photo by Mahmoud Ramadan on Pexels.