General product information
Is the library free?
Yes, the library is free to use and is open sourced on GitHub for anyone to use.
Do we have to share our data with Google to use the library?
Google won't have access to your input data, model, or results (apart from Google media data supplied through our MMM Data Platform). If you request data from the Google MMM Data Platform, that is the only data that Google has access to. But Google won't know whether you actually include that data in your model. Your actual model inputs and outputs are entirely private, unless you choose to share it with your Google representatives.
Migrating from LightweightMMM
As a current LightweightMMM user, is extra work needed to build data input for Meridian?
To take full advantage of the new Meridian innovations, you will need to add more data dimensions such as:
- Reach and frequency
- Experiments
- Google Query Volume (GQV)
You can still run Meridian without these dimensions, although you will miss out on the new innovations. For more information, see Migrate from LightweightMMM.
Data collection and cleaning
Can I collect all data types simultaneously (performance, YouTube reach and frequency, Google Query Volume) in the MMM Data Platform interface?
Performance data and YouTube reach and frequency data must be requested separately. The request workflow is detailed in the User Guide that is included with your MMM Data Platform access email.
What is the scope of the GQV data that I can request?
The Google Query Volume, the output includes:
- QueryLabel - Brand or generic
- ReportDate
- TimeGranularity (You can request Daily, Weekly_Sunday, or Weekly_Monday data.)
- GeoCriteriaId
- GeoName
- GeoType
- IndexedQueryVolume - All query volume data is indexed. Raw numbers aren't provided for Query Volume.
Can I apply the GQV methodology for non-Google search data?
Organic query volume from non-Google search engines is often unavailable. Some alternative options are described in Understanding query volume as a confounder for search ads.
Modeling
For a given media lever, how can I set different priors associated with different time periods?
The closest thing to this would be the roi_calibration_period
argument. Based on section 3.4 of the MMM calibration white paper, we suggest calculating a spend-weighted average ROI for the experiments
and passing roi_calibration_period
to match the four quarters
of the experiments. If the experiments have very different standard errors,
you might want to further weight the experiments accordingly. For more
information, see Set the ROI calibration period.
Can I put a temporal prior for the knot values?
Meridian does not support time varying priors for knot values.
How can I get detailed decomposition information of the regression, such as getting dataframes for the posterior draws?
Posterior samples are in the inference_data
object, and you can
turn this array into any dataframe you need. To access the data samples using
the docstring, see meridian.model.model.Meridian.
Can I measure synergies between channels in Meridian?
Meridian doesn't support this kind of analysis.
Is it possible to get a temporal read-out of ROI with Meridian?
You can access the incremental outcome of each media channel over time, and therefore calculate ROI:
-
Take the estimated incremental outcome, as found
in
Analyzer().incremental_outcome()
. -
Use the
selected_times
option to choose the weeks of interest. - Divide by spend over those weeks. This gives you the ROI and reflects the individual time period more accurately.
Important: When tracking ROI over time, consider that even though the coefficients in the model are not time-varying, the ROI can still change over time because it is dependent on additional factors that might vary across time. For example, the Hill curves model the non-linear, diminishing returns of media execution, and therefore the amount of media execution at a given time can impact the ROI. Addtionally, media allocation can vary across geos over time with different effectiveness and the cost of media execution can vary across time.
Can Meridian's hierarchical model structure be used for a categorical variable besides geo?
Meridian's hierarchical modeling structure was designed for geo-level modeling, which has important advantages. Although it is possible to use another categorical variable in place of geographic region as the hierarchical variable, this is generally not recommended. If another hierarchical variable is to be used, it must be possible to stratify both the KPI and the media units by this variable.
Some examples of hierarchical variables that typically won't work include the following.
- Product. If you think that an advertising channel can affect the KPI of multiple products, then "product" shouldn't be used as a hierarchical variable. A channel can affect multiple products if it is targeted at the entire brand as a whole, rather than being product-specific. A product-specific ad campaign can also affect the KPI of other products due to so-called "halo effects".
- Sales channel (for example, online versus retail). Media units are usually not specific to a single sales channel.
- Ad campaign. Although media units can often be stratified by campaign, it is not possible to stratify the KPI by campaign.
Even if both KPI and media units can be stratified by a non-geo variable, it is important to consider whether the following hierarchical model assumptions are applicable.
- The hierarchical model partially pools information across categories to estimate the model coefficients for the treatment variables and for the control variables. Other model parameters such as time effect (trend and seasonality), adstock, and diminishing returns parameters are assumed to be common across categories (complete pooling). These assumptions are typically reasonable for geo hierarchy because the KPI and media units have essentially the same interpretation across geos.
- The assumption of common time effect, adstock, and diminishing returns parameters generally makes more sense if both the KPI and media units are roughly on the same scale for each category. For geo models, this is accomplished by population scaling both the KPI and media units. For other variables, it is less clear what scaling variable to use in place of population, and whether it should be applied to the KPI, the media units, or both.
- The stable unit treatment value assumption (SUTVA) requires that the treatment (advertising) exposure in one unit does not affect any other unit. This assumption is usually a reasonable for geographic treatment units (although never perfectly met). For non-geo categories, there may be more cross-category contamination of the media effects.
If you are considering using a non-geo hierarchical variable, keep in mind the following considerations.
- A control variable can take the same values across categories, as long as the control variable has variation within each category. However, convergence issues may arise if full or close to full knots are used to model time effects.
-
Consider setting
unique_sigma_for_each_geo=True
in theModelSpec
, since residual variance may not be the same across non-geo categories. -
Because geo hierarchical modeling is the most common use case, Meridian's
naming convention labels the hierarchical variable as "geo". If you are
using the CSV data loader, be sure to label your hierarchical variable as
the "geo" column in
load.CoordToColumns
. - Meridian requires a "population" variable. This can be set to one for all category levels if the hierarchical variable is not geo, but it might make sense to scale by something else. Meridian automatically scales both the KPI and media units by population. If you want a variable NOT to be scaled, you must multiply the input data column by the population so that it takes the original value after population scaling.
Interpretation and optimization
Can I measure the ROI of bidding strategies based on the bid targets set?
Google's MMM data feed provides bid strategy type (such as Maximize Conversions and Target ROAS) by campaign, but the feed does not include the bid target itself. To view this specific dimension, advertisers can source bid strategy reports directly from Google Ads or work with their Google Account Representative on a custom data solution.