Notes / Method

Meta ads not spending the budget. It is usually the system holding back, not a fault.

An ad set that will not spend is almost never broken. It is being throttled by the delivery system for a reason Meta will name for you, and the fix is nearly always upstream of the budget field.

10 September 20266 minute read Written by roasdept

If an ad set is active and will not spend its daily budget, the usual cause is that Meta's delivery system cannot find enough of the event you asked it to optimise for, at the price you set, in the audience you drew. Meta calls this Learning limited, and it applies when an ad set is unlikely to get around fifty optimisation events in the week after your last significant edit.

That threshold is the thing to hold on to. Almost every cause below is a different way of failing to reach fifty events a week, and almost every fix is a way of making fifty reachable.

What does Learning limited actually mean?

It is a status, not a penalty. Meta describes it as an indication that your budget is not being spent effectively because the delivery system cannot optimise with the current setup. An ad set leaves the status by getting fifty optimisation events since the last significant edit, at which point it moves from Learning limited to Active.

So the system is not punishing you. It is declining to spend money quickly on a decision it cannot yet make well, which is the behaviour you would want if you thought about it for a minute and the opposite of what it feels like at the time.

Why is Meta not spending my full budget?

Meta names the causes directly: an audience that is too small, a budget too low to reach the events, a bid or cost control set too low, high auction overlap between your own ad sets, an optimisation event that happens too rarely, and running too many ads at the same time. Read that list as six ways of starving the same mechanism.

Two of them are worth expanding because they are the ones people cause themselves. Auction overlap means your own ad sets are bidding against each other for the same people, so you are paying more and delivering less to reach an audience you already had. And a cost cap set below what the auction currently clears at does not slow delivery down. It stops it, quietly, while the campaign still reads as active.

A campaign that shows Active and spends nothing is not stuck. It is bidding at a price nobody is accepting.

What is the fastest thing to change?

The optimisation event, if the conversion you chose is rare. Meta's own guidance is to pick an event that occurs more frequently, for example moving from purchases to add to cart. A store doing thirty purchases a month cannot feed a purchase optimised ad set fifty events a week no matter what you set the budget to, and no amount of patience changes that arithmetic.

After that, in order: widen the audience, remove or raise the cost cap, and consolidate ad sets that are competing with each other. Raising the budget is last, because a budget increase on an ad set that cannot find events buys you a larger number that also does not get spent.

Why did it stop spending after I edited it?

Because certain edits are significant edits, and a significant edit restarts the learning phase. The ad set goes back to needing fifty events from that moment. If you are editing an ad set every couple of days to make it spend, each edit resets the clock you are waiting on, and the ad set can sit in learning permanently while you are the reason.

This is the single most common self inflicted version of the problem. Make one change, then leave it alone for a week.

When is it not a delivery problem at all?

When the events are happening and not being received. If your pixel or Conversions API setup is dropping purchases, the delivery system genuinely cannot see fifty events a week even though your store is producing them, and every fix above will fail for a reason that has nothing to do with the ad account. Check store orders against reported conversions for the same dates before you spend a fortnight tuning bids.

Platform figures and store figures disagree by default, and the gap is usually wider than people expect. We measured it on an account we owned and wrote up the size of it.

What we do with it

We check the event volume against the fifty a week threshold first, because it decides whether any of the other work is worth doing, and we stop editing. What running a Meta account looks like week to week is on the Meta page.

Questions

Why are my Meta ads not spending the full budget?

Usually the delivery system cannot find enough of your optimisation event at the price you set in the audience you drew. Meta names the causes as small audience, low budget, low bid or cost control, high auction overlap, an infrequent optimisation event, and too many ads running at once.

What does Learning limited mean?

It means an ad set is unlikely to receive around fifty optimisation events in the week after your last significant edit, so Meta cannot optimise delivery well. It is a status rather than a penalty, and the ad set becomes Active once it reaches fifty events.

How do I fix an ad set that will not spend?

Start with the optimisation event: if purchases are too rare, move to a more frequent event such as add to cart. Then widen the audience, remove or raise a cost cap, and merge ad sets competing in the same auction. Raise the budget last.

Does editing an ad set reset the learning phase?

A significant edit does, and the ad set then needs fifty optimisation events again from that point. Editing every few days to force spending keeps resetting the clock and can hold an ad set in learning indefinitely.

Why do my Facebook ads show active but spend no money?

Most often a bid or cost cap set below what the auction is clearing at, which stops delivery without changing the status. It can also mean conversion events are not reaching Meta, so check store orders against reported conversions for the same dates.

The next step

Want this run on your account?

Send the brand and the channels you run. You get a written read on the account before anything is signed, and it looks a lot like the reasoning above.

Get your free growth audit
Day 0

You send the basics

The brand, the channels and roughly what you spend. Two minutes of your time.

Within 2 days

We audit it from the outside and write back

Your ads, store, feed and search visibility are all public. We go through them and write back with what we’d change first and what it would cost. Free, and no account access needed.

Week 1

We take the work off your desk

Access, measurement, structure, feed and the creative brief. You approve. We build.

Every week after

Report on Monday, call the same week

You always know what we did, what it earned and what’s next. That never changes.