Home Servizi Casi Studio DeepCMS Recensioni Blog FAQ Contattaci English Español
Marketing Mix Modeling for SMBs: Practical Guide with Meridian (2026)
Trade & Performance

Marketing Mix Modeling for SMBs: Practical Guide with Meridian (2026)

May 9, 2026Updated May 5, 20267 min read

In short: Marketing Mix Modeling (MMM) was historically only available to enterprises (cost €100k-1M+). The open source release of Google Meridian (2024) and Meta Robyn (2020) has made MMM accessible to SMBs with €500k+ revenue, multi-channel, at least 12 months of weekly data history. Output: ROI per channel, saturation curves, adstock decay, scenario planning. DIY cost: 60-100h data scientist setup. Agency: €15-40k. Decisive in the post-cookie era 2024-2026.

When MMM makes sense for SMBs

Three minimum criteria for positive ROI:

  1. Revenue > €500k/year. Below this threshold, the setup investment is not repaid by budget reallocation.
  2. Multi-channel: at least 4-5 active channels (TV, digital display, social, search, email, retail). Single-channel doesn't benefit from MMM.
  3. 12+ months weekly history. MMM requires sufficient time series to identify effects.

Typical profile: Italian SMB €5-50M revenue with 30-200k€/month marketing spend distributed across 5-8 channels. Unsuitable profile: B2B SaaS with < €500k revenue, TikTok-only single-channel brand, businesses with long cycle > 6 months.

Required data setup

Granularity: weekly, ideally 24-36 months history (minimum 12).

Dependent variable: weekly revenue (or conversions, or leads, depending on primary business KPI).

Independent variables — marketing channels:

Control variables (external factors):

Output dataset: weekly table with ~25-50 columns, 60-150 rows. Manageable size in Pandas.

Google Meridian: install + Python example

Meridian is Google's open source Bayesian MMM, released in 2024. Repository: github.com/google/meridian.

pip install google-meridian

# In Python
from meridian import constants
from meridian.data import load
from meridian.model import model
from meridian.model import prior_distribution

# Load data (CSV with documented format)
data = load.CsvDataLoader(
    csv_path='marketing_data.csv',
    kpi_type='revenue',
    media_to_channel=channel_mapping,
    revenue_column='revenue',
    media_columns=media_cols,
    control_columns=control_cols,
).load()

# Setup Bayesian priors
priors = prior_distribution.PriorDistribution(
    roi_m=tfd.LogNormal(loc=0.2, scale=0.7)  # priors for channel ROI
)

# Build model
mmm = model.Meridian(
    input_data=data,
    model_spec=model.ModelSpec(prior=priors)
)

# Sample posterior (MCMC)
mmm.sample_posterior(n_chains=4, n_adapt=500, n_burnin=500, n_keep=1000)

# Output: ROI per channel, saturation curves, adstock
roi_summary = mmm.get_roi_estimates()
saturation = mmm.get_saturation_curves()

Computation time: 30-60 minutes on a standard laptop for a 100 rows × 30 columns dataset. Cloud cluster (GCP/AWS) for larger datasets.

Bayesian priors: how to set them for SMBs

Priors are a priori probability distributions for key model parameters (channel ROI, adstock decay, saturation). Setting them well increases model robustness, especially with limited datasets typical for SMBs.

Channel ROI prior. Meridian default: LogNormal(0.2, 0.7) — expected average ROI 1.2x with wide uncertainty. For SMBs with known historical ROAS, calibrate prior centered on that value. Example: search ads prior ROI = LogNormal(2.0, 0.4) if historical ROAS 7-8x. TV brand campaign prior lower: LogNormal(0.0, 0.5) (ROI 1x base with high variance).

Adstock decay prior. Measures how long the effect of a spend lasts. Typical ranges per channel:

Saturation prior. Point at which additional spend doesn't generate proportional ROI. Hill function parameterized. Default sufficient for standard datasets.

Output: ROI, saturation, adstock

Typical Meridian outputs for mid-market SMBs:

ChannelSpend (€/month)Median ROI90% CISaturation
Search ads15k5.8x[4.2, 7.5]75%
Meta Ads25k2.1x[1.5, 2.9]88%
Display10k0.9x[0.4, 1.5]45%
TV brand40k1.4x[0.8, 2.2]35%
Email3k8.5x[6.0, 11.0]60%

Typical pattern insights:

Decisions: budget reallocation, scenario planning

Typical post-MMM action plan:

  1. Eliminate channels with ROI < 1. Display in the example above, redeploy budget.
  2. Maintain channels with ROI > 1 above saturation (Meta) but don't increase.
  3. Scale high-ROI channels below saturation (TV brand): increase spend by 30-50% and re-test.
  4. Scenario planning: Meridian allows simulating "if I move €10k from Display to TV, what's the expected revenue lift?". Output: probabilistic outcome distribution.

Re-run frequency: quarterly. Re-calibration after significant changes (product launch, geographic expansion, competitor event).

Common mistakes

(1) Training set too short. Below 12 months of weekly data, MMM is unstable. Below 6 months, completely unreliable. Wait for historical accumulation.

(2) Ignoring seasonality. If the business has marked seasonality, not including a seasonal factor = MMM attributes to channels variations that are actually cyclical.

(3) Multicollinearity between channels. If two channels are often activated together (e.g. TV + Meta always on promo), MMM struggles to separate them. Solution: explicit variation in spending during setup.

(4) Over-fitting to past. MMM explains the past well but the future may be different. Validate with holdout (last 3 months out-of-sample) before decisions.

(5) Ignoring critical external factors. Pricing, distribution, competitors — if not included, MMM attributes their effects to marketing channels, distorting ROI estimates.

Comparison Meridian vs Robyn vs Lightweight MMM

ToolApproachStrengthWeakness
Meridian (Google)BayesianQuantifies uncertainty, flexible priorsCompute intensive
Robyn (Meta)Frequentist + ridgeFast, automatic feature engNo uncertainty, R-only
Lightweight MMM (Google ex)Simplified BayesianFast setupLess powerful than Meridian
Custom Python/RCustom-madeMaximum flexibilityExtensive setup

For standard Italian SMBs: Meridian is the 2026 default for output quality and active Google support. Robyn is an alternative if the team uses R.

Costs: DIY vs agency

ApproachInitial costRecurring costTime
DIY internal data scientist€8-12k (60-100h)€2-3k/quarter maint8-12 weeks
Freelance MMM specialist€10-20k€3-5k/quarter6-10 weeks
Mid-market agency€15-40k€5-10k/quarter8-12 weeks
Big consultancy€100-300k+€30-100k/quarter12-20 weeks

Sweet spot for mid-market SMBs: freelance specialist with open source tools (€10-20k initial), then internal maintenance with the model already built.

FAQ

Does MMM replace Google Analytics and attribution models?

No, it's complementary. GA + attribution model = digital touchpoint analysis (granular, intra-channel). MMM = total marketing mix (including offline). Both are needed. Optimal setup: GA for tactical optimization, MMM for strategic budget allocation.

Does cookie deprecation impact MMM?

Marginally. MMM works on aggregate spend and revenue, not user-level tracking. It's the most resistant framework to the post-cookie era. That's why it's growing 2024-2026 even in SMBs.

Can I do MMM only for digital or do I need to include offline?

Ideally both. Digital-only MMM is valid if the company is 100% online (pure-play e-commerce). For SMBs with TV/print/OOH/retail, including them increases model quality.

Statistical validity with a small SMB dataset?

Bayesian framework handles small samples well thanks to priors. Confidence intervals will be wide (high uncertainty), but the output remains directionally useful. Below 50 weekly observations (1 year) = not recommended.

How often should the model be re-run?

Quarterly standard. Earlier re-run after significant events (product launch, strategy change, expansion). Annual full recalibration with new priors.

Does MMM work for B2B SaaS?

More difficult for long cycles (3-12 months). Setup requires tracking lead-to-deal conversion lag. Better for B2C SaaS or B2B-SMB with cycle < 3 months. Alternatives for B2B enterprise: account-based attribution + multi-touch attribution.

Sources and references

Share

Pronto a crescere.

Parliamo del tuo progetto. Trasformeremo insieme i dati in risultati concreti per il tuo business.