How to track ROAS across multiple ad platforms

AdRoaster Team Conversational ad analysis

You're running ads across Google, Meta and LinkedIn. Each platform's dashboard shows a healthy ROAS. Add them up and your total reported revenue is twice what your bank account shows. Something doesn't add up – and you're right.

This is the attribution overlap problem, and it affects every marketer running campaigns on more than one platform. Here's why it happens, why it matters, and how to fix it.

Why every platform lies (a little)

Each ad platform uses its own attribution model. When someone clicks your Google ad on Monday, sees your Meta retargeting ad on Tuesday, and buys on Wednesday, both platforms take full credit for the sale.

This isn't fraud – it's how attribution models work. Each platform can only see its own touchpoints, so it attributes conversions based on the interactions it knows about. The result is that your total reported conversions are always higher than reality.

The real cost of inflated ROAS

Inflated ROAS isn't just a reporting problem. It directly affects your budget decisions:

  • You over-invest in channels that look good but aren't driving incremental conversions. If Meta is getting credit for conversions that would have happened anyway (because the customer already clicked a Google ad), you're paying twice for the same sale.
  • You can't compare channels fairly. When Google shows 5x ROAS and LinkedIn shows 2x, is Google really performing better? Or does Google's longer attribution window simply capture more touchpoints?
  • You miss the real winners. Sometimes a channel with lower reported ROAS is actually driving more incremental revenue – it's just not getting credit because another platform claims the conversion first.

How attribution windows differ

PlatformDefault click windowView-through windowNotes
Google Ads30 days1 day (GDN only)Search has no view-through; can extend to 90 days
Meta Ads7 days1 dayWas 28 days pre-iOS 14.5; significantly shortened
LinkedIn Ads30 days7 daysLonger view-through than Meta; B2B sales cycles
Default attribution windows vary significantly across platforms.

These different windows mean the same conversion can be attributed to different platforms depending on when the user interacted with each ad. A customer who clicked a LinkedIn ad 25 days ago and a Meta ad 3 days ago will show up in LinkedIn's 30-day window and Meta's 7-day window – both claim the conversion.

Building an independent ROAS view

The solution is straightforward in concept, fiddly in practice: use a single source of truth for revenue and compare it against total ad spend.

Step 1: Define your source of truth

Your backend system (e-commerce platform, CRM, or payment processor) knows exactly how much revenue you generated. This is your ground truth. Not Google's conversion value, not Meta's estimated revenue – your actual revenue.

Step 2: Pull spend data from each platform

Use each platform's API or reporting tools to get total ad spend for the same period. Make sure you're comparing like with like – same date range, same currency, including all campaign types.

Step 3: Calculate blended ROAS

Divide total revenue by total ad spend across all platforms. This gives you your blended ROAS – the real return on your advertising investment.

Blended ROAS = Total revenue ÷ Total ad spend (all platforms)

If your backend shows £100,000 in revenue and you spent £25,000 across Google, Meta and LinkedIn combined, your blended ROAS is 4x. Even if the individual platforms report 6x, 5x and 3x respectively.

Step 4: Use incrementality to allocate credit

Blended ROAS tells you the overall picture, but you still need to know which channels are driving incremental value. The gold standard is holdout testing – pause a channel in a specific region and measure the revenue impact. This is expensive and slow, but it's the most accurate way to measure true channel contribution.

A simpler approach: look at conversion paths in your analytics. How many conversions come from a single channel vs multi-touch? If 80% of LinkedIn-attributed conversions also had a Google touchpoint, LinkedIn may be assisting rather than driving.

Automating cross-platform ROAS tracking

Doing this manually with spreadsheets works for a while, but it's tedious and error-prone. You need to pull data from three different APIs, normalise currencies, align date ranges, and update it regularly.

AdRoaster automates this by connecting to your Google, Meta and LinkedIn ad accounts, pulling spend and performance data, and giving you an independent cross-platform view. You can ask questions like "What's my real ROAS this month?" or "Which channel is driving the most incremental revenue?" and get answers based on normalised data – not inflated platform metrics.

Common mistakes when tracking cross-platform ROAS

  • Comparing platform ROAS directly. Google's 30-day window vs Meta's 7-day window makes direct comparison meaningless. Normalise your attribution windows first, or better yet, use blended ROAS.
  • Forgetting about organic. Not all revenue comes from ads. If you attribute all revenue to ad spend, your blended ROAS will be artificially high. Segment out organic, direct, and email-driven revenue.
  • Ignoring view-through conversions. Some platforms count "view-through" conversions – where someone saw (but didn't click) your ad and later converted. These are real, but they inflate numbers significantly. Understand how much of each platform's reported conversions are view-through.
  • Using different currencies. If you run global campaigns, make sure all spend and revenue figures are in the same currency before calculating ROAS. Currency fluctuations can create phantom improvements or declines.

Key takeaway: Every ad platform will tell you it's performing brilliantly. Your job is to verify. Use blended ROAS as your north star, and treat individual platform numbers as directional indicators – not gospel.

Analyse my ROAS for free