"Facebook ads not delivering" covers a range of different problems: ads that literally won't serve at all, or campaigns that are technically running but getting far fewer impressions than expected. Not sure where to start? Our Ads Troubleshooter walks you through the diagnosis step by step. Otherwise, diagnosis starts with checking the status of each level of the campaign hierarchy.
Check the Campaign Hierarchy First
Facebook ads have three levels: Campaign > Ad Set > Ad. An issue at any level can stop delivery at all levels below it. Before diagnosing deeper issues, verify:
- Is the Campaign status "Active" (not "Off," "Paused," or "Error")?
- Is the Ad Set active with a live schedule and budget?
- Is the Ad approved and active (not "Disapproved," "In Review," or "Paused")?
If any level is off or paused, that's your answer. If everything shows "Active" and you still have no delivery, proceed to the reasons below.
9 Reasons Facebook Ads Stop Delivering
1. Audience Too Small
Symptoms: Ad set status shows "Active" but delivery column shows very few or zero impressions. You may see a warning about audience size.
Cause: The combination of targeting options (demographics, interests, custom audiences, exclusions, behaviors) has narrowed the audience below Meta's minimum for reliable delivery. Meta generally needs at least a few thousand people in an audience to deliver effectively.
Fix:
- Widen the geographic targeting
- Remove overly restrictive interests or demographic filters
- Reduce exclusion lists
- Check the audience size estimate in the ad set targeting panel. Aim for at least 100,000+ for campaign stability, though smaller audiences can work for retargeting
2. Bid Too Low (Manual Bidding)
Symptoms: Low or zero impressions with no obvious targeting or approval issues.
Cause: If you're using manual bidding (cost cap, bid cap, or minimum ROAS), your bid may be too low to win auctions consistently. This is common with cost caps that are set too aggressively relative to market CPMs.
Fix:
- Switch to "Advantage Campaign Budget" or "Lowest Cost" bidding temporarily to check if the campaign can deliver at all
- If delivery improves, your cost cap was too restrictive. Adjust it upward incrementally.
- Check your CPM benchmarks for your industry and audience type. Your bid needs to be competitive. Use our CPM Calculator to estimate what you should expect to pay.
3. Ad Disapproved
Symptoms: "Disapproved" status on one or more ads in the ad set.
Cause: Meta's automated or manual review found a policy violation in your ad creative or landing page.
Fix:
- Check the disapproval reason by clicking the "Disapproved" status badge
- Edit the ad to address the specific violation. Refer to Meta's Advertising Policies for the full list of rules
- Resubmit for review (editing and saving an ad automatically resubmits it)
- If you believe it's a false positive, use the "Request Review" option
4. Ad Account Restricted
Symptoms: All campaigns show very limited or zero delivery. Account-level banner or warning visible in Ads Manager.
Cause: Your ad account has been restricted due to policy violations, payment issues, or unusual activity.
Fix: Check the notification in your Ad Account Quality page for specific violations. Appeal if you believe it's a mistake, or fix the flagged issues and request a review. You can also contact Meta directly via the Meta Business Help Center.
5. Campaign or Ad Set Is Turned Off
Symptoms: Status shows "Off" despite your intention to run the campaign.
Cause: Sounds obvious, but campaigns are often accidentally paused via bulk edits, scheduled rules, or when someone else on the account hits pause during review.
Fix:
- Check Campaign status toggle (not just Ad Set)
- Review Automated Rules in Ads Manager (a rule may be pausing campaigns based on performance thresholds)
- Check if there's an end date set on the campaign or ad set that has already passed
6. Learning Phase Stalling
Symptoms: Ad set has been in "Learning" status for more than 7 days with very low delivery.
Cause: Meta's algorithm needs approximately 50 optimization events per week to exit the learning phase. If your budget is too low, your audience too small, or your optimization event too rare, the campaign stalls in learning.
Fix:
- Increase daily budget so the algorithm can gather data faster
- Optimize for a higher-volume event (clicks, landing page views, or add-to-carts rather than purchases if purchase volume is low)
- Consolidate ad sets: fewer ad sets means more data per ad set and a faster exit from learning
- Avoid editing active campaigns, as every significant change resets the learning phase
7. Payment Issue
Symptoms: All campaigns suddenly stop delivering. Banner in Ads Manager about billing.
Cause: Payment method declined, credit limit reached, or billing threshold not paid.
Fix:
- Go to Billing > Payment Methods
- Update or add a new payment method
- Pay any outstanding balance
- Campaigns typically resume within a few hours after payment is processed
8. Low Budget for the Optimization Event
Symptoms: Campaign in "Learning limited" or very sparse delivery despite a seemingly reasonable budget.
Cause: If you're optimizing for a rare event (e.g. purchase at $200 CPA) with a $20/day budget, Meta can only gather 1 conversion every 10 days. That's not enough data for the algorithm to learn.
Fix:
- Set daily budget to at least 2-3x your target CPA (if you want $200 CPA, budget at least $400-600/day for the algorithm to have enough runway)
- Or switch to optimizing for an earlier funnel event (add-to-cart, initiate checkout) if your purchase volume is too low
9. iOS Privacy Limiting Signals
Symptoms: Campaigns that previously ran well start delivering less efficiently after iOS updates. Conversion volumes in reporting look lower than expected.
Cause: Apple's App Tracking Transparency (ATT) framework from iOS 14.5+ means many iPhone users have opted out of tracking. Meta receives fewer conversion signals from iOS users, which reduces the algorithm's ability to target effectively.
Fix:
- Enable Conversions API (CAPI) for server-side event sending. This bypasses browser-based restrictions and gives Meta more complete data
- Verify your domain in Meta Business Manager (required for aggregated event measurement)
- Prioritise your top 8 pixel events in Events Manager > Aggregated Event Measurement
- Accept that some delivery and attribution loss is permanent under current privacy changes
Quick Diagnosis Checklist
When your Facebook ads aren't delivering, check in this order:
- All levels (campaign/ad set/ad) are "Active"?
- No disapproved ads?
- No account-level restrictions or billing issues?
- Audience size sufficient?
- Budget appropriate for the optimization event?
- Not stuck in learning phase with insufficient data?
- No automated rules pausing campaigns?
- CAPI set up for iOS signal recovery?
Most delivery issues resolve to one of these causes. Methodically checking each takes less than 10 minutes and surfaces the problem quickly.
