How to Run Media Mix Modeling with Just a CSV Export

By MCP Analytics Team | | 10 min read

You do not need Snowflake, BigQuery, or a dedicated data engineering team to run media mix modeling. You need a CSV file with your weekly marketing spend by channel and your weekly revenue. That is the entire data requirement.

This guide walks through the practical steps: what to export from each ad platform, how to structure your data, common pitfalls that produce bad results, and how to run the analysis in MCP Analytics.

What you will end up with: A single CSV file with one row per week, columns for each channel's spend, and a revenue column. Upload it, run media mix modeling, and get channel contribution analysis, saturation curves, and budget optimization recommendations in a few minutes.

Step 1: Decide on Your Time Period and Granularity

Before exporting anything, make two decisions:

How far back? You need at least 26 weeks (6 months) of data. 52 weeks is ideal because it captures full seasonality — holiday spikes, summer slowdowns, back-to-school periods. If you have 2 years of data, even better. More data gives the model more variation to learn from.

What granularity? Weekly is the standard for MMM. Daily data has too much noise (random day-to-day fluctuations drown out the channel signal). Monthly data has too few data points (12 months = only 12 rows, which is not enough for regression). Weekly strikes the right balance: enough data points, enough signal.

Recommended Setup

Time period: Last 52 weeks (1 year)
Granularity: Weekly (Monday-Sunday or Sunday-Saturday, pick one and be consistent)
Minimum viable: 26 weeks across 3+ channels

Step 2: Export Spend Data from Each Ad Platform

You need weekly spend from every paid channel. Here is how to export from the most common platforms:

Google Ads

  1. Log into Google Ads, go to Reports (or Campaigns)
  2. Set the date range to your chosen period
  3. Add the Week segment (under Time)
  4. Include the Cost metric
  5. If you run Search, Display, and Shopping separately, export each campaign type — you may want to model them as separate channels
  6. Download as CSV

Facebook / Meta Ads

  1. Go to Ads Manager > Ads Reporting
  2. Set your date range
  3. Under Breakdown, select By Time > Week
  4. Make sure Amount Spent is in your columns
  5. Export as CSV

LinkedIn Ads

  1. Go to Campaign Manager > Performance
  2. Set date range, choose Weekly view
  3. Export the report — Total Spent is the column you need

Email Marketing (Mailchimp, Klaviyo, etc.)

Email spend is trickier because most email platforms do not charge per send in a way that maps to weekly spend. Two approaches:

Other Channels

Step 3: Get Your Revenue or Conversion Data

You need the outcome metric at the same weekly granularity. Options:

Use whichever metric best represents "business results" — total revenue, online revenue, number of new customers, number of conversions. Pick one and be consistent.

Step 4: Combine Everything into One CSV

This is the most important step. Take all your exports and combine them into a single spreadsheet with this structure:

week_start google_ads_spend facebook_spend email_spend linkedin_spend revenue
2025-04-07 2400 1800 150 600 42000
2025-04-14 2600 1500 150 800 45000
2025-04-21 2200 2000 200 600 39000
... (26-52 more rows)

Rules for the CSV:

Pro tip: You can add optional columns that improve the model: is_holiday (1 or 0), is_promotion (1 or 0), competitor_event (1 or 0). These help the model separate marketing effects from external factors. Not required, but they make the results more accurate.

Step 5: Check Your Data Before Uploading

Before running the model, do a quick sanity check:

  1. Do you have enough rows? At least 26, ideally 52+.
  2. Do you have enough channels? At least 3 channels with meaningful spend. Two channels can work but the model has less to work with.
  3. Is there variation in spend? If you spent exactly $2,000 on Google Ads every single week, the model cannot estimate Google's effect — it needs variation (weeks where you spent more, weeks where you spent less) to measure the relationship between spend changes and revenue changes.
  4. Are there any obvious data errors? A week showing $500,000 in Facebook spend when your typical week is $2,000 is probably a data export error. Fix it before uploading.
  5. Is revenue reasonable? Check for weeks with $0 revenue (business closed?) or extreme spikes (a different product launch?). These are not necessarily errors, but the model treats every row the same, so outliers influence the estimates.

Step 6: Run the Analysis in MCP Analytics

With your CSV ready:

  1. Upload your CSV to MCP Analytics (drag and drop or file picker)
  2. Describe your analysis: "Run media mix modeling on this data. The spend columns are google_ads_spend, facebook_spend, email_spend, and linkedin_spend. The outcome column is revenue."
  3. MCP Analytics handles the rest: validates data quality, fits the regression model with adstock transformations and saturation curves, checks statistical assumptions, and generates an interactive report

The report includes:

Upload Your Marketing Spend CSV

Have your data ready? Upload it to MCP Analytics and get channel contribution analysis, saturation curves, and budget optimization in minutes. No code, no data warehouse, no consulting engagement.

Run Media Mix Modeling | Start Free

Common Pitfalls and How to Avoid Them

Pitfall 1: Not Enough Spend Variation

If you always spend the same amount on a channel, the model cannot estimate its effect. The fix: natural budget changes work in your favor. Campaign launches, seasonal adjustments, budget tests, and paused campaigns all create the variation MMM needs. If a channel has zero variation, consider excluding it and noting that its contribution is unmeasured.

Pitfall 2: Mixing Granularities

Your Google Ads data is weekly but your email data is monthly. Do not mix them. Convert everything to weekly before combining. For monthly data, divide by the number of weeks in the month — imprecise, but consistent.

Pitfall 3: Ignoring Lagged Effects

Some channels have immediate impact (search ads — someone clicks, they buy). Others have delayed impact (brand advertising — awareness builds over weeks). MMM handles this through adstock transformations, which model the carryover effect. MCP Analytics applies these automatically, but you should understand that a channel showing low immediate ROAS might have significant lagged contributions.

Pitfall 4: Too Few Data Points

With 15 weeks of data and 5 channels, you have 15 data points and 5+ parameters to estimate. The model is overfit — it will produce numbers, but they will not generalize. The rule of thumb: you need at least 5-10 data points per channel. With 5 channels, that means 25-50 weeks minimum.

Pitfall 5: Confusing Correlation with Causation

If you always increase Facebook spend during holiday weeks (when revenue naturally peaks), the model might attribute some of the holiday revenue to Facebook. Adding an is_holiday control variable helps separate the two effects. MMM improves with better controls for external factors.

What Good Results Look Like

A useful MMM output will show:

Frequently Asked Questions

What data do I need for media mix modeling?

Weekly spend by channel (Google Ads, Facebook, email, etc.) and weekly revenue or conversions — all in one CSV. At minimum, 26 weeks of data across 3+ channels. Optional extras: holiday flags, promotion dates, and any major external events that affected your business.

Can I run MMM from Google Sheets or Excel exports?

Yes. Export your spreadsheet as CSV. MCP Analytics accepts standard CSV format. The key requirement is one row per week with columns for date, each channel's spend, and your revenue or conversion metric. Save as .csv and upload.

How do I export spend data from Google Ads and Facebook?

Google Ads: Reports section, add Week segment and Cost metric, download as CSV. Facebook Ads Manager: Ads Reporting, set weekly breakdown, export with Amount Spent column. Then combine both into a single spreadsheet with one row per week.

How many weeks of data do I need for reliable results?

Minimum 26 weeks (6 months). Ideal is 52-104 weeks (1-2 years). More data captures seasonality and gives the model more variation. With fewer than 26 weeks, the model may run but confidence intervals will be wide — directionally useful but not precise enough for confident budget reallocation.

Have Your CSV Ready? — upload your marketing spend and revenue data. Get channel contributions, saturation curves, and budget optimization in minutes.
Run Media Mix Modeling →

Try MCP Analytics Free

Media mix modeling, regression, forecasting, and 50+ validated statistical methods. Upload a CSV and get results in minutes. Free plan includes 25 analyses per month.

Start Free | Media Mix Modeling | Compare Plans

← Media Mix Modeling · Marketing Analytics · CSV Analysis