- Quick diagnostic: where to look first
- Bid or cost cap is below market rate
- Audience is too small to enter auctions
- Audience overlap is killing delivery
- Creative fatigue or low quality ranking
- Too many ads splitting the budget
- Account spending limit reached
- Optimization event is too rare
- Diagnostic checklist
- FAQ
You launch a campaign. The status says "Active." Your daily budget is $50. But at the end of the day, you have spent exactly nothing. No impressions, no clicks, no errors. Just zero.
This is one of the most common issues Meta advertisers face, and it is almost always fixable without creating a new campaign. The problem is that Meta's Ads Manager does not always tell you why delivery stopped. You have to diagnose it yourself.
According to Meta's own documentation, delivery issues usually come down to auction competition, audience size, or account-level restrictions. Let's break down each one.
Quick Diagnostic: Where to Look First
Before diving into specific fixes, check these three things in your Ads Manager. They will tell you which of the seven reasons applies to your situation.
| What to Check | Where to Find It | What It Tells You |
|---|---|---|
| Delivery Status | "Delivery" column in Ads Manager | "Active," "Learning," "Not Delivering," or "Completed" |
| Amount Spent vs Budget | "Amount Spent" column | If $0 after 24h, something is blocking delivery |
| Auction Insights | Ad Set → Insights → Auction | Shows overlap rate, estimated competition, and cost benchmarks |
If your status says "Not Delivering" or "Inactive," work through the seven reasons below in order. Start with the most common causes (bids and audience) before moving to less obvious ones.
1. Your Bid or Cost Cap Is Below Market Rate
This is the number one reason campaigns do not spend. If you set a bid cap or cost cap that is below what the auction actually requires, Meta literally cannot enter your ad. You are telling the system "I will only pay up to $8 per conversion," but the market rate for your audience is $15. Your ad never shows.
This happens frequently with campaigns that were set up months ago when CPMs were lower. Average CPMs on Meta rose roughly 32% between Q1 2025 and Q1 2026 for ecommerce advertisers. A bid cap that worked in January might be dead on arrival in May.
How to fix it:
- Remove the cap entirely. Switch to "Highest Volume" or "Cost Goal" (with a realistic target) and let Meta's algorithm bid within your budget.
- If you must use a cap, raise it by 30%. Wait 4-6 hours. If spend is still zero, raise it another 30%. Repeat until delivery starts.
- Check auction overlap insights. If your estimated CPM benchmark is $14 and your cap is $10, you have your answer.
Warning: Do not confuse "Lowest Cost" (no cap) with "Bid Cap." Lowest Cost lets Meta spend your full budget at whatever the auction requires. Bid Cap restricts what Meta can bid. If your campaign is not spending and you see "Bid Cap" selected, that is very likely your problem.
2. Your Audience Is Too Small to Enter Auctions
Meta needs a minimum audience size to run auctions efficiently. While there is no official published minimum, advertisers consistently report delivery problems when custom audiences drop below 15,000-20,000 people or when Lookalike Audiences are set below 1% of a small source audience.
The problem gets worse when you layer targeting. If you target "Women, 25-34, interested in yoga" AND "Women, 25-34, interested in CrossFit" AND "Women, 25-34, live in Boise, Idaho," you might end up with an audience of 8,000 people. That is not enough inventory for Meta to run meaningful auctions.
How to fix it:
- Remove one layer of targeting at a time. Start with the most restrictive layer (usually detailed interests or behaviors) and remove it. Check audience size in the Audience section after each change.
- Expand Lookalike percentages. A 1% Lookalike from a 5,000-person source list gives you roughly 200,000 people globally. But if your source list is only 500 people, that 1% might be 20,000. Expand to 3-5%.
- Try broad targeting with Advantage+. Let Meta find your audience. For many advertisers, broad targeting with a strong creative outperforms narrow interest targeting.
3. Audience Overlap Is Killing Delivery
If you have three ad sets targeting similar audiences, they end up bidding against each other. Meta's auction system will favor the ad set with the highest expected value and throttle the others. From your perspective, two of your three ad sets show zero spend.
This is especially common when advertisers create separate ad sets for different interests that have significant overlap. "People interested in running shoes" and "People interested in marathon training" share a large percentage of the same users.
How to fix it:
- Check overlap in Audiences. Go to Business Manager → Audiences. Select two or more custom audiences, then click "Show Audience Overlap." If overlap is above 30%, consolidate.
- Merge overlapping ad sets. Combine them into a single ad set with a larger audience. This gives Meta more room to optimize and prevents internal competition.
- Use Campaign Budget Optimization (CBO). At the campaign level, CBO automatically shifts budget toward the best-performing ad set instead of forcing equal delivery.
4. Creative Fatigue or Low Quality Ranking
Meta assigns a quality ranking to every ad. If your ad has a history of low engagement (low CTR, lots of hides, negative feedback), Meta will stop showing it regardless of your budget. The same thing happens with ad fatigue: after the same people see your ad 4-5 times, engagement drops and delivery slows.
Signs your creative is the problem: your campaign was spending but gradually slowed to zero over 1-2 weeks. Or your CTR is below 0.5% while your industry average is 1.2%.
How to fix it:
- Upload 2-3 new creatives. New images or video, new headline, new primary text. Even changing the CTA button text can reset quality signals.
- Use Dynamic Creative. Provide 3-5 images, 3 headlines, and 2 descriptions. Meta will test combinations and automatically favor the best performers.
- Check the "Quality" column in Ads Manager. If any ad is rated "Below Average" on quality, replace it immediately.
5. Too Many Ads Are Splitting Your Budget
Running 8 ads in a single ad set with a $30 daily budget means each ad gets roughly $3.75 per day. That is not enough data for Meta to evaluate any single ad. The algorithm cannot determine which ad is best, so none of them exit the learning phase, and delivery stays flat.
This is a testing problem, not a budget problem. You are trying to learn too many things at once with too little data.
How to fix it:
- Limit to 3-5 ads per ad set. This gives each ad enough budget to generate meaningful data within 3-5 days.
- Turn on Dynamic Creative instead. Upload your variations and let Meta's algorithm do the A/B testing. It is more efficient than manual ad-level testing.
- Increase budget per ad set. If you must test 8 ads, make sure your daily budget is high enough that each ad gets at least $10-15/day.
Check If Your Budget Is Enough to Exit Learning
Enter your daily budget and conversion rate to see if Meta can get the 50 weekly optimization events it needs.
Open Budget Calculator →6. Account Spending Limit Reached
Meta sets a spending limit on every ad account. For new accounts, this is often $25/day by default. For accounts with billing issues, it can be set even lower. When you hit this limit, campaigns stop spending even though they show as "Active."
This is the easiest problem to fix and the easiest to miss. The notification in Ads Manager is small and easy to overlook.
How to fix it:
- Go to Billing in Ads Manager. Look for "Account Spending Limit." If it shows a dollar amount and your total spend across all campaigns has reached that amount, this is your problem.
- Increase or remove the limit. Click "Change" and set it to a higher amount or remove it entirely. Changes take effect within minutes.
- Check payment method. If your payment method failed recently, Meta may have paused delivery. Update your payment method in Billing settings.
7. Your Optimization Event Is Too Rare
Meta's delivery system needs roughly 50 optimization events per ad set per week to exit the learning phase and deliver efficiently. If you are optimizing for "Purchase" but your ad set only generates 8 purchases per week, the algorithm never gets enough data. Delivery stalls.
This is common for high-ticket products (anything over $200), B2B lead generation, and brands with low website traffic. A $50/day budget might only produce 2-3 purchases per week for a $300 product.
How to fix it:
- Switch to a higher-funnel event. Optimize for "Add to Cart" or "View Content" instead of "Purchase." These events happen more frequently, giving the algorithm more data. Once delivery stabilizes, you can test switching back to Purchase.
- Increase your budget by 40-50%. More spend means more events. Use the Budget Calculator to find the minimum budget needed for 50 weekly events at your current conversion rate.
- Consolidate ad sets. If you have 5 ad sets each getting 10 purchases per week, merge them into 2 ad sets getting 25 each. Fewer ad sets with more events each exit learning faster.
Pro tip: If you are running a conversion campaign and spend is zero, try switching the campaign objective to "Traffic" for 48 hours. If the Traffic campaign spends normally, the issue is with your conversion optimization (too rare, pixel not firing, etc.). If the Traffic campaign also does not spend, the issue is with your bid, audience, or account settings.
Diagnostic Checklist
Use this checklist to systematically identify which of the seven issues is affecting your campaign. Check each item in order.
| # | Check | If Yes | Action |
|---|---|---|---|
| 1 | Is your campaign status "Active" but spend is $0 after 24h? | Continue to #2 | If status is "Paused" or "Not Delivering," check schedule and budget |
| 2 | Are you using Bid Cap or Cost Cap? | Likely cause | Remove cap or raise by 30% |
| 3 | Is your audience under 20,000? | Likely cause | Broaden targeting or expand Lookalike % |
| 4 | Do your ad sets overlap by >30%? | Likely cause | Consolidate overlapping ad sets |
| 5 | Is your CTR below 0.5%? | Possible cause | Refresh creative, check quality ranking |
| 6 | Do you have more than 5 ads per ad set? | Possible cause | Reduce to 3-5 or use Dynamic Creative |
| 7 | Has your account spending limit been reached? | Likely cause | Increase or remove limit in Billing |
| 8 | Are you getting fewer than 50 optimization events per week per ad set? | Likely cause | Switch to higher-funnel event or increase budget |
