Detection: Retargeting spend share is too high
Key: prospecting_retargeting_imbalance
Severity: Medium
Confidence: 80%
Shipped: v1.2, May 2026
Runtime: Requires Meta OAuth (audience-type classification needs the audiences map; CSV exports don't carry it).
What this detection looks for
We fire one account-level finding when all of these are true:
- The audiences map is populated (Meta OAuth path)
- Account monthly spend projects to ≥ $3,000
- Retargeting spend share exceeds 0.35 of total active-ad-set spend
We classify an ad set as retargeting when any of its included custom audiences are of type:
CUSTOMER_LISTENGAGEMENTVIDEO_VIEWERSWEBSITE
Ad sets with no included custom audiences, or with only LOOKALIKE / SAVED audiences, are treated as prospecting. Ad sets with unknown audience types don't pull the ad set into the retargeting bucket on their own.
Why this matters
Sam Tomlinson's 2026 audit and Common Thread Collective both anchor on healthy mix ≈ 70–80% prospecting / 20–30% demand capture. Above 35% RT spend, the account is usually buying conversions it would have got via organic and email anyway — paid Meta is cannibalizing, not incrementing.
This is one of the most-cited reasons DTC accounts report "ROAS is fine but revenue isn't growing." High-RT mix produces good Meta-reported ROAS while incrementality is near zero. The fix is structural: rebalance spend toward prospecting until growth resumes.
How we estimate the recoverable dollars
overrun = retargeting_spend − (total_spend × 0.35)
wasted = overrun × 0.7 # incrementality discount
monthly_recoverable = wasted × 30 / audit_days
The 0.7 incrementality discount reflects that some retargeting spend genuinely is incremental — the loss isn't 100% of the overrun. It's the most-cited factor in the Haus.io incrementality literature.
What would change our mind
- Lifecycle / replenishment business. Subscription brands and high-AOV repeat purchases legitimately spend more on existing customers because the LTV math supports it. Treat the dollar estimate as a ceiling — actual loss is often lower.
- A real holdout test ruled differently. If you've run a geo holdout that proved your retargeting is incremental, trust the test over the heuristic. The rule is a structural pattern signal; an incrementality test is direct measurement.
- Recent prospecting pause. If you turned prospecting off in the last 14 days while you sort out tracking or creative, the share is artificially high — flag the audit and re-run after you re-launch prospecting.
What to do about it
- Audit the retargeting ad sets. Identify which ones can be paused outright (low LTV, broad audience), and which can be reduced (high LTV, narrow audience).
- Raise prospecting budget on the top 2–3 prospecting ad sets, not all of them. Concentration over fragmentation — see
spend_fragmentation. - Set a target mix and watch it weekly. 70/30 prospecting/RT is a common target. Track for 4 weeks before judging — Meta's optimization needs time to re-balance.
References
- Sam Tomlinson: "The Ultimate Meta Ads Account Audit, Part II"
- Common Thread Collective: 27-Point Facebook Ads Audit
- Haus.io: "Understanding Meta Incrementality Testing"