When a Facebook ad isn't delivering, the cause is usually one of five things:
- Ad status (disapproved, in review, paused)
- Budget or spending limits
- Audience issues (too narrow, overlap)
- Bidding problems
- Creative or relevance decline
This guide walks through each systematically. Start at the top—most delivery issues resolve within the first two checks.
Quick Diagnostic Checklist
Before diving deep, run through this rapid triage:
| Check | Where to Look | Common Issue | Fix |
|---|---|---|---|
| Ad Status | Delivery column in Ads Manager | In Review, Disapproved, or Off | Wait 24h for review; fix policy violation and resubmit |
| Account Spending Limit | Billing & Payment Settings | Hit self-imposed cap | Increase or remove limit |
| Campaign/Ad Set Budget | Campaign or ad set settings | Budget too low to compete | Increase to competitive level |
| Payment Method | Billing & Payment Settings | Card declined, expired | Update payment method |
| Learning Phase | Delivery column shows "Learning" | New campaign, unstable delivery | Wait for ~50 conversions; avoid edits |
If none of these apply, continue to the detailed sections below.
Level 1: Ad Status Issues
Check the Delivery column in Ads Manager first. This tells you exactly what's happening.
Status Meanings
| Status | What It Means | Action |
|---|---|---|
| Active | Ad is running | If zero impressions, problem is elsewhere |
| In Review | Awaiting policy check | Wait up to 24 hours; don't edit (resets queue) |
| Disapproved | Policy violation | Read the reason, fix the issue, resubmit |
| Learning | Algorithm gathering data | Be patient; avoid changes |
| Learning Limited | Not enough conversions | Broaden audience or lower optimization goal |
| Off | Manually paused | Turn on if unintentional |
| Scheduled | Start date in future | Check schedule settings |
Disapproval Reasons
Common policy violations that trigger disapproval:
- Prohibited content — Certain products, claims, or imagery
- Landing page issues — Broken links, mismatched content, pop-ups
- Personal attributes — Ad implies knowledge of personal characteristics
- Misleading claims — Exaggerated results, fake urgency
- Before/after images — Prohibited in many categories
- Text in image — Excessive text overlay (less common now)
Fix process:
- Read the specific rejection reason in Ads Manager
- Fix the flagged issue (ad creative or landing page)
- Resubmit for review
- If you believe it's an error, request manual review
"Active" But Zero Impressions
The most frustrating scenario. Ad shows "Active" but nothing's happening.
Likely causes:
- Budget too low to win auctions
- Audience too small
- Bid cap too restrictive
- Audience overlap causing suppression
- Scheduling issues (ad set scheduled for future)
Move to Level 2 and Level 3 checks below.
Level 2: Budget and Spending Limits
Financial constraints are the second most common delivery blocker.
Account Spending Limit
A hard cap on total account spend. Once hit, all campaigns stop—regardless of individual budgets.
Location: Billing & Payment Settings → Account Spending Limit
Fix: Increase or remove the limit.
This is easy to forget if you set it months ago. Check it first when all campaigns suddenly stop.
Campaign/Ad Set Budget
Budget must be sufficient to compete in auctions. Meta's algorithm won't bother entering auctions it can't win.
Symptoms of insufficient budget:
- Zero or near-zero impressions
- "Learning Limited" status
- Erratic, minimal spend
Minimum viable budgets (rough guidelines):
| Optimization Goal | Minimum Daily Budget | Rationale |
|---|---|---|
| Link Clicks | $5-10 | Low-cost events |
| Landing Page Views | $10-20 | Slightly higher quality |
| Leads | $20-50 | Mid-funnel goal |
| Purchases | $50-100+ | Needs ~50 conversions/week |
These vary by industry and competition. The underlying rule: budget should support ~50 optimization events per week to exit learning phase.
The math:
```
Minimum Daily Budget = Target CPA × 50 events ÷ 7 days
Example: $25 CPA target → $25 × 50 ÷ 7 = ~$179/day minimum
```
If your budget can't support 50 weekly conversions at your target CPA, either:
- Increase budget
- Lower optimization goal (e.g., Landing Page Views instead of Purchases)
- Accept longer learning phase
Payment Method Issues
Obvious but overlooked. If your card is declined, expired, or over limit, ads stop.
Check: Billing & Payment Settings → Payment Methods
Look for failed payment alerts. Update card details if needed.
Level 3: Audience and Targeting Issues
Your ad is active, budget is fine, but delivery is dead or minimal. Audience problems are likely.
Audience Too Small
Over-segmentation kills delivery. Stacking narrow interests, demographics, and exclusions can shrink your audience to an unworkable size.
Symptoms:
- Very low or zero impressions
- High CPMs (when delivery does happen)
- "Audience too small" warnings
Minimum audience sizes:
| Campaign Type | Minimum Recommended Reach |
|---|---|
| Prospecting (cold) | 1-2 million+ |
| Lookalike | 1 million+ |
| Retargeting | 1,000+ (smaller is acceptable) |
Fixes:
- Remove unnecessary interest layers
- Broaden demographic restrictions
- Use broader Lookalike percentages (3-5% instead of 1%)
- Consider Advantage+ Audience for algorithm flexibility
Audience Overlap
Multiple ad sets targeting the same users = bidding against yourself.
When your own ad sets compete, Meta picks a "winner" and suppresses the others. Result: one ad set gets all delivery, others get nothing.
Common overlap scenarios:
- Prospecting targeting "digital marketing" interest
- Retargeting targeting "all website visitors"
- Same users exist in both → overlap
Using the Audience Overlap Tool
Location: Audiences section in Meta Business Suite
Process:
- Select two or more audiences (checkbox)
- Click three-dot menu (...)
- Choose "Show Audience Overlap"
- Review overlap percentage
| Overlap % | Severity | Action |
|---|---|---|
| <10% | Low | Generally fine |
| 10-20% | Moderate | Consider exclusions |
| 20-30% | High | Exclusions recommended |
| 30%+ | Critical | Exclusions required |
Fixing Overlap with Exclusions
Build exclusions into your campaign structure:
| Ad Set Type | Exclude |
|---|---|
| Prospecting (Broad) | All website visitors, all customers, email list |
| Prospecting (Lookalike) | All website visitors, all customers, other Lookalikes |
| Retargeting (7-day visitors) | Purchasers (7-day) |
| Retargeting (8-30 day visitors) | 7-day visitors, Purchasers (30-day) |
Without proper exclusions, you pay prospecting CPMs for users you could retarget cheaper—or suppress delivery entirely.
Level 4: Bidding and Auction Issues
Budget is adequate, audience is valid, but still no delivery. The problem may be how you're entering the auction.
Bidding Strategy Mismatch
| Strategy | How It Works | Delivery Risk |
|---|---|---|
| Highest Volume | Maximize results within budget | Low risk—aggressive delivery |
| Cost Per Result Goal | Target average CPA | Medium risk—if cap too low, no delivery |
| Bid Cap | Hard ceiling on auction bid | High risk—can completely block delivery |
| ROAS Goal | Target minimum return | Medium risk—may limit delivery if target too high |
If delivery is blocked:
- Switch to Highest Volume temporarily to gather data
- If using Cost Cap, increase cap by 20-30%
- If using Bid Cap, raise significantly above historical average
Bid Cap Too Low
Manual bid caps offer control but create delivery risk.
Example: You set $0.50 bid cap for link clicks in a niche where average CPC is $2.00. You'll lose every auction.
Fix:
- Check historical data for actual cost per result
- Set bid cap 10-20% above that average
- Lower gradually as you gather data
Or remove bid cap entirely and use Cost Per Result Goal for softer cost control.
CBO Starving Ad Sets
Campaign Budget Optimization (CBO) distributes budget to top performers automatically. But this can starve new or slower-starting ad sets.
Scenario:
- Campaign has 4 ad sets
- Ad Set A gets quick early wins
- CBO pours entire budget into Ad Set A
- Ad Sets B, C, D get zero delivery
When to use Ad Set Budgets (ABO) instead:
- Testing new audiences or creative (need equal distribution)
- Launching new ad sets that need time to learn
- When CBO consistently favors one ad set
CBO fix: Set minimum spend limits per ad set (if available) to guarantee each gets budget.
Level 5: Creative and Relevance Issues
Technical setup is correct, but delivery declines over time. The problem is likely creative fatigue or poor relevance.
Ad Fatigue Symptoms
- Frequency climbing (same users seeing ad repeatedly)
- CTR declining week-over-week
- CPA rising while other metrics stable
- Negative feedback increasing (hides, reports)
- Relevance diagnostics dropping
When users tune out, Meta reduces delivery. The algorithm prioritizes user experience over advertiser spend.
Ad Relevance Diagnostics
Location: Ads Manager → Customize Columns → Ad Relevance Diagnostics
| Diagnostic | What It Measures | Concern Level |
|---|---|---|
| Quality Ranking | Perceived ad quality vs. competitors | Below Average = problem |
| Engagement Rate Ranking | Expected engagement vs. competitors | Below Average = problem |
| Conversion Rate Ranking | Expected conversion rate vs. competitors | Below Average = problem |
Interpreting combinations:
| Quality | Engagement | Conversion | Likely Issue |
|---|---|---|---|
| Below Avg | Below Avg | Below Avg | Creative is weak across the board |
| Average | Below Avg | Average | Creative doesn't engage but converts when clicked |
| Average | Average | Below Avg | Post-click experience (landing page) problem |
| Below Avg | Average | Average | Ad quality perception issue (image/video quality) |
Creative Fatigue Timeline
Creative lifespan depends on audience size and budget:
| Audience Size | Daily Budget | Typical Creative Lifespan |
|---|---|---|
| 500K | $50 | 2-3 weeks |
| 1M | $100 | 3-4 weeks |
| 5M+ | $500+ | 4-6 weeks |
| Retargeting (small) | Any | 1-2 weeks |
Higher frequency = faster fatigue. Monitor frequency; when it exceeds 3-4 and CTR drops, refresh creative.
Creative Refresh Strategies
1. Rotation schedule
Don't wait for performance to crash. Queue new creative and rotate every 2-4 weeks proactively.
2. Diverse angles
Test different messaging approaches:
- Benefit-focused vs. pain-point
- Social proof vs. product features
- UGC-style vs. polished production
3. Dynamic Creative
Upload multiple images, videos, headlines, descriptions. Meta tests combinations automatically and serves best performers to each user.
4. AI-assisted generation
Tools like Ryze AI and other creative platforms can generate variations at scale, reducing the manual bottleneck of producing fresh creative constantly.
Landing Page Issues
Creative looks fine, but relevance scores are low. Check post-click experience.
Common landing page problems:
- Slow load time (>3 seconds on mobile = high bounce)
- Message mismatch (ad promises X, page delivers Y)
- Poor mobile experience
- Intrusive pop-ups
- Broken functionality
Meta penalizes ads that lead to poor user experiences. A great ad with a bad landing page will get suppressed.
Level 6: Technical and Tracking Issues
Everything looks correct, but something's still broken. Time to check the technical layer.
Pixel and Tracking Issues
If Meta can't verify conversions, it won't optimize effectively—and may reduce delivery.
Verification checklist:
- [ ] Meta Pixel installed on all pages
- [ ] Pixel fires correctly (test with Meta Pixel Helper extension)
- [ ] Key events configured (ViewContent, AddToCart, Purchase, Lead)
- [ ] Events verified in Events Manager → Test Events
- [ ] Conversions API (CAPI) implemented for server-side tracking
- [ ] Event Match Quality score 6.0+ (ideally 8.0+)
Common tracking issues:
- Pixel installed but events not firing
- Events firing on wrong pages
- Duplicate events (counting conversions twice)
- CAPI not implemented (losing iOS conversions)
Optimization Goal Mismatch
New accounts with fresh pixels often fail because the optimization goal is too ambitious.
The problem: You tell Meta to optimize for Purchases, but your pixel has zero purchase data. The algorithm doesn't know who to target.
The solution: Start with upper-funnel goals and work down:
| Pixel Maturity | Recommended Optimization Goal |
|---|---|
| Brand new (0-50 events) | Landing Page Views |
| Early (50-500 events) | Add to Cart or Initiate Checkout |
| Established (500+ events) | Purchase |
"Season" your pixel by gathering data on easier goals before pushing for conversions.
Placement Restrictions
Over-restricting placements limits where Meta can find impressions.
Common mistake: Manually selecting only Feed placements because "that's where my audience is."
Problem: You're limiting the algorithm's ability to find cheap, effective impressions elsewhere.
Recommendation: Use Advantage+ Placements (automatic) in most cases. Let the algorithm find users across:
- Facebook Feed, Stories, Reels
- Instagram Feed, Stories, Reels, Explore
- Audience Network
- Messenger
Only restrict placements if you have data showing certain placements underperform significantly.
The Learning Phase: When to Wait vs. When to Act
What Is Learning Phase?
When you launch a new ad set (or make significant edits), Meta's algorithm needs data to figure out who to target. This is the "Learning Phase."
Goal: ~50 optimization events within 7 days
During learning:
- Performance is unstable
- Costs may be higher than expected
- Delivery may be inconsistent
Learning Phase Timeline
| Scenario | Expected Duration |
|---|---|
| High budget, broad audience | 2-3 days |
| Moderate budget, defined audience | 3-5 days |
| Low budget, narrow audience | 7+ days or "Learning Limited" |
When to Wait
- Ad set is new (<3 days old)
- Delivery is happening (even if inconsistent)
- You're on track for 50 events/week
When to Act
- Zero impressions after 24 hours
- "Learning Limited" status (won't reach 50 events)
- Costs are 3x+ above target with no improvement
What Resets Learning Phase
Avoid these changes during learning:
- Budget changes >20%
- Bid strategy changes
- Audience changes
- Optimization goal changes
- Adding/removing creative
- Pausing for 7+ days
Small changes are fine. Major changes reset the clock.
Troubleshooting Flowchart
Follow this order for systematic diagnosis:
```
- Ad Status
└── Disapproved? → Fix policy issue, resubmit
└── In Review? → Wait 24 hours
└── Active but no impressions? → Continue to #2
- Budget & Spending Limits
└── Account limit hit? → Increase/remove limit
└── Payment failed? → Update payment method
└── Budget too low? → Increase budget
└── All clear? → Continue to #3
- Audience Issues
└── Audience too small? → Broaden targeting
└── Audience overlap? → Add exclusions
└── All clear? → Continue to #4
- Bidding Issues
└── Bid cap too low? → Raise or remove cap
└── Cost cap too restrictive? → Increase cap
└── CBO starving ad sets? → Use ABO or set minimums
└── All clear? → Continue to #5
- Creative & Relevance
└── High frequency + declining CTR? → Refresh creative
└── Below Average relevance scores? → Improve creative/landing page
└── All clear? → Continue to #6
- Technical Issues
└── Pixel not firing? → Fix pixel installation
└── Events not tracking? → Verify events in Events Manager
└── Optimization goal too ambitious? → Lower goal temporarily
└── Placements too restricted? → Enable Advantage+ Placements
```
Automated Monitoring and Alerts
Manual troubleshooting works for small accounts. At scale, you need automated monitoring.
What to Automate
| Monitoring Task | Manual Approach | Automated Approach |
|---|---|---|
| Delivery drops | Check daily | Alert when impressions drop >50% |
| Frequency spikes | Weekly review | Alert when frequency >4 |
| CPA increases | Spreadsheet analysis | Alert when CPA exceeds threshold |
| Creative fatigue | Watch CTR manually | Alert when CTR drops >20% WoW |
| Budget pacing | Daily check | Alert when underspending |
Tools for Automated Monitoring
| Tool | Primary Function | Best For |
|---|---|---|
| Ryze AI | AI-powered optimization across Google + Meta | Cross-platform monitoring, automated alerts |
| Revealbot | Rules-based automation | Budget management, conditional alerts |
| Madgicx | AI audiences + creative insights | Meta-specific performance tracking |
| Meta Automated Rules | Native platform rules | Basic threshold alerts |
For teams managing multiple accounts or high ad volumes, automated monitoring catches delivery issues before they drain budget.
FAQ
Why is my ad "Active" with zero impressions?
Three most likely causes:
- Budget/bid too low — Can't win auctions
- Audience too small — Not enough people to reach
- Silent policy issue — Ad is limited without full disapproval
Quick fixes: Increase budget by 50%, broaden audience targeting, or check for policy warnings in ad details.
How long should I wait before troubleshooting?
New ad: Wait 24 hours minimum. Some lag is normal.
Established ad that stopped: Troubleshoot immediately. Something changed.
Learning Phase ad: Wait for ~50 conversions or 7 days before making changes.
Can I force my ad to deliver faster?
Not directly, but you can improve auction competitiveness:
- Increase budget significantly
- Raise or remove bid caps
- Broaden audience (gives algorithm more options)
- Switch to Highest Volume bidding temporarily
Don't mistake aggressive spending for good strategy. Fast delivery at poor efficiency isn't the goal.
What is "Learning Limited"?
Your ad set isn't getting enough optimization events (~50/week) to exit learning phase.
Causes:
- Budget too low for optimization goal
- Audience too small
- High-funnel optimization with low conversion volume
Fixes:
- Increase budget
- Broaden audience
- Lower optimization goal (Landing Page Views instead of Purchases)
- Consolidate ad sets (fewer ad sets = more data per ad set)
Why did my delivery suddenly drop?
Common causes for sudden delivery decline:
| Cause | Signal | Fix |
|---|---|---|
| Creative fatigue | High frequency, declining CTR | Refresh creative |
| Audience saturation | Frequency >5, shrinking reach | Expand audience |
| Increased competition | CPM spike, no other changes | Adjust bid strategy or timing |
| Budget/limit hit | Spending stopped abruptly | Check account/campaign limits |
| Policy issue | Check ad status | Review and fix violation |
| Tracking broken | Conversions dropped to zero | Verify pixel/CAPI |
Check metrics in order: status → budget → frequency → CPM → tracking.
How do I prevent delivery issues proactively?
Campaign setup:
- [ ] Budget supports 50+ weekly optimization events
- [ ] Audience size 1M+ for prospecting
- [ ] Proper exclusions to prevent overlap
- [ ] Advantage+ Placements enabled
- [ ] Pixel and CAPI verified
Ongoing management:
- [ ] Monitor frequency (flag when >3)
- [ ] Rotate creative every 2-4 weeks
- [ ] Check relevance diagnostics weekly
- [ ] Use automated alerts for delivery drops
Tools like Ryze AI, Revealbot, and Madgicx can automate monitoring and alert you before small issues become budget-draining problems.
Summary: Troubleshooting Priority Order
| Priority | Check | Most Common Fix |
|---|---|---|
| 1 | Ad status | Wait for review or fix policy violation |
| 2 | Spending limits | Remove account limit |
| 3 | Budget | Increase to support 50 events/week |
| 4 | Audience size | Broaden targeting |
| 5 | Audience overlap | Add exclusions |
| 6 | Bid strategy | Switch to Highest Volume or raise caps |
| 7 | Creative fatigue | Refresh creative |
| 8 | Relevance scores | Improve creative and landing page |
| 9 | Tracking | Fix pixel/CAPI implementation |
| 10 | Optimization goal | Lower goal to match pixel maturity |
Work through this list systematically. Most delivery issues resolve within the first four checks. If you're still stuck at the bottom of the list, the problem is usually technical or requires a fundamental campaign restructure.







