Marketing Mix Modeling

Should Branded Search Go in Your Marketing Mix Model

Should you include branded search in MMM? Yes, as its own channel, split from non-branded search, with brand query volume as a control. Setup for Meridian and Robyn.

On this page

You should include branded search in MMM, as its own channel, kept apart from non-branded search, with brand query volume sitting beside it as a control. Skip any of those three and the model repeats what last-click attribution has always done with brand keywords: it pays them for demand that TV, social, PR and the product itself created.

Include, split, control or exclude

Four choices get argued over in most model reviews. The first three stack, and the fourth is the fallback when the data can't support them.

ChoiceUse it whenWhat it buysWhat it costs
Include branded search as a channelBrand keywords take real budget and need an ROIA response curve the optimizer can act onAn inflated ROI if nothing in the model stands for demand
Split it from non-branded searchBoth run, which is nearly alwaysSeparate curves for two different jobsEach needs week-to-week variation of its own
Control for brand query volumeBids, more than a budget cap, set search spendRemoves the demand that triggers the ad and drives the saleStrips credit from upper-funnel media that caused the searches
Exclude itSpend is small or flat, or the engine has no query-volume seriesA model that stops guessing at an effect it can't seeNo ROI for the channel until an experiment supplies one

Why does branded search collect credit it didn't earn?

In marketing mix modeling, branded search is the plainest case of paid search endogeneity: spend on the channel is partly caused by the same demand that causes the sale. A search ad appears only when someone types a matching query, so the audience sets the ad's volume before the advertiser does. The paid search page of Meridian's documentation on Google for Developers states the mechanism in one sentence: "When inherent demand is high, organic query volume will also be high, and so the total spending on search ads will be high."

Brand keywords are the extreme version, because almost nobody types a brand name without already knowing it. Branded clicks rise in the weeks when a TV flight, a launch or a seasonal peak has already raised intent, and a regression that watches spend and revenue climb together credits the spend. The same page says this is particularly an issue for advertisers with high search budgets, because their paid search ad volume tends to track organic query volume more closely. Pulling those two causes apart is the job of incrementality measurement.

What did Google's bias-correction research measure?

Seven Google researchers measured the gap in "Bias Correction For Paid Search In Media Mix Modeling," posted to arXiv in July 2018. They name the problem selection bias due to ad targeting, and they tested a correction on three advertisers in three verticals where search ads were the dominant channel. Each had run a randomized geo experiment, so every observational estimate of search ROAS could be compared with a ground truth. Results are indexed so that the experiment equals 1.

CaseDaily dataNaive regressionAdjusted for category search volumeCorrected with query volumesGeo experiment
1 (mid-size retailer)65 days in 201514.77.13.01
2135 days8.47.31.91
388 days2.91.40.81

The correction adds three query-volume series to the regression: queries whose organic results favor the advertiser's own site, queries that favor competitors, and general-interest category queries. The first is, in our reading, the nearest thing in the paper to a brand-query series.

The table has limits. The estimates cover search advertising as a whole (we found no separate brand-keyword result in the paper), three advertisers is a small sample, and the corrected figures carry wide standard errors (1.02 in case 1, against 0.66 for the experiment). One major assumption of the theory is met when search spend is not constrained by its budget, which the authors recommend checking with the advertiser. They also warn against treating query volume as a one-line fix inside a traditional media mix model: "This will most likely reduce the coefficient of search ad, but the estimate may still be biased." What carries over is the direction of the error: every uncorrected estimate ran high, by roughly 3 to 15 times in these three cases.

Why branded and non-branded search are separate channels

"Branded search" and "non-branded search" behave as two different treatments in marketing mix modeling, and Google's paid search page says so directly: "Paid search campaigns that target brand-specific queries are very different from those that target more generic product related queries. It is best to include these campaigns as separate media channels in the model." That page adds that brand-specific keyword campaigns are often modeled using clicks, because they are intended to drive direct web traffic, while other campaigns are often modeled using impressions. A blended search channel forces one saturation curve and one carryover pattern onto both.

The catch with controlling for query volume

Controlling for query volume fixes search and creates a problem upstream. The control variables page on Google for Developers describes the split role: query volume is a confounder for search ads, because a relevant query is often a prerequisite for the ad, and a mediator for other media that drive search behavior. Include it, and TV loses credit for the brand searches it caused. Leave it out, and in the words of the full-funnel page on Google for Developers, lower-funnel channels "get rewarded for capturing some demand that they didn't actually create."

Google's default is to include it: "We believe that assuming query volume is a confounder, and including it in the model will more often be the right decision due to the relative strength of the relationship between query volume and search media. However, the decision depends on the use case." Meridian now also offers a two-stage full-funnel model, in which branded query volume is the outcome of a first model and an explanatory variable in the second. Its documentation calls that route worth the added complexity when the indirect path is substantial and confounders are measurable for both stages; otherwise, it says, "a single-stage MMM may be the more reliable choice."

Setting it up in Meridian

Four inputs change:

  • Two paid media channels, brand search and generic search, with clicks as the media unit for brand and impressions for generic if you follow the convention Google describes.
  • Two controls, brand GQV and generic GQV, matched to the queries each channel targets.
  • Population scaling for both controls, through the population_scaled_controls argument in ModelSpec. Meridian 2.1.0 (September 2026) introduced that name, per the changelog in Google's Meridian repository on GitHub; earlier versions use control_population_scaling_id, now deprecated.
  • Priors for the two search channels, set from experiments where you have them.

Google Query Volume comes from the MMM Data Platform. Its GQV page on Google for Developers describes an indexed series (no raw search counts) with up to a three-year lookback, at DMA or national level, delivered only as an add-on to a performance data request. Brand queries are mapped from the brand names in the request, generic queries come from categories associated with those names, and no custom input is accepted for the generic set.

Plan around one limit: Meridian does not estimate causal effects or contribution percentages for control variables, so query volume gets no contribution figure of its own. For a non-Google engine with no query-volume series, Google's advice is to assess whether GQV is a good proxy and, if you won't assume that, you might need to omit the engine from the model.

How to handle branded search in Robyn

To handle branded search in Robyn MMM, give it its own paid media column and bring brand query volume in as a context variable.

# excerpt from robyn_inputs(); column names are illustrative
paid_media_spends = c("tv_S", "meta_S", "search_brand_S", "search_nonbrand_S"),
paid_media_vars   = c("tv_S", "meta_I", "search_brand_clicks", "search_nonbrand_I"),
context_vars      = c("brand_query_index", "nonbrand_query_index")

Two cautions. The Analyst's Guide to MMM from Meta advises against clicks as a digital exposure metric because they miss view-through conversions, while the sample robyn_inputs() call on Robyn's Key Features page pairs search spend with a search clicks column. For a brand campaign we side with clicks, for the reason Google gives. And context variables behave differently from media. Per the guide, "These variables will not undergo any transformation techniques and are expected to have a direct impact on dependent variables." The query index is a plain regressor with no adstock or saturation, and you source the series yourself.

Does Robyn want branded and non-branded search as separate channels?

In Robyn MMM, branded vs non-branded search belong in separate channels, entered as two spend columns with their own exposure metrics. We found no guidance specific to branded search in Robyn's Key Features page or its Analyst's Guide, but what both say about granularity points the same way. The Key Features page from Meta recommends splitting a channel when spend and exposure are weakly associated, with Meta retargeting and prospecting campaigns as its example. The Analyst's Guide says digital should be broken out at the channel level at the very minimum, and that going more granular within certain channels is even better practice.

Brand vs performance search in Robyn marketing mix modeling is that same split under another label. Whatever the columns are called, each one has to vary on its own often enough for the model to see it.

A worked example with invented numbers

Hypothetical, for illustration only. Assume a retailer whose brand queries run at 100,000 a week, with a brand campaign that turns 20% of them into paid clicks at $0.50 each: 20,000 clicks and $10,000 of spend. A TV flight lifts brand queries 30% to 130,000. With bids unchanged, clicks rise to 26,000 and spend to $13,000, and revenue that week is up $60,000.

A model with no query control sees $3,000 more branded spend beside $60,000 more revenue and is free to assign a large share of the gain to branded search. With brand query volume in the model, branded search can only be credited for clicks that query volume doesn't explain: a bid change, a week of lost impression share, an outage.

Let an experiment have the last word

A control variable or a two-stage model narrows the error without proving what branded search adds. Google's paper judged its own correction against geo experiments, which it treated as the source of truth. Run a geo holdout on the brand campaign and feed the result back. In Meridian, calibration means using experiment results and other domain knowledge to set channel-specific priors, per the calibration page on Google for Developers. In Robyn, the lift result goes in as a calibration input to robyn_inputs(); the Analyst's Guide notes that Robyn currently accepts a point estimate defined by a start date, an end date and the incremental response, and the demo script in Robyn's repository on GitHub also asks for the channel, the spend in the test, a confidence level, the metric and a calibration scope. The same holdout can also correct the ad platform's own brand numbers through a calibration multiplier.

Our position: include it, split it, control it, then test it, and treat any branded search ROI that hasn't met an experiment as provisional. For a second pair of eyes on a model spec, our data and analytics team is a further resource, and the Attribution Doctor runs a lightweight media mix model in your browser from monthly spend and revenue by channel.

Sources

  • Google for Developers: Paid search modeling (Meridian)
  • Google for Developers: Control variables (Meridian)
  • Google for Developers: Full-funnel MMM, unifying upper-funnel and lower-funnel measurement (Meridian)
  • Google for Developers: Calibrate treatment priors (Meridian)
  • Google for Developers: Google Query Volume (GQV) + FAQs (MMM Data Platform)
  • arXiv: Bias Correction For Paid Search In Media Mix Modeling (Chen, Chan, Perry, Jin, Sun, Wang and Koehler, Google Inc., July 2018)
  • Meta: Robyn Key Features
  • Meta: An Analyst's Guide to MMM (Robyn)
  • GitHub: Meridian changelog (google/meridian)
  • GitHub: Robyn demo script, demo.R (facebookexperimental/Robyn)

Frequently asked questions

Should you include branded search in MMM at all?
Yes, when you spend meaningful budget on brand keywords. Model it as its own paid channel, separate from non-branded search, and add brand query volume as a control so the model can tell demand from advertising. Google's Meridian documentation warns that failing to control for query volume can lead to overestimation of the causal effect of paid search.
Why not enter branded search as a control variable instead of a media channel?
You would lose the answer you came for. Meridian does not estimate causal effects or contribution percentages for control variables, and Robyn's context variables get no adstock or saturation transformation, so a budget optimizer has no response curve to work with. Keep branded search as media and give the control slot to query volume, the thing that drives it.
Does controlling for brand query volume take credit away from TV and other upper-funnel channels?
It can. Query volume is a confounder for search ads and a mediator for media that prompts people to search, so using it as a control blocks part of that media's path to sales. Google's documentation still expects inclusion to be the right call more often, and Meridian offers a two-stage full-funnel model for cases where that indirect path is substantial.
Where does brand query volume data come from?
For Google Search, Google Query Volume is delivered through the MMM Data Platform as an add-on to a performance data request. It arrives as an indexed series split into brand and generic queries, at DMA or national level, with up to three years of history. Google's documentation notes that organic query volume from other search engines is often unavailable.
How large is the overstatement when search is modeled without a demand control?
In a July 2018 Google paper covering three advertisers that had each run a randomized geo experiment, a naive regression put search ROAS at 2.9, 8.4 and 14.7 times the experimental result. Those cases cover all search advertising over 65 to 135 days of daily data, so read them as evidence of direction and scale and test your own account before trusting a number.

Free tools for this topic

FREE TOOLAI Search Visibility CheckerCan ChatGPT, Perplexity and Google AI see your site?FREE TOOLSEO Page AuditorA senior-level on-page audit in one paste.PLAYBOOKThe AI Search PlaybookGet cited by ChatGPT, Perplexity and Google AI Overviews.

Keep reading

GlossaryWhat Is Incrementality? The Question Attribution Can't AnswerRead →GuidesHow to Run a Quarterly Geo-Holdout Test Your CFO Will Actually TrustRead →DataThe Multiplier Method for Calibrating Platform Attribution With Incrementality TestsRead →
CATALIST NEWSLETTER

Monthly dose of growth marketing.

Get marketing tips, narratives, guides, and playbooks delivered to your inbox.

Protected by reCAPTCHA — Google's Privacy Policy and Terms of Service apply.