Ad spend & ROAS reporting

Consolidate ad spend and ROAS across Meta, Google, and TikTok into one dashboard. Normalize channel data and calculate ROAS by campaign every cycle.

The prompt

I want to consolidate ad spend and ROAS across all our paid channels into one report. Can you build me a flow that pulls spend and performance data from Meta, Google Ads, and TikTok, normalizes campaign and channel fields, calculates ROAS by channel and campaign, and outputs a unified performance dashboard?

Just copy and paste the prompt into a new Parabola flow to get started.

What Parabola builds

A workflow with six steps you can edit:

1. Pull every paid channel. Meta Ads, Google Ads, TikTok, plus any other platform with spend. One pipeline per source. The flow ingests campaign-level spend, impressions, clicks, and conversions.

2. Pull the attribution side. Shopify orders with their UTM tags, or your attribution platform. The flow joins spend to revenue on the campaign and channel keys.

3. Standardize the campaign and channel. Channel name maps to one canonical record. Campaign naming conventions get normalized. UTM tag chaos gets cleaned at the source.

4. Calculate ROAS. Revenue per channel and campaign divided by spend. Plus contribution margin ROAS if you have the cost data layered in. Plus blended ROAS at the channel and account level.

5. Compare against the target. Each campaign has a ROAS goal. The flow flags any campaign that drifted below for two consecutive cycles. The dashboard reads the flag first.

6. Output the dashboard. Channel roll-up, campaign detail, account-level blended view, optional Slack alert when a top campaign underperforms.

Why teams stop doing this manually

Every channel has its own dashboard, its own export format, and its own definition of conversions. Meta uses one attribution window, Google another, TikTok a third. The marketing analyst exports each platform every Monday, opens five tabs in a spreadsheet, builds the joins, and pivots out the ROAS view by noon. Then someone questions the number and the analyst spends Tuesday reconciling Meta's reported conversions against Shopify's order data.

The data is dirty. UTM tags are inconsistent. Campaign names follow whatever convention the team adopted last quarter. New channels get added to the mix and the spreadsheet template breaks. By the third or fourth platform, the manual workflow stops being useful and the team is left with each platform's native dashboard and no consolidated view.

The math is straightforward. Spend over revenue, by channel, by campaign, by period. The problem is the data plumbing. That is exactly the kind of work that lives in a flow. The dashboard refreshes daily. The ROAS number is consistent across all channels. Marketing and finance argue about strategy, not about whose number is right.

How it works

Step 1. Paste the prompt.

Open Parabola, paste the prompt in section 2, and let it ask follow-up questions about your channel mix, your attribution model, and the targets your team reports against.

Step 2. Connect your data.

API connections to Meta, Google Ads, TikTok, and any other paid platform. Plus Shopify or your attribution source for revenue. Plus the campaign naming map.

Step 3. Run it daily.

The dashboard refreshes overnight against the latest spend and revenue. Marketing reviews it before the standup. Finance reads the weekly roll-up.

FAQ

How does the flow handle different attribution windows across platforms?

Each channel pipeline tags its attribution window. The roll-up applies a consistent window for comparison and shows the platform-native number alongside, so the team can debug discrepancies.

What about iOS-related signal loss in Meta reporting?

The flow can blend platform-reported conversions with Shopify-side UTM attribution. Each method gets its own column. The blended ROAS sits next to the platform ROAS for cross-check.

Can the flow add a new channel without rebuilding the whole thing?

Yes. Add a new pipeline for the channel, route it through the standardization, and the roll-up picks it up. Same pattern as adding a new sales channel to a revenue report.

How does it handle channels with no spend but with conversions, like organic?

Organic and direct can be reported alongside paid as a comparison. The blended view shows total revenue, paid revenue, and paid percent. The ROAS calculation skips channels with zero spend.

How is this different from a marketing dashboard tool?

Marketing dashboards focus on the marketing view. This flow ties paid spend to your revenue source of truth and your cost data, so the ROAS number ties to the GL. Finance and marketing read the same dashboard.
Stop arguing about whose ROAS number is right.
Paste the prompt, point it at your paid channels and Shopify, and let the dashboard refresh daily.
Start for free