Step 1: Get the AI Visibility Time Series
You need a weekly numeric series that proxies AI exposure for your brand. The standard metric is LLM share of voice: the percentage of category-relevant prompts in which your brand is mentioned across the major AI platforms, weighted by platform reach in your audience. The series should be exported as a CSV with two columns: week (ISO date) and SOV value.
For backfit work, you need at least 52 weeks of history. Presenc AI provides historical backfill via prompt-testing against the AI platforms' time-stamped state; without backfill, the variable will be informative only after six to twelve months of forward measurement.
Step 2: Pick the Variable Type
In Robyn, the AI variable enters as a paid_media_var with a corresponding paid_media_spend column. Because AI visibility is exposure rather than spend, set the spend column to a constant placeholder (1 per week) and rely on the impression-style coefficient for interpretation. In LightweightMMM and PyMC-Marketing, the variable enters as a media variable with the same convention.
Alternative spec: enter the AI variable as a control variable in the base equation rather than a media variable. This is acceptable when the data history is short or when the brand wants the model to be conservative about the AI channel's contribution. The trade-off is loss of a standalone response curve, which means budget allocation recommendations cannot include AI as a discrete line.
Step 3: Set Adstock Priors
Use a geometric adstock with half-life prior of two to four weeks for most categories. Long-consideration B2B categories may need half-life up to eight weeks; short-cycle consumer purchases may use one to two weeks. The prior matters because the AI visibility series is typically short relative to TV-style channels, and uninformative priors will produce wide posteriors.
In Robyn syntax: set adstock = "geometric", and supply theta_min and theta_max bounds that correspond to your half-life prior range. In LightweightMMM, use the carryover_loc and carryover_scale arguments on the AI variable.
Step 4: Set Saturation Priors
Use a Hill or S-curve saturation with the half-saturation point prior in the middle of the observed AI visibility range. The intuition is that AI visibility, like any exposure variable, hits diminishing returns once your brand is consistently mentioned in the top three of the relevant prompts. Past that threshold, additional SOV improvements produce smaller incremental conversion gains.
In Robyn: hill_function = TRUE with alpha and gamma bounds reflecting moderate saturation. In LightweightMMM: use the saturation_loc and saturation_scale priors on the variable.
Step 5: Run the Refit
Refit the model with the AI variable added. In Robyn, this is robyn_run() with the updated InputCollect; in LightweightMMM, this is lightweight_mmm.fit() with the updated media data. Expect the run to take longer than baseline because the Bayesian sampler has an additional variable to identify.
If the run fails to converge, the most common cause is multicollinearity between the AI variable and existing channels (especially branded search and PR-driven brand mentions). Address this by orthogonalizing the AI series against the most correlated existing variable or by tightening priors on the AI coefficient.
Step 6: Validate the New Decomposition
Three checks. First, look at the channel contribution waterfall. The AI variable should have a non-trivial contribution (greater than 1 percent of decomposed revenue) if the model identified it. Second, the base demand contribution should have dropped relative to the pre-AI-variable model, because some of that base is now attributed to AI. Third, the MAPE on a holdout period should improve, indicating the AI variable adds explanatory power.
If any of these checks fails, revisit the spec. The most common issue is adstock too short (AI carryover underestimated) or the AI series being too noisy because the prompt set is too small.
Step 7: Inspect the Response Curve
Plot the response curve for the AI variable. It should show clear diminishing returns at the upper end and a reasonably steep slope at typical operating SOV levels. A flat response curve indicates the model did not identify the variable; a hockey-stick response curve indicates the saturation prior is too weak.
The response curve is the operational output. It is what the budget optimization step uses to decide whether the next dollar of marketing investment should go into the inputs driving AI visibility or into the next-best channel.
Step 8: Document and Govern
Document the AI variable in the model governance pack: the prompt set used, the platforms covered, the SOV computation, the adstock and saturation priors, the validation results. Any change to the prompt set or platform list is a model change and needs to be flagged in the next refit.
How Presenc AI Helps
Presenc AI exports weekly LLM share of voice in the exact CSV format that Robyn, LightweightMMM, and PyMC-Marketing expect. The export includes a stable prompt set governance trail, platform weighting that matches the brand's audience profile, and historical backfill so the AI variable has 52 weeks of context from the first refit.