In 2022, Meta released Robyn, an open-source MMM library in R. In 2024, Google released Meridian, a Bayesian MMM framework in Python. For the first time, both companies that dominate digital advertising have published free tools for measuring the effectiveness of advertising, including advertising on their own platforms.
That's interesting. And worth examining carefully, because both companies have obvious incentives to build tools that show their own channels in a favorable light.
Google Meridian and Meta Robyn take different approaches to open-source MMM
| Feature | Meridian (Google) | Robyn (Meta) |
|---|---|---|
| Created by | Meta | |
| Language | Python | R / Python |
| Modeling approach | Bayesian | Frequentist (+ Bayesian) |
| Saturation curve | Hill function | Hill / Michaelis-Menten |
| Auto-optimization | No | Yes (Nevergrad) |
| Best for | Python teams, GCP | R shops, Meta-heavy |
The quick version
| Google Meridian | Meta Robyn | |
|---|---|---|
| Released | 2024 | 2022 |
| Language | Python | R |
| Methodology | Bayesian (TensorFlow Probability) | Bayesian (via Nevergrad) |
| Calibration | Built-in geo experiment integration | External calibration, more manual |
| Community maturity | Growing | More established |
| Documentation | Good but newer | Extensive, more community resources |
| Best for | Python shops, geo-experiment users | R-native teams, Meta-heavy advertisers |
If you're Python-native and run geo experiments: Meridian. If your team is R-native or you've been using Robyn for a while: stick with Robyn. If you have no data science capability in-house: neither.
Google Meridian
Meridian was released by Google in early 2024 as an open-source Python package built on top of TensorFlow Probability and JAX. It implements a Bayesian hierarchical model with support for media transformations (adstock and saturation), revenue-based priors, and geo-level modeling.
The standout feature is Meridian's built-in calibration framework. You can inject incrementality data from geo holdout experiments directly into the model as constraints, essentially telling the model "we know from experiment that YouTube drove X% incremental lift in these markets." This calibrated approach produces more accurate results than uncalibrated MMM, because it anchors the statistical estimates to real causal evidence.
That's a genuine methodological advantage. Calibration is what separates a useful MMM from one that produces plausible-looking but unreliable outputs.
The limitation is maturity. Meridian is newer, which means fewer community-contributed examples, less Stack Overflow coverage, and a smaller ecosystem of practitioners who've used it in production. The documentation is solid but you'll encounter fewer tutorials and walkthroughs than you will with Robyn. If you get stuck, you're more likely to be on your own.
Meridian also requires comfort with Python and probabilistic programming. Running a model isn't trivially hard, but interpreting outputs and making principled choices about prior distributions requires real statistical knowledge.
Meta Robyn
Robyn (now sometimes called "Project Robyn" or "Robyn MMM") has been around since 2022 and has a substantially larger community. The R package is well-documented, there are extensive tutorials, a dedicated Slack community, and a large number of practitioners who've used it in production environments.
The core methodology is Bayesian optimization using Meta's Nevergrad library for hyperparameter tuning. Robyn uses gradient-free optimization to search across the space of model specifications, adstock rates, saturation parameters, and channel coefficients, and returns a Pareto-optimal set of models that balance fit and efficiency.
The budget allocator tool is practically useful: you can give it a total budget and constraints (minimum/maximum spend per channel) and it will return an allocation recommendation based on the estimated response curves. The visualization outputs are also well-built, which matters when presenting to stakeholders who need to understand what the model is saying.
Calibration in Robyn is available, you can add calibration constraints from holdout tests, but the workflow is more manual than Meridian's integrated approach. For teams that don't run frequent geo experiments, this matters less.
The R limitation is real in organizations that have standardized on Python. It's not insurmountable, but if your data team lives in Python and dbt, asking them to context-switch into R for MMM creates friction.
The bias question
It would be naive to ignore that both tools were built by companies with significant financial interests in how marketing effectiveness gets measured.
Google and Meta together capture roughly 50–60% of global digital ad spend. A tool that consistently shows their platforms in a favorable light would be enormously valuable to their advertising businesses. Both companies have denied designing their tools this way, and the open-source nature of both projects means their methodologies are at least auditable.
The academic community's general view: the underlying methodologies (Bayesian MMM with appropriate transformations) are sound. The risk isn't in the method, it's in the defaults. The default prior distributions, the default adstock decay rates, the default saturation curve shapes, these can be set in ways that systematically favor certain channel types. Neither tool is transparent about why their defaults are what they are.
The practical defense: always calibrate against your own incrementality data. Don't trust any MMM output, from an open-source tool or a paid vendor, that hasn't been validated against at least some holdout test evidence. This is good practice regardless of who built the model.
What you actually need to run either tool
Both tools are genuinely free. The costs are in setup, data infrastructure, and interpretation, not licensing.
Data you'll need:
- 1.5–3 years of weekly data (longer is better, especially for brand channels with long carryover)
- Revenue or sales outcome data by week
- Media spend by channel by week
- External variables: price, promotions, distribution changes, seasonality indicators
- For Meridian calibration: geo-level spend and outcome data from holdout experiments
Skills you'll need:
- For Robyn: R programming, basic Bayesian statistics, ability to interpret Pareto fronts and response curves
- For Meridian: Python, TensorFlow/JAX familiarity, understanding of Bayesian inference
Time investment:
- Model setup and initial run: 2–4 weeks for an experienced data scientist
- Model refinement and calibration: another 4–8 weeks
- Ongoing maintenance: quarterly refreshes, minimum
If you don't have this capability in-house, open-source MMM tools are not the right starting point. A poorly specified or uncalibrated MMM produces numbers that look credible but aren't, which is worse than no model at all. In that case, a vendor who provides implementation support and interpretation is worth the cost.