
Marketing Mix Modeling (MMM) is a causal inference model that helps businesses understand how their marketing investments, such as ads, promotions, or campaigns, drive business outcomes like sales, revenue, or leads. Unlike forecasting tools, MMM does not try to predict future sales or recommend budget splits for upcoming campaigns. Instead, it analyzes past data to reveal which channels or activities had the biggest impact on your KPIs and how effectively your budget was used. In simple terms, MMM explains what worked, what didn’t and where your marketing spend delivered the most value. By applying MMM, you can clearly identify the true drivers of performance and make more confident, evidence-based decisions about future budgets and have better budget allocation.
In Bayesian MMM, each marketing channel or treatment (like Google Ads spend, Meta spend, organic traffic, or promotions) influences your chosen KPI (such as sales, revenue, or leads). Before the model learns from your data, you provide your assumptions about these effects, which are called priors.
Generally, a model can learn patterns directly from large datasets. But in many real-world cases, businesses only have a limited amount of data. Priors help the model work better with smaller datasets by guiding it with your initial beliefs. For example, you can set priors based on expected ROI, marginal ROI (mROI), contribution, or coefficients.
If you don’t have strong assumptions, you can start with the default priors and adjust them later based on the results. Over time, we plan to make this process even easier by automating prior selection, so users can still get optimized results without having deep knowledge of ROI values.
Ways to Run the Model
MMM is flexible and allows you to run the model in different ways, depending on your needs. Data can be fetched directly through our connectors or uploaded manually.
We have also added the option to pull data from GA4 if the user has a linked account. It is an optional feature and available for both channel and campaign levels. This can be useful for adding control variables, which help improve model accuracy and results.
Input Variables in the MMM:
Media Spend: This is a compulsory input. Users must provide spend data for each channel he has, ensuring that it aligns with the dimensions of the media data (same channels and time periods).
Media Data: Media data captures advertising activity by channel and time. It may include spend, impressions, or clicks, depending on the channel, and all values must be non-negative. If impressions or clicks are not available, the model will automatically use spend as media data, making this an optional field if spend is already provided.
Control Variables: These represent external factors that influence results beyond the media data. Examples include holiday weeks, promotions, sentiment scores, or economic indicators. Adding the right control variables helps the model distinguish the true impact of media from other effects.
KPI: This is the target outcome that the model aims to predict, such as revenue, conversions, clicks, or leads. If the KPI is not revenue, users may also provide a “revenue per KPI” column to allow the model to estimate revenue internally.
KPI Type: Users must specify whether the KPI is revenue or non-revenue. Select revenue if either revenue or revenue per KPI data is available, and select non-revenue if the KPI represents other outcomes such as clicks, signups, or leads.
Target Country: We ask the user to select the country from the dropdown list of where they are running the ads. We use this to calculate a feature of the holiday week internally that is used in the control variables. It helps to improve the baseline.
Date: This is handled internally, so the user doesn't need to fill this. It contains weekly dates in the campaign type module. It is recommended to run the model on weekly data as it is ideal; daily data will be too noisy to learn from and monthly data will be very less for the model, so working at the weekly level is ideal for MMM.
ROI Mean (μ): This represents the expected average return per channel across all media. The model uses a log-normal distribution to calculate ROI ranges because ROI cannot be negative, and the log-normal ensures this. For now, a single value is applied across all channels, but in the future, we plan to allow channel-specific ROI inputs. The recommended default value is 0.2.
ROI Sigma (σ): This defines how much ROI can vary around the mean. A higher sigma allows for greater uncertainty (useful when you’re unsure about ROI values), while a lower sigma creates a tighter bound, giving the model more confidence in learning from the data. The default value is 0.9.
Based on the ROI mean and sigma values selected by the user, the model displays the expected average ROI along with a 95% confidence range. This helps the user understand what values were provided to the model as priors.
Once all parameters are selected, the model begins learning from the data using Bayesian methods and MCMC sampling. This process ensures that the parameters converge correctly, but it can take time since it’s computationally intensive usually around 8–10 minutes. While the model runs, you’ll see exploratory data analysis (EDA) plots to better understand your data and you can also explore other features of the product, such as custom connectors and reports. When the analysis is complete, we’ll generate two reports and email them to you along with the input configurations you selected.
Output Reports
The graph below shows how well the model performs using metrics like R-squared, MAPE, and wMAPE. It compares predicted vs. actual results, making it easy to check if the model is on track. Keep in mind, a model that predicts well doesn’t always explain why outcomes occur, since MMM is designed for causal inference rather than prediction.
The KPI Contribution section shows how your media and non-media activities impact KPI performance. You can compare metrics such as ROI, share of spend and share of incremental revenue/KPI across channels and view the breakdown by baselinel and marketing channels.
These are some of the key graphs from the summary report, though you can explore additional graphs when you run the model. One of the key USPs of our product is these visualizations, which can provide actionable insights for business decisions.
This report compares the current and optimized budget, ROI and incremental KPI for your configured scenario. It also shows channel-level constraints. Typically, the optimized ROI is at least equal to the current ROI.
In the example below, optimizing the same budget would have increased ROI from 3.8 to 4.2, with revenue increasing by $80K.
The first graph shows the optimized channel spend, with changes defined as the difference between the current and optimized spend. It is a fixed budget optimization, so the net budget change is zero. The second graph displays the optimized spend by channel as a percentage.
So, MMM isn’t just about running models; it’s about turning data into confident decisions. With clear visibility into what drives your KPIs and smart recommendations on how to optimize budgets, these reports give you a practical way to get more out of every marketing dollar. It’s a tool that helps you learn from the past, act in the present and plan better for the future.