Kelpi

Why are my Facebook ads not delivering?

Approved Facebook ads that aren’t delivering usually trace back to the ad set, not the ad approval. Meta’s delivery system needs roughly 50 optimization events per week to stabilize; when your budget, bids, or audience make that unlikely, delivery can throttle to near zero. After that, check for a cost cap below the market price, ads still in review or rejected, and schedule, spending-limit, or payment blocks.

Symptoms: what you’re probably seeing

  • Ad set shows “Active” but impressions are zero or near zero
  • The Delivery column reads “Learning limited”, “Not delivering”, or stays “In review”
  • Ads were spending fine, then impressions dropped to nothing after an edit
  • A new campaign launched over 24 hours ago still has no spend
  • Some ad sets in the campaign spend while others never start

The likely causes, ranked

  1. 1. The ad set is learning limited

    Audit area: performance

    Meta typically needs roughly 50 optimization events within 7 days of the last significant edit before an ad set exits the learning phase. When the system predicts your ad set won’t get there, it flags “Learning limited” and delivery stays throttled and unstable. The practical fixes are consolidating ad sets, removing unnecessary audience constraints, optimizing for a more frequent event, or raising the budget.

    How to check it yourself in Ads Manager

    Ads Manager → open the campaign → read the Delivery column on the ad set row. “Learning limited” appears in place of “Active”; hover the status for Meta’s own explanation.

  2. 2. The budget is too low to exit learning

    Audit area: budget

    A useful rule of thumb: the weekly budget needs to buy roughly 50 of your optimization events. Optimizing for purchases at a $40 cost per purchase on $10/day can’t get there. Either raise the budget or optimize for a higher-frequency event.

    How to check it yourself in Ads Manager

    Ad set → Budget & schedule. Multiply your typical cost per result by 50 and compare it with your weekly budget (daily budget × 7).

  3. 3. The audience is too narrow, or overlaps with your own ad sets

    Audit area: targeting

    Tiny audiences (stacked exclusions, small customer lists, narrow geo and age windows) give the auction too few people to work with. Separately, when your own ad sets target the same people, Meta enters only one of them per auction, so sibling ad sets quietly starve each other.

    How to check it yourself in Ads Manager

    Edit the ad set and read the estimated audience size panel. For overlap, compare custom audiences and interest stacks across your ad sets, and use the Inspect view (chart icon on the ad set row) where Meta makes auction-overlap data available.

  4. 4. The creative gives Meta no targeting signal

    Audit area: creative

    Delivery is not all mechanics: Meta reads the creative to decide who should see the ad. Vague creative gives Meta vague signal, so delivery can dilute before the account ever learns who should care. An ad that names its buyer, the pain, and the outcome gives the system something to work with.

    How to check it yourself in Ads Manager

    Read the ad the way a stranger would: if someone in your target market glanced at it for one second, would they know it’s for them? If the ad could be for anyone, the signal problem is in the creative, not the settings.

  5. 5. A bid or cost cap is blocking auction entry

    Audit area: budget

    With a cost-per-result goal or bid cap, Meta only enters auctions it expects to win within the cap. A cap set below the real market price quietly drops delivery to roughly zero while the ad set still reads “Active”.

    How to check it yourself in Ads Manager

    Ad set → Bid strategy. If a cost or bid cap is set, note the value. The standard test is raising it (or switching to highest volume) and watching whether delivery resumes.

  6. 6. The ad was rejected or is still in review

    Audit area: creative

    An ad set can look perfectly healthy while every ad inside it is rejected or still sitting in review. Most ads clear review within 24 hours, and any meaningful edit sends an ad back into the review queue, which is why delivery often stops right after a change. The related fixes below cover review delays and rejections in more detail.

    How to check it yourself in Ads Manager

    Switch to the Ads tab and read the Delivery column per ad. Account Quality (business.facebook.com/accountquality) lists rejected ads with the policy cited.

  7. 7. Scheduling, spending limits, or a failed payment

    Audit area: structure

    A campaign end date in the past, dayparting windows, an exhausted campaign or account spending limit, or a failed payment method can all stop delivery. A failed payment is the bluntest block because it can stop the whole account, not just one campaign.

    How to check it yourself in Ads Manager

    Check the campaign’s start/end dates and any Campaign spending limit; check the Account spending limit under Payment settings; check Billing & payments for failed charges.

Skip the manual digging

Use the checks above, or connect your account and Kelpi names the likely cause in about 2 minutes. Each finding maps to the same six areas: structure, budget, creative, targeting, tracking, and performance.

Run the free audit

Frequently asked questions

Why are my Facebook ads approved but not delivering?
Approval and delivery are separate systems. An approved ad still has to win auctions. Learning-limited status, cost caps below the market price, narrow audiences, schedules, and spending limits all produce “approved but zero impressions”. The Delivery column in Ads Manager names the state your ad set is actually in.
How long before Facebook ads start delivering?
Review usually completes within 24 hours, and delivery typically begins within hours of approval. Expect results to stay volatile until the ad set exits the learning phase, which takes roughly 50 optimization events.
What does “ad set may get zero results” mean?
It’s Meta’s pre-publish estimate that your current settings (budget, bid cap, audience) are unlikely to win enough auctions. Loosen the cap, remove unnecessary audience constraints, or raise the budget before publishing.

Related fixes

More resources