← Blog
Guides & ResearchAugust 7, 20267 min read

Facebook Ads Not Spending? 9 Causes and Fixes (2026)

Facebook ads active but not spending? The nine verified causes — billing holds, Learning Limited, bid caps, review delays — ordered by likelihood, with fixes.

By The Ad Spend
A woman resting her head on one hand while working at a dark terminal late at night

Updated July 2026.

When a Facebook ad is active but not spending, the cause is almost always one of three things: a billing problem or account spending limit that silently halted delivery, an ad set stuck in Learning Limited because it can't reach roughly 50 optimization events in 7 days, or a bid constraint (bid cap or cost-per-result goal) set too low to win auctions. Work through the checklist below in order — it's sorted by how often each cause turns out to be the culprit.

1. Your payment failed or you hit an account spending limit

The most common and most invisible cause. A declined card, an expired payment method, or an account spending limit set months ago by a previous manager will stop every campaign in the account — with ads still showing as "Active."

  1. Open Billing & Payments in Ads Manager and check for failed payments or a payment method that needs updating.
  2. Look for an account spending limit. If total lifetime spend has reached it, delivery stops account-wide. Raise or remove the limit.
  3. Check for campaign-level spending limits too — a lifetime campaign cap that's been reached looks identical to a delivery problem.

2. Your ad is still in review, or was rejected quietly

Every ad goes through Meta's largely automated review before delivery. Per Meta's Business Help Center, review typically completes within 24 hours, but it can take longer — especially for restricted categories or after edits (any meaningful edit sends the ad back through review).

  1. Check the delivery column: "In review" means wait; "Rejected" means read the policy reason and appeal or fix the creative.
  2. If it's been more than 24–48 hours with no status change, request another review via Account Quality.
  3. Don't repeatedly toggle the ad off and on — each edit can restart review.

3. Your ad set is stuck in Learning Limited

Meta's delivery system needs roughly 50 optimization events within a 7-day window for an ad set to exit the learning phase. If your budget, audience, or conversion volume makes that impossible, the ad set enters Learning Limited — and Meta throttles delivery because it can't optimize confidently. Spend slows to a trickle rather than stopping outright, which is why this one is easy to misdiagnose.

  1. Check the delivery column for "Learning limited."
  2. Do the math: if your target is a $50 purchase and your budget is $20/day, you cannot generate 50 purchases a week. Either raise the budget or optimize for a higher-volume event (e.g., add-to-cart or lead instead of purchase).
  3. Consolidate fragmented ad sets so events pool in one place — see our guide to account structure and the learning phase.

4. Your bid cap or cost-per-result goal is too low

If you're using a bid cap or a cost-per-result goal instead of Meta's default highest-volume bidding, and your cap is below what the auction actually clears at, Meta simply doesn't enter you into auctions. Zero spend, zero impressions, no warning banner.

  1. Check the ad set's bid strategy. If a manual cap or cost goal is set, that's the prime suspect.
  2. Test by switching to highest volume (no cap) or raising the cap 20–30%. If spend starts within hours, you found it.
  3. Re-introduce the cap gradually once you know the market-clearing price.

5. Advantage campaign budget is routing spend to other ad sets

With Advantage campaign budget (formerly CBO), Meta distributes one campaign budget across ad sets "to the best opportunities in real time." That's the official design — which means an ad set Meta deems weaker can legitimately receive almost nothing while a sibling ad set absorbs the budget.

  1. Compare spend across all ad sets in the campaign. If one is eating the budget, the "not spending" ad set isn't broken — it's losing the internal allocation.
  2. If you need guaranteed spend on a specific audience, move it to its own campaign or use ad set spend minimums.
  3. Before overriding Meta's allocation, read what you're overriding: what Meta actually automates in Advantage+.

6. Your audience is too narrow to win auctions

Post-privacy-changes, heavily stacked targeting (small custom audience + narrow interest + tight geo + age band) can leave Meta with too few biddable users. Practitioners in 2026 consistently report that very small audiences — under roughly 100k reachable people — struggle to spend at all.

  1. Check the audience-size estimate in the ad set. If it's "below 1,000" or flagged too narrow, broaden it.
  2. Remove one targeting layer at a time; exclusion lists are frequent offenders.
  3. Check overlap: if a sibling ad set targets nearly the same people, the auction resolves the collision by starving one of them.

7. Your budget is too small for your optimization goal

A widely used practitioner rule of thumb: set your daily budget at a multiple (commonly ~5x) of your expected cost per result. A $10/day budget optimizing for a $40 purchase gives the system no room to learn, and delivery stays hesitant.

  1. Estimate your realistic cost per result from past data or vertical benchmarks.
  2. If the budget can't buy several results per day, raise it or optimize for a cheaper upstream event.

8. A recent edit reset the learning phase

Significant edits — targeting changes, optimization-event changes, new creative added to the ad set, bid strategy changes, budget moves beyond roughly 20%, or pausing 7+ days — put the ad set back into learning, and delivery gets cautious again. If spend dropped right after "someone touched something," this is likely it. The problem is knowing what was touched: Meta's change history is thin, which is why we keep a permanent record of every Meta account change.

  1. Reconstruct what changed in the 48 hours before spend stopped — every edit, by every user and tool with account access.
  2. Stop compounding the problem: no further edits for several days while learning re-stabilizes.

9. Your account has a restriction or policy flag

Account-level restrictions (advertising access restricted, business verification required, payment risk review) halt delivery across campaigns.

  1. Check Account Quality (Business Support Home) for restrictions on the ad account, Page, or business portfolio.
  2. Complete any requested verification and appeal incorrect flags — appeals are usually resolved in days, not hours, so start immediately.

The frustrating part of this checklist is that most of these causes produce the same symptom — a flat spend line — and the account tells you almost nothing about which one fired, or who triggered it. The Ad Spend checks your Meta account roughly every 6 hours with 1,900+ detection algorithms, keeps a permanent record of every change (who, what, when), and traces a delivery stall to the exact change that caused it. Connect your account and get the actual cause traced to the exact change — free budget pacing and performance alerts are included on the free tier. For the detection side, see Meta ads anomaly detection.

FAQ

How long should I wait before editing an ad set that isn't spending?

Rule out billing, review status, and bid caps immediately — those need action now. If the ad set is simply in learning, give it 3–7 days; editing it restarts the learning phase and makes the stall longer.

Why is my Facebook ad active but getting zero impressions?

Zero impressions (as opposed to low spend) usually means the ad is not entering auctions at all: a bid cap below the clearing price, an exhausted spending limit, an audience that's effectively empty, or a rejection that hasn't surfaced clearly. Check those four first.

Does duplicating the ad set fix delivery problems?

Sometimes, but only because the duplicate starts a fresh learning phase. It doesn't fix billing, bid, or audience causes — and it fragments your optimization events across two ad sets, which can make Learning Limited worse.

Will raising the budget fix an ad set that won't spend?

Only if the cause is budget-related (Learning Limited from too few events, or a budget too small for the optimization goal). If the cause is a bid cap, review hold, or account restriction, more budget changes nothing.