Guide · Meta Ads
Meta ads not spending your budget: causes and fixes
An ad set stuck at ₹0, or spending far less than its budget, is usually held back by one setting. These are the checks Meta itself recommends, in the order we run them, with what to change at each step.

By Aditya Shukla, Founder, HookExperts
Published

Short answer: First give it 24 hours, because most Meta ads are reviewed within a day. If it still isn’t spending, check the delivery status, the schedule, any bid cap or cost goal, the audience size, overlap between your own ad sets, and whether your daily budget is at least 10 times the cost of the result you optimise for. These are Meta’s own checks.
This guide covers every common reason for Meta ads not spending budget: Facebook ads not spending, Instagram ads not spending, ads that are active but not delivering, and ad sets stuck in learning limited. Before you change anything, it helps to know what normal spend looks like. Our guide to Meta Ads cost in India covers how Meta bills and paces a budget.
How Meta decides whether to spend your budget
Meta’s delivery system spends your budget by bidding in ad auctions. Each time there is a chance to show someone an ad, Meta runs an auction among the ads whose audience includes that person, and the ad with the highest total value wins. Total value combines your bid, how likely the person is to act on your ad, and the ad’s quality.
So your budget only gets spent when your ad keeps winning auctions. Anything that cuts the number of auctions you enter, or lowers your chance of winning them, cuts spend. That covers almost every cause below: a small audience, a low bid cap, your own ad sets blocking each other, or an ad Meta rates as low quality.
Meta also paces spend. It aims to spend your average daily budget each day, or a lifetime budget across the campaign, and it holds money back when auctions are expensive so it can buy cheaper results later.
First, is it actually broken?
Two things look like a problem but often aren’t.
- The ad is still in ad review. Meta says most ads are reviewed within 24 hours, and you may need to wait up to 24 hours to see delivery. “Preparing ad delivery” means it passed review and hasn’t started yet.
- The budget is flexing. Meta may spend up to 75% more than your daily budget on some days and less on others, but no more than 7 times the daily budget in a week. One slow day is not a fault.
Quick diagnosis: why your Meta ads are not spending budget
Open Ads Manager and read the Delivery column first. It points you to the right check.
| Delivery column says | What it means | Go to |
|---|---|---|
| In review | Meta is still checking the ad | Wait up to 24 hours |
| Rejected | The ad broke an advertising policy | Check 1 |
| Preparing ad delivery | Approved, not started yet | Wait, then check 2 |
| Active, but ₹0 spent | Something blocks every auction | Checks 3, 4 and 5 |
| Learning | Normal for a new or edited ad set | Leave it alone |
| Learning limited | Too few results to settle | Check 6 |
| Active, spending below budget | Winning too few auctions | Checks 4, 5 and 7 |
Check 1: rejected ads and account problems
A rejected ad needs fixing and goes back into review. If you believe Meta got it wrong, you can request another review. Note what restarts review: editing targeting, creative, optimisation or the billing event sends the ad back. Changing the budget, bid amount or schedule does not.
If the account shows a payment warning, fix the payment method first. Nothing else matters until it clears.
Check 2: the schedule
If you set the ad set to run only at certain hours, it has fewer chances to spend. Meta suggests relaxing a restrictive schedule so ads have more time to deliver.
Check 3: bid cap or cost per result goal
A bid cap is the most you will pay in an auction. A cost per result goal is the average you want to pay. Set either one below what results really cost, and Meta cannot win enough auctions to spend your budget.
Meta says your goal should line up with the average cost per result in your own reporting. If yours is far below it, raise it, or remove the cap until you know what a result actually costs. When an ad set is held back by a low bid or cost control, Meta shows a tooltip on its Learning limited status.
Check 4: audience size and auction overlap
Meta says an audience that is too narrow may stop your ads from delivering. Stacking interests, exclusions and a small city shrinks it fast, and a narrow audience costs more to reach. Check the estimated audience size in the ad set before you change anything else.
Overlap between your own ad sets is the cause most people miss. When two or more of your ads could enter the same auction, Meta picks only the one with the highest total value and leaves the others out, so your ads never bid against each other. Meta says this auction overlap can stop an ad set spending its full budget or leaving the learning phase. Running the ads from a second ad account does not avoid it.
Meta’s fixes for overlap:
- Combine similar ad sets and their budgets.
- Turn off the overlapping ad sets that are learning limited or have the fewest results, and move their budget to the one still running.
- If you run several ad accounts, consolidate campaigns into fewer accounts.
Check 5: budget vs the result you optimise for
This is the check most small accounts fail. Meta’s rule of thumb: your daily budget should be at least 10 times the average cost of the result you optimise for.
If you cannot raise the budget, Meta suggests optimising for a result higher up the funnel, such as landing page views instead of conversions. From our own small-budget accounts, we treat ₹1,000 a day as the floor for any ad set.
Check 6: the learning phase and learning limited
Every new ad set, and every significant edit, starts a learning phase. Meta says an ad set usually exits after about 50 results in the week after its last significant edit, and that results are less stable until then.
If the status reads “Learning limited”, the ad set is unlikely to get those 50 results. Meta stresses that this is not a penalty. It means the budget isn’t being spent well with the current setup, and Meta lists the usual causes:
- a small audience
- a low budget
- a low bid or cost control
- high auction overlap
- an optimization event that happens rarely, such as purchases on a new account
- too many ads running at the same time
Meta’s fixes follow the causes: combine ad sets and campaigns, expand the audience, raise the budget or the bid control, or choose an optimization event that happens more often. Once the ad set gets enough results after its last significant edit, it moves from Learning limited back to Active.
Check 7: ad relevance
An ad that people hide, ignore or don’t act on wins fewer auctions, so it spends less even when every setting is right. Meta says more relevant ads cost less and see more results.
Check this with ad relevance diagnostics in Ads Manager. Each ad gets a quality ranking, an engagement rate ranking and a conversion rate ranking against ads competing for the same audience. The rankings only show once an ad has 500 impressions. A below-average ranking points at the creative, the offer or what happens after the click.
If you use Advantage+ campaign budget
With Advantage+ campaign budget, the budget sits at campaign level and Meta moves it between ad sets towards the best opportunities. So one ad set spending very little can be the system’s choice, not a fault. Meta says to troubleshoot these campaigns at campaign level first, and only then look at individual ad sets and ads.
What not to do
- Don’t edit every day. Each significant edit restarts learning, so the ad set never settles.
- Don’t split a small budget across many ad sets. Meta says it learns less about each one when there are many.
- Don’t stretch a small budget across the month. Spend it at a level that can learn, then decide with real numbers.
- Don’t wait forever. If an ad has been published for 48 hours and none of these checks fix it, Meta recommends deleting and recreating it.
If the ad spends but the leads go cold, the problem is after the click. See lead form vs landing page.
Questions people ask
Why is my Facebook ad active but not spending money?
Usually one setting blocks it: a bid cap or cost goal set too low, an audience that is too narrow, overlap with your other ad sets, a tight schedule, or a budget too small for the result you optimise for. Run the checks above in order.
Why is my Facebook ad budget not being spent?
Your ad is winning fewer auctions than the budget allows. The usual reasons are a low bid control, a small or overlapping audience, low relevance, or Advantage+ campaign budget moving money to other ad sets.
Why are my Instagram ads not spending my budget?
Instagram ads use the same Ads Manager and auction, so the same checks apply. If you picked Instagram as the only placement, the ad also has fewer places to show. Meta recommends Advantage+ placements to widen delivery.
Why is Meta spending more than my budget?
On days with better opportunities, Meta can spend up to 75% more than your daily budget, and less on other days. Across a week it will not spend more than 7 times your daily budget.
How long does it take for Meta ads to start spending?
Most ads are reviewed within 24 hours, and Meta says delivery can take up to 24 hours to show. If nothing has spent after 48 hours and the checks above look fine, delete and recreate the ad.
Sources
- Meta, Your ad set hasn’t delivered enough since it started: budget flex, bid caps, audience size and the 10 times rule.
- Meta, One of your ad sets isn’t running: the 24-hour wait, schedules and the 48-hour step.
- Meta, Troubleshoot ad delivery: how delivery works and campaign-level troubleshooting.
- Meta, Understand auction overlap: why your own ad sets block each other.
- Meta, About the learning phase and About learning limited: the 50-result exit and its causes.
- Meta, About ad auctions, About ad relevance diagnostics and About pacing.
- Meta, About ads in review: review timing and which edits restart review.