Documentation

Lift measurement methodology

A lift report compares respondents who were subject to something against a matched group who were not, then reports the difference in outcomes. This page explains how the treated group and matched control are constructed, how the difference is calculated, and which claims each design supports.

The measurement is general. Advertising brand lift is its most common application, but nothing in the method is specific to advertising: the platform needs a per-respondent indicator saying who was treated, one or more outcome questions, and a set of variables to match on. Anything expressible that way can be measured this way.

What can be measured

ApplicationHow the treated group is identifiedTypical outcomes
Advertising campaignAd-server exposure matched to respondentsAwareness, recall, consideration, favorability, intent
Creative or concept testRandom assignment inside the surveyAppeal, message take-out, purchase intent
Message and claim testingRandom assignment inside the surveyAgreement, persuasion, believability
Sponsorship or eventAttendance or exposure recorded in the surveyBrand association, sentiment
Packaging or in-store stimulusRandom assignment, or observed exposureFindability, appeal, switching intent
Direct mail, email, or CRM campaignMatched against a first-party contact listRecall, action taken, sentiment
Product trial or usageDeclared usage or a customer-file matchSatisfaction, advocacy, repeat intent

A single stimulus topic (brand, creative, message, or any other label) makes the analysis run separately for each value of it. One study covering fifty brands produces fifty independent lift reads from one dataset. See Reaching low-incidence audiences.

How strong a claim the result supports

This is the first question a reviewer should ask, and the answer depends entirely on how the treated group came to be treated. Matching on demographics equalizes the variables you matched on. It does not turn an observational comparison into an experiment.

How the treated group was formedDesignWhat the result supports
Random assignment inside the surveyExperimentalA causal effect of the stimulus on the outcome, within the sample
Server-verified media exposure, matchedQuasi-experimentalThe effect of having been exposed, net of the matched characteristics. Media targeting means exposure is not random, so residual confounding is possible
Declared or recalled exposureObservationalAssociation. Recall is itself correlated with brand familiarity, which is frequently the outcome being measured
Behavioral or status split, such as customers against non-customersObservationalAssociation only. Matching on demographics does not remove selection into the group

State the design alongside any reported result. A quasi-experimental comparison supports a different claim from a randomized experiment and should not be described as randomized.

Establishing the treated group

Whatever the application, the mechanism is the same: an indicator is recorded against the respondent and carried onto their answers, and the lift report reads it back.

The indicator is set in the survey with an s.tag() block, so every question inside the block carries the respondent's status automatically. Configuration is documented in Reporting lift against control groups.

Random assignment in-survey

Respondents are randomly allocated to see or not see the stimulus, and the allocation is tagged. Because assignment is random, the comparison estimates a causal effect rather than an association. This design applies to creative, concept, message, and packaging tests whether or not media has run.

Matched media exposure

Where the treatment is real-world media, exposure records are sent to MX8 Labs from the ad server and matched against respondents.

Two ingest routes are supported. A pixel hosted by MX8 Labs is embedded in the ad server or tag manager and fires on render, capturing exposures in real time; this suits display and rich media. Server-to-server delivery uploads gzip-compressed CSV files of exposure records to an MX8-managed S3 bucket, which suits connected TV, audio, server-rendered placements, and any case where IP addresses should be hashed before leaving the client's environment.

Each record carries an IP address, plaintext or MD5-hashed, plus optional identifiers: a user identifier of up to 128 characters, and dimensions such as brand or creative. A retention window is set per source to match the campaign timeline.

IP address is the join key. A match is recorded only when four conditions all hold:

ConditionWhat is checked
IP address parityThe same IP appears in both the exposure log and the response pool
Same study windowBoth records fall inside the fielding window defined for the campaign
Respondent passes validationThe respondent cleared the full quality pipeline
Exposure is attributableThe ad server recorded a real impression event, not a bot or crawler fetch

The third condition carries most of the weight. Matching against an uncleaned respondent pool produces a match rate rather than a measurement, because duplicates, bots, and spoofed sessions all carry IP addresses. MX8 Labs validates the respondent pool before the join runs. In the production data summarized in our January 2026 survey fraud analysis, that validation excluded 10 to 20 percent of incoming respondents; the rate varies by study and source. See IP Address Hygiene and Exposure Matching and Data quality methodology.

The unit of attribution is the household by default. IP addresses are shared behind household NAT, so the person who saw the ad and the person who answered the survey are not necessarily the same individual. This is a property of any IP-joined design, and for most consumer campaigns in-home exposure is the relevant signal anyway. Studies requiring person-level attribution are configured separately, with sample design and in-survey verification to support the stricter standard.

Exposure records with no matching respondent still count toward reach but contribute nothing to respondent-level analysis. Respondents with no matching exposure form the untreated pool.

Because survey-based lift asks people directly, it is independent of the pixel for the outcome measurement even when the pixel supplies the exposure signal. It stays usable on media where no click exists, and resistant to the identifier degradation eroding attribution-based measurement.

Frequency and recency

Matched exposures carry two further attributes: frequency, the number of exposures for that value, and days_since_exposure, the recency of the most recent one where available.

This allows treatment to be defined as something more precise than a binary, such as respondents seen three or more times in the last seven days, or the questionnaire to branch on exposure intensity, or light and heavy exposure to be compared directly. For wear-out and frequency-response questions this is the difference between a usable study and a null result. See What are exposure sources.

Declared exposure

Where no feed and no randomization exist, the indicator can be set from a recognition or recall question. This is the weakest route, for the reasons in the table above, and reporting should describe it as declared rather than verified.

Constructing the control group

The control group is drawn from untreated respondents and matched to the treated group on chosen variables: gender, age band, region, prior category usage, or any other question designated as a control. Control variables are used only for matching; lift is not measured on them.

Matching is repeated rather than performed once. A result based on one matched control can be sensitive to which eligible untreated respondents are selected.

For the configured number of iterations, the platform constructs a balanced control group from the available untreated pool and averages the results. Selection is deterministic: the same respondent data, configuration, and reporting implementation produce the same matched controls. Repeating the match reduces dependence on any one eligible control selection; it does not remove sampling variance or unmeasured confounding. New lift reports created in the interface use five iterations by default, while the reporting API accepts an explicit iteration count.

Computing lift

Lift is computed separately for each value of the stimulus topic, so one study measures each brand, creative, or message independently rather than in aggregate.

Outcomes are handled by type:

  • Categorical outcomes - awareness, recall, brand selected, option chosen. Lift is calculated separately for each response value.
  • Numeric and scale outcomes - consideration on a 0 to 10 scale, a 1 to 5 rating. Lift is calculated at thresholds, for example the proportion scoring 7 or above, 8 or above, 9 or above. This matters because a stimulus often moves the top of a scale without moving the mean, and a mean-only comparison hides that.

For each stimulus value the sequence is: split respondents into treated and untreated candidates, build a matched control on the control variables, calculate outcome rates for both groups, take the difference, test it, and average across matching iterations.

Significance

Every reported difference is tested, and results that do not clear the configured threshold are suppressed rather than shown with a caveat.

The p-value threshold is configurable. Use 0.05 for externally reported results, 0.10 for directional reads, and looser settings only for explicitly exploratory analysis. Weighted margin of error is reported on all results, and where weighting is applied, standard errors use a Kish effective-sample-size adjustment so precision claims degrade as weights become more heterogeneous; see Weighting methodology and Understanding stat testing. Negative lift is off by default and can be enabled to include outcomes where the treated group performed worse than control.

Reading a result

Media exposure matched from an ad server, stimulus topic set to brand, gender as the control variable:

BrandMetricTreatedControlLift
Brand AAwareness62%54%+8 pts
Brand AConsideration 7+38%33%+5 pts

This supports the claim that exposure to the Brand A campaign was associated with higher awareness and consideration among the matched population, net of the demographic differences matched on, at the configured significance threshold. Because exposure was not randomly assigned, it is a quasi-experimental read. It does not support a claim about the full sample, about respondents outside the matched population, or about mechanism.

Limitations

Matching consumes sample. Every treated respondent needs a comparable counterpart. A thin untreated pool, or a treated group with an unusual profile, reduces the usable base and widens intervals. Campaign reach governs the split you get, and because reach against a sampled audience is usually low, the exposed group is nearly always the scarce side while control is abundant. Sample size and precision gives the arithmetic and the total sample required at each level of reach.

More control variables is not better. Each one makes the comparison cleaner in principle and reduces power in practice. The right number is the smallest set that plausibly confounds the outcome.

Matching is not randomization. Demographic balance removes the imbalance you matched on and nothing else. Where treatment was not randomly assigned, unmeasured confounding remains possible and should be acknowledged.

IP is not a person. For matched media exposure, household-level attribution is the default.

Inference applies to the matched population, not the full achieved sample and not the market.

Treatment measurement bounds everything downstream. No amount of statistical care compensates for an unreliable exposure feed or a vague recall question.

This is not media mix modeling. Lift measures the effect of a specific treatment on measured outcomes for a specific audience. It does not allocate budget across channels, model diminishing returns, or substitute for MMM or geo-based incrementality testing. It answers a narrower question, directly.

Component references

ComponentReference
Lift report configurationReporting lift against control groups
Sending exposure dataWhat are exposure sources
Pixel setupCreating a pixel exposure source
Server-to-server setupCreating an S3 snapshot exposure source
Respondent validation before matchingIP Address Hygiene and Exposure Matching
Sizing the studySample size and precision
Weighting and effective sample sizeWeighting methodology
Significance testingUnderstanding stat testing