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.