Skip to main content
Every ad account has bleeders (burning budget) and winners (driving results). Finding them quickly is the difference between profit and waste.

Bleeders: Stop the Bleeding

What is a Bleeder?

An ad that consumes significant budget but delivers poor performance. These are your first candidates for pausing.

Detection Criteria

An ad is flagged as a bleeder if it meets any of these conditions:
SignalThresholdWhy it matters
CTR too low< 1.0%Audience isn’t engaging
Frequency too high> 3.5Ad fatigue — same people seeing it repeatedly
Spend with no results> $10 spent, 0 conversionsBurning money
CPA above target2x your target CPAInefficient acquisition
Customize thresholds in ad-config.json based on your vertical and benchmarks.

How to Identify Bleeders

Run the bleeders report:
# Last 7 days (recommended)
./scripts/meta-ads.sh bleeders --preset last_7d

# Last 30 days (for wider view)
./scripts/meta-ads.sh bleeders --preset last_30d
The report automatically flags ads based on the thresholds and ranks them by severity.

What Actions to Take

1

Review the flagged ads

Don’t auto-pause. Check the full context:
  • Is CTR low but conversion rate high? (Some niches have naturally lower CTR)
  • Is frequency high but results still coming in? (Brand awareness campaigns)
  • Is the creative new (< 3 days)? (Give it time to stabilize)
2

Pause confirmed bleeders

social marketing pause ad AD_ID
This stops the ad immediately. Make sure you’ve reviewed performance before pausing.
3

Log the decision

Document why you paused it in workspace/brand/learnings.md:
## 2026-03-04 — Paused "Summer Sale Carousel"
- CTR: 0.64% (below 1%)
- Frequency: 4.2 (audience fatigued)
- Spent $287 over 7 days with declining performance
- Action: Paused, will test new creative angle
4

Plan replacement creative

Don’t just pause — replace with fresh creative:
  • Try a different angle or hook
  • Refresh the visual
  • Test a new audience segment
Bleeders often reveal audience or creative mismatches. Look for patterns — if multiple ads targeting the same audience are bleeding, the audience might be the problem, not the creative.

Winners: Find Scale Opportunities

What is a Winner?

An ad with strong engagement, efficient spend, and room to scale. These are your profit drivers.

Detection Criteria

An ad is flagged as a winner if it meets all of these conditions:
SignalThresholdWhy it matters
High CTR> 2.0%Strong engagement
Low CPC< 50% of account averageEfficient delivery
Conversion volume> 10 conversionsProven results
Frequency headroom< 2.5Still has fresh audience
Spend headroom< 50% of daily budgetRoom to scale
Winners have both performance (CTR, CPC) and capacity (frequency, budget headroom).

How to Identify Winners

Run the winners report:
# Last 7 days (recommended)
./scripts/meta-ads.sh winners --preset last_7d

# Last 30 days (for consistent performers)
./scripts/meta-ads.sh winners --preset last_30d
Winners are ranked by efficiency score (CTR × conversion rate × inverse CPC).

What Actions to Take

1

Validate the winner

Check:
  • Is performance consistent over 7+ days?
  • Does it meet your CPA/ROAS target?
  • Is the creative still fresh (frequency < 2.5)?
2

Scale the budget (conservative)

Increase budget by 20-30% to avoid disrupting the algorithm:
# Get current budget
social marketing get adset ADSET_ID

# Increase by 20% (e.g., $50 → $60 = 6000 cents)
social marketing set-budget adset ADSET_ID --daily-budget 6000
Don’t double budget overnight. The Meta algorithm needs time to adjust. Increase gradually (20-30% every 3-5 days).
3

Duplicate to new audiences

If scaling the existing ad set hits a ceiling (frequency > 3), duplicate the winning creative to a new audience:
  • Lookalike audience (if not already using)
  • Broader interest targeting
  • New geographic region
4

Extract patterns

Document what makes this ad work in workspace/brand/learnings.md:
## 2026-03-04 — Winner: "Before/After Transformation"
- Visual: Side-by-side transformation grid
- Hook: "3 months ago vs today"
- Angle: Social proof via visual evidence
- CTR: 3.24% (2.5x account avg)
- Audience: Women 25-45, fitness interest
- Action: Scaled budget $400 → $500/day
Use these patterns to inform new creative production.
Test variations of your winners. If “Before/After Transformation” works, try different transformations, different time ranges (“6 months” vs “3 months”), or testimonials from different customers.

Bleeders vs Winners: Side-by-Side

MetricBleederWinner
CTR< 1%> 2%
Frequency> 3.5 (fatigued)< 2.5 (fresh)
CPCAbove account avg< 50% of avg
ConversionsLow or zeroConsistent volume
ActionPauseScale

Common Questions

No. Review context first:
  • New ads (< 3 days): Give them time to stabilize
  • Brand awareness campaigns: CTR may be lower, but reach/frequency matter more
  • High-intent audiences: Sometimes low CTR is fine if conversion rate is strong
Use bleeders as candidates for review, not an auto-pause list.
Daily during active campaign periods. Bleeders can burn hundreds of dollars in a weekend if not caught.Run the report every morning as part of your daily check.
No. The criteria are mutually exclusive. But an ad can transition from winner to bleeder as it fatigues.Monitor your winners for fatigue signals (see Fatigue Detection).
Conservative rule: Increase budget by 20-30% every 3-5 days until performance degrades.Watch for:
  • CTR declining > 20%
  • Frequency climbing > 3
  • CPA rising above target
When you hit a ceiling, duplicate the creative to a new audience instead of pushing the existing one further.

Next Steps

Fatigue Detection

Learn how to catch creative fatigue before winners become bleeders

Custom Reports

Build custom queries to dig deeper into performance

Build docs developers (and LLMs) love