Methodology
How we decide what's a finding.
Every detection rule we run is documented here. You can read exactly how each rule decides what to flag, what we count as evidence, and where the rule can be wrong — before you pay us a dollar. If a rule feels wrong, tell us. The rules update.
Detection logic is deterministic Python code, not an LLM. The same account snapshot always produces the same findings. See why this matters →
- 01
Ad sets spending without converting
Active ad sets that have spent $500+ over 14+ days with zero purchases.
zombie_adset
- 02
Campaign at daily cap while sibling underspends
Reallocate budget from a campaign that can't spend its cap to one that's hitting it.
budget_capped_alongside_underspend
- 03
Single creative driving most conversions
When one ad drives >70% of purchases, the campaign is one fatigue cycle from collapse.
creative_concentration_risk
- 04
Frequency saturation with declining CTR
Recent frequency ≥5 combined with a >20% week-over-week CTR drop. The audience is fatigued.
frequency_saturation
- 05
Ad set stuck in Meta's learning phase
Active for 14+ days and still in LEARNING or LEARNING_LIMITED. Won't stabilize without intervention.
learning_phase_stuck
- 06
Ad sets bidding against each other
Two ad sets target overlapping audiences ≥30%. You pay the auction premium twice.
audience_overlap
- 07
Upper-funnel campaign in a purchase-driven account
Traffic, Engagement, or Awareness objective spending against an account that exists to sell things.
wrong_objective
- 08
Audience Network consuming spend at poor unit economics
AN takes ≥15% of an ad set's spend at 2× the CPA of other placements, or with zero conversions.
audience_network_leak
- 09
Prospecting ad set without a purchaser exclusion
Sales-objective prospecting that doesn't exclude recent purchasers. Small waste, real brand cost.
no_purchaser_exclusion
- 10
One placement dominates spend with worse unit economics
Non-Audience-Network placement takes ≥60% of an ad set's spend at ≥1.5× the other placements' CPA.
placement_imbalance
- 11
Attribution window too narrow for this account
1-day click attribution on an account with sales campaigns and ≥$5K/mo spend.
attribution_window_mismatch
- 12
Too few standard events firing for Meta to optimize
Fewer than 3 standard pixel/CAPI events firing across the audit window.
weak_event_coverage
- 13
Top ad got more impressions than it earned
Brand-defining detection. Catches false winners produced by Meta's early-leader delivery bias.
false_winner_meta_bias
- 14
1% lookalike at scale — broader audience worth testing
Active 1% LAL with size ≤5M and ad-set spend ≥$1.5K. Informational; test 3-5% lookalikes.
lookalike_size_suboptimal
- 15
Conversions API missing or weak for Purchase
No CAPI Purchase events, or CAPI volume <50% of browser pixel. iOS signal loss.
capi_missing_or_weak