Honest Growth
← All detections

Detection · asc_existing_customer_cap_missing

Detection: Advantage+ Shopping without an existing-customer budget cap

Key: asc_existing_customer_cap_missing Severity: High Confidence: 80–90% Shipped: v1.2, May 2026 Runtime: Requires Meta OAuth (the is_asc and existing_customer_cap_pct fields come from the Meta API and aren't in CSV exports).

What this detection looks for

We fire one finding per ASC campaign when:

  1. The campaign is flagged as Advantage+ Shopping (ASC)
  2. The campaign is ACTIVE with positive spend in the audit window
  3. Either the existing-customer budget cap is unset, or the cap is set above 35% of ASC spend

Why this matters

Meta's Advantage+ Shopping campaigns have a separate "existing customer" budget cap that splits prospecting from demand-capture spend within the same campaign. Without the cap set, Meta defaults to a heavy share on existing-customer retargeting — easy wins for the auction algorithm because those customers already have purchase intent. The cost: on a $30K/month account, mis-set caps regularly mean 40–60% of ASC budget cannibalizes organic and email revenue.

The 35% ceiling comes from Alex Neiman's 2026 ASC guide and Foxwell's framework on ASC tuning. Above 35%, the campaign is structurally biased toward existing customers; below 20–25% is the healthy target for prospecting-led growth.

How we calculate confidence

Condition Confidence
Existing-customer cap not set on an ACTIVE ASC 90%
Cap set, but above 0.35 of ASC spend 80%

How we estimate the recoverable dollars

monthly_recoverable = (asc_spend × overrun_share × 0.6 incrementality_discount × 30 / audit_days)

where overrun_share = max(0, assumed_existing_customer_share − 0.35)
and assumed_share = 0.55 when cap is unset, else the configured cap value

The 0.55 default for "unset" reflects Meta's documented behavior of spending the majority on existing customers when no cap is configured. The 0.6 incrementality discount accounts for "this conversion might have happened anyway via organic/email" — we don't claim every existing-customer purchase is purely wasted.

What would change our mind

  • Acquisition-priced product launch. Some accounts deliberately bias ASC toward existing customers during a new-product launch to drive review velocity. If you're inside a 30-day launch window, the cap-overrun is intentional. Re-audit after the launch closes.
  • Subscription/replenishment business model. When the product is consumable (skincare, supplements, pet food), an "existing customer" purchase on ASC is materially incremental — the cap heuristic over-flags. Treat the dollar number as a ceiling.
  • Lifecycle programmatically separated. Some advanced setups run prospecting-only ASC alongside a separate retention campaign. If your ASC is supposed to be 100% existing-customer, this rule shouldn't be on. Flag the campaign objective in your account notes so audit interpretation stays accurate.

What to do about it

  1. In Meta Ads Manager, open the ASC campaign settings. Locate the "Existing customer budget cap" field.
  2. Set it to 20–25% for prospecting-led growth, or 35% if your repeat-customer business model warrants more existing-customer share.
  3. Watch the next 7–14 days of delivery. ASC will rebalance toward prospecting; CPA may rise short-term as the auction re-feeds; ROAS adjusts as the mix matures.

References

  • Alex Neiman: "Meta Advantage+ Shopping Campaigns Guide 2026"
  • Foxwell Digital: "Meta's New ASC System — What It Is, Why It Matters"
  • Meta Business Help Center: Advantage+ Shopping setup documentation

See it run on a real account.

The sample audit shows this and 14 other detections fired against a synthetic but realistic $30K/month account.