Facebook Ads Not Delivering? 8 Causes and How to Fix Each (2026)
Founder at Adship

An ad set that shows "Active" but has spent nothing for six hours feels like a bug. Almost always, it isn't. Meta Ads Manager assigns every ad a specific delivery status, and that status points to a specific cause: review, an audience too small to clear the auction, a bid that can't compete, or an account issue you haven't noticed.
This guide covers the eight most common reasons a Facebook (Meta) ad set stops delivering, how to confirm each in Ads Manager in under a minute, and the fix Meta recommends. Every claim links to the Meta Business Help Center page it comes from, fetched 2026-09-06.
The One-Minute Delivery Checklist
Before digging into any single cause, open the ad set and check its Delivery column status. That single word tells you which section below to read first.
| Cause | One-Minute Check |
|---|---|
| In review or rejected | Delivery column shows "In review" or an error icon; hover for the reason |
| Learning phase / learning limited | Delivery column reads "Learning" or "Learning limited" |
| Audience too small or overlapping | Audiences tab > Show Audience Overlap on your active ad sets |
| Bid or budget too low | Delivery reads "Bid limited" or "Cost limited" when you hover |
| Payment or account issue | Payment Settings shows a failed charge or a spending limit reached |
| Active but zero spend | Ad is "Active" with $0 spent and no error icon after 24 hours |
Start Here: What the Delivery Column Is Actually Telling You
Meta's own troubleshooting page for this problem is short and specific. According to Troubleshoot why an ad isn't running in Meta Ads Manager, the Delivery column shows one of three signals: an error icon (hover to read the specific problem), a pending icon (the ad is in draft, pending review, or scheduled for later), or "Off" (turned off manually, by an automated rule, or because its schedule ended). Everything below is a more specific version of one of those three states.
If delivery was fine and then slowed or stopped, Meta's campaign troubleshooting page points to the ad set's activity history: frequent pausing, budget or schedule changes made late in the day, and extending a campaign's end date can all make delivery visibly slow down while the system re-adjusts pacing.
1. Your Ad or Ad Set Is Stuck in Review, or Was Rejected
How to confirm it in Ads Manager: The Delivery column shows "In review" (a pending icon) or a red error icon with a rejection reason. Click the status to see the specific policy cited.
Fix: Meta states that ad review is typically completed within 24 hours, though it can take longer, and ads can be reviewed again after going live. If the ad is rejected rather than pending, Meta's guidance on rejected ads gives three options: edit the flagged element and resubmit for an automatic re-review, create a new ad, or request another review through Business Support Home, which Meta aims to decide within 48 hours without it hurting your account standing. Run copy and creative through a free ad policy checker before resubmitting, since a repeat violation counts against the account.
2. Your Ad Set Is Still in the Learning Phase (or Learning Limited)
How to confirm it in Ads Manager: Add the "Last significant edit" and "Results" columns. Delivery reads "Learning" if the ad set is still gathering data, or "Learning limited" if it's unlikely to gather enough.
Fix: Per Meta's learning phase documentation, an ad set usually exits learning "after about 50 results in the week after the ad set's last significant edit." Shops ads have their own separate threshold: Meta requires a minimum of 17 purchases through your website and 5 through Meta for the learning phase to complete. Learning limited means the ad set is unlikely to hit that number because of a small audience, a low budget, a low bid or cost control, high auction overlap, or a rare optimization event. Meta's fixes, in order of effort: combine similar ad sets, expand the audience, raise the budget or bid, or switch to an optimization event that fires more often, add-to-cart instead of purchase, for example.
3. Your Audience Is Too Small or Overlaps With Another Ad Set
How to confirm it in Ads Manager: Go to Audiences, select up to five audiences, then Actions > Show Audience Overlap. Meta's tool only returns useful numbers for audiences with at least 10,000 accounts.
Fix: Overlapping audiences aren't inherently bad, but when two ad sets are eligible for the same auction, Meta enters only the one with the best performance history and blocks the other, quietly starving it of delivery. This is auction overlap, and Meta is explicit that separate ad accounts don't avoid it, overlap can occur across accounts belonging to the same advertiser. Fix it by combining the overlapping ad sets and their budgets, or turning off the weaker one and shifting its budget to the ad set that's winning.
4. Your Bid or Budget Is Too Low for the Auction
How to confirm it in Ads Manager: Hover over the Delivery status. If it reads "Bid limited" or "Cost limited," per Meta's ad performance troubleshooting guide, your bid control or cost goal is the bottleneck, not your audience or creative.
Fix: Meta's cost and bid controls page describes three strategies: cost per result goal, ROAS goal, and bid cap. Cost per result goal works best with 50 to 100+ weekly conversions per ad set; below that, broaden the audience, raise the budget, or raise the goal itself, and judge it weekly rather than daily. Bid cap sets a hard ceiling on the estimated bid per action with no guaranteed delivery volume, it's meant for advertisers who already know their numbers cold. If other advertisers are outbidding your cap, raising or removing it is usually the fastest fix. Check what's realistic for your funnel with the ad budget calculator before changing it.
5. A Payment or Account Issue Is Blocking Delivery
How to confirm it in Ads Manager: Check Payment Settings for a declined charge, and check whether the account has any active restriction under Account Quality.
Fix: Ad account spending limits are a lifetime cap you set yourself; once spending reaches it, every ad pauses, but Meta notes "ads will still be listed as active in Meta Ads Manager," so Active status alone doesn't rule this out, check Payment Settings directly. If the account was restricted for a policy violation, requesting a review is typically decided within 48 hours, and reinstatement isn't automatic: "any ads running before the restriction will not be automatically restarted," you turn them back on yourself. Warming up the account after a restriction lowers the odds of a repeat; see what to do when an ad account is disabled for the full reinstatement process.
6. A Scheduling or Dayparting Mistake Is Blocking Delivery
How to confirm it in Ads Manager: Check the ad set's end date and its Delivery scheduling settings. Trying to edit an ad set past its end date throws error #1487007.
Fix: Meta's guidance on scheduling an ad set says you can schedule an ad set with either a daily or a lifetime budget, and any scheduled window must run for at least one hour. One older line in Meta's budget scheduling article still says ad scheduling needs a lifetime budget, so if the option is missing in your ad set, that is why. Two mistakes cause most tickets here: the campaign quietly passed its end date, fixed by extending the schedule, or the dayparting hours were set in the wrong time zone, since Meta delivers ads in the audience's local time zone, not the account's. A dedicated scheduling tool prevents the "forgot to extend the holiday schedule" class of error across multiple ad sets.
7. A Creative Error Is Blocking Delivery
How to confirm it in Ads Manager: Preview the ad for each placement. A video stuck at "Processing" for more than a few minutes, or a placement that silently drops out of the preview, both point here.
Fix: Per Meta's video ad troubleshooting page, supported files max out at 4GB, durations run 15 seconds to 240 minutes depending on placement, and a video needs at least 600 pixels of width to avoid looking pixelated or boxed in black bars. Required size and aspect ratio vary by placement, the usual reason one asset looks fine in Feed but gets cropped badly in Stories or Reels. Upload a properly sized asset per placement group, square or 4:5 for Feed, vertical 9:16 for Stories and Reels, rather than relying on Meta to crop a single file for everything.
8. The Ad Is Active, But Spending Zero
How to confirm it in Ads Manager: The ad shows "Active," there's no error icon, and it has spent nothing for a full day or more.
Fix: This is usually one of the other seven causes wearing a different label, so work through the checklist first. Two causes are specific to this exact symptom. An account that hit its spending limit keeps showing every ad as "Active" even though nothing is running, so check Payment Settings directly rather than trusting the status column. And a cost per result goal campaign is designed to spend less than the full budget when the auction is too expensive to hit its target, that's the strategy working as intended, not a bug; switching to the "highest volume" bid strategy spends the budget but drops the cost guardrail.
How Long to Wait Before Touching a New Ad Set
The single most common way advertisers create their own delivery problems is editing too soon. Meta's guidance is direct: "wait to edit your ad set until it's out of the learning phase," because any edit during that window resets the clock and keeps performance unstable.
Not every edit counts. Meta's list of significant edits that restart learning includes any change to targeting, creative, or the optimization event, adding a new ad, pausing for seven days or more, and changing bid strategy. A budget change only restarts learning if it's large, Meta's own example: $100 to $101 is fine, $100 to $1,000 likely isn't. Working rule: give a new or edited ad set a full 7 days or about 50 optimization events, whichever comes first, before judging it. After adjusting a cost per result goal, wait at least 7 days before re-evaluating.
How Adship's Agent Catches This Every Morning
Checking eight failure points on every ad set, every morning, across every account, isn't a realistic manual habit, which is the gap Adship's agent is built to close. Each morning it scans connected ad accounts and flags the problems in this guide before they've burned a full day of budget: zero-spend ads with no error shown, ad sets stuck in "Learning limited," rejected ads waiting on a resubmission, and budget pacing drifting off track.
The agent reports what it found in plain language rather than a wall of Ads Manager columns, and it does not make changes on its own. Every fix, from resubmitting a rejected ad to raising a budget, is proposed with the reasoning behind it and waits for your approval before anything is touched. See how the diagnosis and approval flow works on the Ad Copilot page.
Frequently Asked Questions
How long should an ad set run before I call it "not delivering"?
If the Delivery column shows an error or "Off," that's immediate, don't wait. If it shows "Learning" or "Active" with low spend, give it at least 24 hours for review to clear, and up to 7 days or about 50 optimization events before judging performance, per Meta's own learning phase guidance.
Why does my ad say "Active" but show zero impressions?
Most often it's a spending limit that paused the account while individual ads still display as "Active," a cost per result goal deliberately underspending to protect its target cost, or an ad still clearing the review queue. Check Payment Settings and the Delivery status hover text before assuming it's a bug.
Does pausing and unpausing an ad set restart the learning phase?
Not immediately. Meta only counts a pause as a significant edit if the ad set stays paused for seven days or longer. A short pause of a day or two does not reset learning.
Can two ad sets in separate ad accounts still compete against each other?
Yes. Meta's guidance on auction overlap states explicitly that running ad sets from different ad accounts does not prevent overlap if the delivery system identifies them as belonging to the same advertiser and they share an audience.
What's the difference between cost cap and bid cap today?
Meta now labels the cost-based strategy "cost per result goal" in Ads Manager; it dynamically bids to hit a target average cost. Bid cap instead sets a hard ceiling on the estimated bid per action and never bids above it, which caps upside as well as risk. Use cost per result goal if you have a target CPA and enough weekly conversions (50 to 100+); use bid cap only if you already know your numbers well enough to calculate the right ceiling yourself.
Meet the AI Ad Operating System
Scan, spy, create, and launch Meta and TikTok ads with guarded actions taken with your approval.
Start FreeRecommended Resources
Related Articles
View allFacebook Ads Not Working? 15 Causes and Fixes (2026)
Facebook ads not delivering, getting clicks but no sales, or spending with zero results? Diagnose and fix the most common Facebook Ads problems with this troubleshooting guide.
Facebook Ads Not Working? 15 Fixes to Try Right Now
Facebook ads not delivering, not converting, or stuck in learning? This troubleshooting guide covers the 15 most common Facebook Ads problems and exactly how to fix each one.
Facebook Ads Not Converting? 10 Reasons Why (and How to Fix Each)
Facebook ads getting clicks but no sales? This guide covers the 10 most common reasons Facebook ads fail to convert, with a diagnostic framework and specific fixes for each problem.