go upstream
Send what your platforms already produce. Spend by channel and revenue, six or more months of daily history, one currency, CSV or Excel. You get back a ranked budget allocation for the next period, backed by a modeled ROAS for every channel shown next to what each platform reported.
Straight from the source: Shopify sales reports ↗·Meta Ads export ↗·Google Ads reports ↗·TikTok Ads reporting ↗
The columns below are the ideal shape, not a gate. If your export is close, send it and we will tell you what is missing.
| Column | Required content |
|---|---|
| date | Daily date; YYYY-MM-DD recommended. |
| campaign_id | Stable unique campaign identifier. |
| campaign_name | Human-readable campaign name. |
| platform | Examples: Google Ads, Meta, TikTok, YouTube, DV360, TTD. |
| funnel_stage | Stable stage such as awareness, consideration, or conversion. |
| modality | Paid search, paid social, video, display, CTV, creator video, etc. |
| spend | Daily advertising or creator campaign spend. |
| impressions | Daily delivered impressions. |
| clicks | Daily clicks. |
| conversions | Daily attributed conversions; context, not revenue truth. |
| currency | One currency code, matching the outcome file. |
Measuring influencer campaigns? Add three columns: influencer_id, creator_handle, and creator_tier (nano, micro, mid, macro, mega). Everything else stays the same, and you get modeled ROAS per creator plus a creator-level allocation.
| Column | Required content |
|---|---|
| date | Daily date. |
| outcome_channel | Examples: DTC, Online Retail, Brick & Mortar, Social Commerce. |
| revenue | Daily channel revenue; primary model target. |
| sales | Daily units or completed sales for context. |
| orders | Daily order count for context. |
| currency | Must match campaign-delivery currency. |