Ghost Ads & PSA Testing
Two Mechanisms for the Same Goal: Clean User-Level Control Groups
Both Ghost Ads and PSA (Public Service Announcement) testing solve the same core problem as geo holdouts — establishing a valid control group to measure true ad lift — but do it at the individual user level within a single ad platform, rather than by splitting geographic markets. They're the standard methodology behind Meta's Conversion Lift and Google's Conversion Lift / Brand Lift products, and understanding the mechanical difference between the two matters because it changes what the control group actually experiences.
PSA (Public Service Announcement) Testing
In PSA testing, the control group is randomly selected from the same eligible audience and is shown a genuine, unrelated ad — typically a public service announcement (a charity, a civic message) — in the exact ad slot where your campaign's ad would otherwise have appeared. This means the control group experiences a comparable ad exposure (same platform, same placement, same frequency pattern) just with different, irrelevant creative — isolating the effect of your specific message/offer rather than confounding it with 'any ad exposure at all' versus 'no ad exposure.'
Ghost Ads
In a Ghost Ads design, the control group doesn't see any ad at all, but the platform still runs the full ad auction and placement logic for them in the background, logging what *would have* been shown ('a ghost impression') without actually rendering it. This lets the platform count what the control group's exposure eligibility would have been, giving a cleaner never-exposed baseline than PSA testing, at the cost of control-group behavior potentially differing for the simple reason of literally seeing fewer ads overall (not a message-specific effect, but a raw exposure-volume effect).
PSA testing vs Ghost Ads
| Dimension | PSA Testing | Ghost Ads |
|---|---|---|
| Control group experience | Sees a real ad (different content) in the same slot | Sees no ad; impression logged but not rendered |
| What's isolated | Effect of your specific message/offer vs. generic content | Effect of any exposure to your brand at all |
| Platform availability | Meta Conversion Lift, some DSPs | Common in programmatic/DSP environments (e.g., historically Nielsen/comScore methodology, some DSP lift products) |
| Risk of bias | Control group frequency/exposure pattern matches treatment closely | Control group may behave differently just from lower overall ad frequency |
Both Require the Platform to Cooperate With Randomization
{
"study_type": "conversion_lift",
"test_group_percentage": 90,
"control_group_percentage": 10,
"control_mechanism": "psa",
"conversion_event": "purchase",
"attribution_window_days": 7,
"min_audience_size": 500000,
"min_expected_conversions": 2000
}Minimum Scale Requirements
Lift studies of this kind need substantial scale to detect statistically significant effects, because the underlying conversion rate per impression is typically small and the lift being measured is a fraction of an already-small base rate. Platforms enforce minimum audience size and minimum expected conversion thresholds before a lift study is even eligible to run (illustrated in the config above) — campaigns below this threshold simply can't be measured this way, and teams need to fall back to geo holdouts or MMM for smaller-scale activity.
Lift Study Results Are Platform-Specific, Not Universally Comparable
What's Next?
With a solid grounding in causal measurement across geos, holdouts, and platform-native lift studies, the broader measurement toolkit — surveys, panels, and brand studies — rounds out how marketing effectiveness gets validated beyond click-level data alone.
I build these systems professionally.
Whether it's a RAG pipeline, analytics migration, or AI workflow — let's talk.