How paid media agencies benchmark ROAS across clients
Stop building Monday spreadsheets from 10 ad managers. Sync all ad accounts to one warehouse and ask Claude for cross-client insights.
You manage paid media for a dozen clients. Each has their own Meta Ads, Google Ads, maybe TikTok. To answer "which client is getting the best ROAS this month" you log into ten ad managers and build a spreadsheet. Every Monday.

The problem
Ad platforms report well on one account at a time. The questions that actually run an agency are cross-client: portfolio ROAS, whether spend is allocated to the accounts that convert, which creative approaches work in which verticals. None of that exists natively in Meta or Google, because none of it is their problem.
The workaround is exporting, normalizing, and comparing by hand, which produces a snapshot that is stale by Wednesday.
The setup
- All Meta, Google and TikTok ad accounts → Fivetran or Supermetrics
- ETL tool → BigQuery or Snowflake
- Warehouse → Contextflo
- Contextflo → Claude
What you can ask once it is connected
Which client has the best ROAS this month across all channels?
Compare CPA trends for our DTC clients over the last quarter.
Which ad creative formats are driving the lowest CPA across the portfolio?
Client X's Meta ROAS dropped 30% this week. Is that a platform-wide trend or specific to them?
That last one is the question that saves accounts. When performance drops, knowing within a minute whether it is happening across your whole portfolio or only to that client completely changes the conversation you have with them. One is a market shift you are already on top of. The other is something you did.
Attribution will not agree with itself
Worth knowing before you build this. Meta and Google both attribute generously and on different windows, so summing ROAS across platforms produces a portfolio number that is confidently too high. Meta's default attribution counts conversions Google also claims.
This does not make cross-client comparison useless, it just means being deliberate. Compare like to like: Meta ROAS against Meta ROAS across clients, rather than blended ROAS against blended ROAS. If you do want a blended portfolio number, define once how you deduplicate it and save that definition so every future answer uses the same one, instead of it depending on who asked and when.
An agency that can explain its attribution assumptions is already ahead of most of the market.
Why it is worth the setup
The pipeline costs money and a day to set up, so it is not worth it for three accounts. Past ten, the Monday spreadsheet is already costing more than the pipeline does, and the spreadsheet cannot answer the question that matters most, which is whether a drop is yours or the market's.
Connect your ad data and ask portfolio questions in Claude. Free for one user and one data source.