A home goods brand in Denver came to me with a problem most people would love to have: their cost per purchase was good and they could not get Meta to take their money. The daily budget was set to $800. Actual spend sat between $320 and $380, day after day. Nothing was disapproved. Nothing was paused. The account was simply refusing to scale.
I see this constantly across the US and UK accounts I manage, and almost nobody treats it as the diagnostic signal it is. Underdelivery is not Meta being broken. It is Meta telling you that at the price you are willing to pay, with the signals you are sending it, there are not enough people worth showing your ad to. Your job is to work out which of those two things is the real constraint.
Here is the order I check, because the order saves you from fixing the wrong thing.
1. The ad sets are starved of conversions
This is the cause about two thirds of the time. Meta's delivery system needs roughly fifty conversions per ad set per week to leave the learning phase and bid confidently. Below that it is guessing, and when it guesses it throttles.
The Denver account had eleven active ad sets across four campaigns. Spread $800 across eleven ad sets and each one gets about $72 a day. At a $40 cost per purchase that is under two conversions a day, around twelve a week, nowhere near the threshold. Every ad set was permanently learning and permanently limited.
The fix is consolidation, which feels wrong to people who were taught to test everything in its own ad set. We collapsed eleven ad sets into three. Same total budget, same creative, same audiences merged into broader ones. Spend climbed to about $610 within four days without touching anything else.
Look at the delivery column in Ads Manager. If you see "Learning limited" on ad sets that have been running more than a week, that is your answer and no other fix will matter until you deal with it.
2. Your cost cap or bid cap is below the market
If you set a $25 cost-per-result cap and the real auction price for that audience is $34, Meta will not overspend to please you. It will quietly spend whatever it can find under your number and stop. Reported CPA looks excellent. Volume looks terrible. People then lower the cap because CPA is good, and delivery falls further.
Check whether your cost cap is older than your margins. A cap set when you were selling at $90 average order value is not the right cap now that you are at $140. Either raise it to what you can genuinely afford, or move to highest volume bidding with a budget you are willing to lose for two weeks while it finds the real price.
3. The audience is too small, or your ad sets are bidding against each other
Two separate problems with the same symptom.
Small audiences hit frequency ceilings fast. A 180,000-person lookalike in a single metro will deliver for a week and then stall as the reachable, interested slice is exhausted. Broad targeting in a large country is not laziness in 2026; it is usually the correct starting point and it lets the budget breathe.
Overlap is the sneakier version. If you run a 1% lookalike, a 3% lookalike and an interest stack that all contain the same people, your own ad sets enter the same auction and push your costs up. Meta then reduces delivery rather than let you bid against yourself badly. Use the audience overlap tool. Anything above about 25% overlap should be merged or excluded.
4. You raised the budget too fast
Budget changes above roughly 20 to 30 percent reset the learning phase. I have watched founders triple a budget on a Friday because the week looked good, then panic on Monday when CPA doubled and delivery dropped. The ad set went back into learning, performance got noisy, they cut the budget, and the whole cycle restarted.
Raise in steps of 20 percent and leave at least 48 hours between moves. If you need to scale faster than that, duplicate into a new campaign with the larger budget rather than editing the existing one, and let them run side by side.
5. Creative is fatigued and the auction knows it
Delivery and creative are the same conversation. When frequency climbs past roughly 2.5 in a seven-day window and click-through rate slides, your relevance signals fall, your effective cost per thousand impressions rises, and Meta finds fewer placements worth buying at your price.
The tell is in the trend, not the absolute number. Pull a seven-day view of frequency, CTR and CPM by ad. If frequency is up and CTR is down over three weeks, no amount of budget or bid adjustment will fix delivery. You need new angles, not new settings.
6. The tracking is feeding Meta poor signals
Last on the list by frequency, first by damage. If your event match quality is low, Meta cannot confirm who converted, so it cannot find more people like them, so it bids cautiously and spends less.
Open Events Manager and look at the event match quality score on your Purchase event. Below about 6.0 and you are leaving performance on the table. Server-side events through the Conversions API, with email, phone, name and the click identifier passed properly, usually lift it into the 8s. On a US skincare account I worked on last quarter, fixing match quality alone moved daily spend capacity by about a third because the system finally trusted its own feedback loop.
The order to work through it
Delivery is stuck
|
v
"Learning limited" showing? --yes--> Consolidate ad sets, fewer and bigger
| no
v
Cost cap set? --yes--> Is it above current auction price? Raise or remove
| no
v
Audience under ~500k or overlapping? --yes--> Broaden, merge, exclude
| no
v
Budget changed >20% in last 72h? --yes--> Hold steady, let it settle
| no
v
Frequency up and CTR down? --yes--> Creative problem, not a settings problem
| no
v
Event match quality < 6? --yes--> Fix Conversions API and parameters
Work top to bottom and stop at the first yes. Fixing three things at once teaches you nothing about which one mattered.
What this is really about
Underdelivery is the account refusing to lie to you. A campaign that spends its full budget at a bad cost per acquisition is easy to feel good about and expensive to run. A campaign that will not spend is telling you the economics or the signals are not there yet. That is useful information, and it is cheaper to act on than the alternative.
If step one was your answer, how to structure a Meta account that actually scales goes into the consolidation in detail. If step six was, the wider tracking problem is worth understanding too: why your platforms and your store never agree. And once delivery is unblocked, make sure you are scaling toward a number that holds up, which is the ROAS trap.
If your budget is sitting unspent and you want someone to work through that list on your actual account rather than in theory, the free growth audit covers exactly this: we look at delivery, structure, bidding and event quality, and send you the findings in writing whether or not you hire us.
