Marketing Mix Modeling на собесе
Зачем MMM на собесе маркетинг-аналитика
MMM (Marketing Mix Modeling) — econometric подход к измерению ROI маркетинга. Особо актуален в cookieless эре, когда per-user attribution деградирует. На собесе маркетинг-аналитика MMM спрашивают, если компания крупная и есть offline-каналы (ТВ, OOH, радио).
Слабый ответ — «не знаю». Сильный — про регрессионный модель revenue ~ media spend, adstock, saturation, cookieless preference.
Что такое MMM
Идея: регрессия revenue ~ marketing spend + control variables.
Variables:
- Dependent: weekly / daily revenue (sales)
- Media spend: TV, digital, radio, OOH per channel
- Controls: seasonality, holidays, promotions, competitor activity, price, weather
Output:
- Contribution каждого канала к revenue
- ROI per channel
- Optimal budget allocation
- Diminishing returns curves
Когда MMM работает
Хорошо:
- Long history data (2+ years)
- Several variation в spend (не одинаково месяцами)
- Mix online + offline channels
- Aggregated reporting OK (не per-user)
Плохо:
- Short history
- Все spend растёт линейно (нет variation)
- Только digital channels с good attribution
- Need per-user decisions
Adstock (carryover)
Marketing impact не моментальный — есть decay over time.
Geometric adstock:
- adstock_t = spend_t + λ × adstock_(t-1)
- λ = decay rate (0.3-0.8 typical)
Weibull adstock:
- Более flexible curve
- Peak не сразу, decay следом
Half-life:
- Через сколько недель half effect остаётся
- TV: 2-4 weeks. Digital: 1-2 weeks. OOH: 4-8 weeks.
Saturation (diminishing returns)
Spend дополнительный $1k → меньше revenue uplift при большом spend.
Кривые saturation:
- Hill function: y = A × x^n / (K^n + x^n)
- Log: y = a × log(x + 1)
- Exponential: y = A × (1 - exp(-k × x))
Output: point of diminishing returns → over это spend ineffective.
Подход к моделированию
Steps:
Data prep:
- Weekly / daily aggregation
- Spend per channel
- Revenue / sales
- Controls (seasonality, price, promotions)
Transformations:
- Apply adstock per channel
- Apply saturation per channel
- Tune parameters
Regression:
- revenue ~ adstocked_saturated_spend + controls
- Bayesian regression (PyMC, Stan) — handle uncertainty
Validation:
- Train/test split (time-based)
- MAPE, R² metrics
- Cross-validation на different periods
Insights:
- Channel contribution
- ROI per channel
- Budget optimization
Tools
Open-source:
- Robyn (Meta) — R, popular
- LightweightMMM (Google) — Python, Bayesian
- PyMC-Marketing — Python, flexible Bayesian
- Orbit (Uber) — Python, Bayesian
Managed:
- Nielsen MMM (legacy enterprise)
- Hopper, OAK, etc.
В РФ: in-house на Python / R, или Robyn / PyMC.
MMM vs MTA
MTA (Multi-Touch Attribution):
- Per-user
- Cookie-based
- Realtime
- Better для digital
MMM:
- Aggregated
- Cookieless
- Slow iteration
- Better для offline / brand
Best practice 2026: unified measurement — MMM + MTA + incrementality.
Incrementality testing
Дополняет MMM. Causal lift через experiments.
Methods:
- Geo-experiments: hold out region from spend, compare lift
- Conversion lift (in-platform GA, Meta)
- PSA test: replace ads with PSA, measure baseline
Подтверждает (или опровергает) MMM estimates.
Типичные вопросы
«Зачем MMM в 2026?»
Cookieless tracking degraded. Per-user attribution unreliable. MMM аgregated, не depends on cookies, captures offline channels.
«Adstock и saturation — зачем?»
Adstock: marketing impact lingers (TV ad seen today affect purchase next week). Saturation: $1 ад spend even at $100k не такой effective как at $10k. Без них MMM unreliable.
«У нас 6 месяцев data. MMM сработает?»
Слабо. MMM requires 2+ years обычно. С 6 месяцами model overfits, нестабильный. Альтернатива: incrementality testing.
«MMM сказал TV ROI 5x. Believe?»
Sanity check: MMM uncertainty bounds wide? Cross-validate на different periods. Validate с incrementality test (geo-experiment).
Частые ошибки
- Без adstock / saturation. Линейная регрессия — wrong assumptions.
- Short history. Model overfits.
- Too many channels, мало data. Underspecified.
- MMM как single source of truth. Combine с MTA, incrementality.
- No validation. Доверяем числам без проверки.
FAQ
MMM сам или нанять consultancy?
Small / mid scale — in-house на open-source (Robyn / LightweightMMM). Enterprise — consultancy + in-house team.
Какой ML stack?
Python (PyMC, statsmodels) или R (Robyn). Bayesian → uncertainty estimates.
Update cadence MMM?
Quarterly typically. Re-run model на refreshed data.
MMM и B2B?
Слабее — sales cycles long, mediating factors много. B2C consumer products — better fit.
Где практиковать?
Robyn — open-source, есть public examples. Kaggle MMM datasets.