Skip to content
Bach.ai

Cost Cap Campaign Not Spending: Unstick Stalled Delivery

A cost cap is a promise you make to the auction: don’t acquire above this average. When delivery stalls, the platform is keeping that promise — it simply can’t find enough conversions at or below the number you set. The mistake operators make under pressure is to read “not spending” as “raise the cap,” loosen it, and immediately start overpaying for the same volume they could have unlocked for free. Before you touch the number, run the diagnosis in order. A cost cap campaign not spending is in many cases one of three distinct problems wearing the same costume, and each has a different fix.

For the surrounding account decisions, compare Cost Cap vs Bid Cap vs Min ROAS: A Margin-First Decision Tree and use Stop Advantage Campaign Budget Starving Your Test Ad Sets as the next diagnostic.

What a stalled cost cap is actually telling you

Cost cap works by pacing. The system bids into auctions where it predicts a conversion will land at or under your target average, and skips the rest. If predicted costs sit above your cap across much of the available inventory, it throttles — sometimes to a trickle, sometimes to zero. Flat or near-zero spend is the signal that your cap is below the price the auction is currently charging for your audience and optimization event.

That price is not fixed. It moves with audience size, creative strength, competitive density, and how much recent conversion signal the campaign has. So “the cap is too low” is true by definition, but useless as a fix until you know why the floor is sitting above your cap. Loosening blindly treats the symptom and hides the cause.

The diagnostic order of operations

Work these four checks in sequence. Stop at the first one that explains the stall, fix that, and only reach for the cap if the first three come back clean.

Step 1 — Confirm it’s the cap, not the plumbing

Before blaming the bid, rule out the boring failures that mimic a throttled cap:

  • Approval and learning status. A campaign in review, or with rejected primary creative, won’t deliver independent of bid. Check entity status, not just the campaign toggle.
  • Schedule and budget mechanics. A daily budget that’s an order of magnitude tighter than your target cost, an end date that’s passed, or a dayparting window that’s mostly closed will all read as “not spending.”
  • Audience overlap and frequency caps suppressing your own delivery against a parallel campaign.
  • Tracking health. If the optimization event stopped firing — broken pixel, a conversions API gap, a consent change — the system sees zero recent signal and has nothing to pace against. This looks identical to a tight cap and is far more common than people admit.

If any of these is the culprit, fixing the cap does nothing. Clear them first.

Step 2 — Read the cap against your real cost distribution

Now compare your cap to what acquisition actually costs. Pull the realized cost-per-result for this audience and event from the last few delivering days — or from a comparable campaign if this one never spent. You’re not looking at the average alone; you’re looking at the distribution. Cost cap pays at or below your number on average, which means it needs a healthy supply of auctions priced under the cap to balance the ones priced over it.

If your cap sits below the median realized cost, you’ve left almost no room to pace and the stall is arithmetic. If it sits above the median but below the mean, the cap is plausible and the problem is more likely supply (Steps 3 and 4) than price. This is the moment to separate “the cap is genuinely under-bid” from “the cap is fine but starved.” That distinction decides everything that follows.

Step 3 — Separate under-bid from thin audience

A correctly-priced cap still can’t spend if there aren’t enough qualifying people to bid on. Check the audience supply:

  • Estimated audience size and how much of it you can realistically reach at your budget. A narrow stack of interests, a small lookalike at a tight percentage, plus geo and exclusion layers, can collapse the addressable pool until even a fair cap finds nothing.
  • Frequency trend. Rising frequency with falling reach means you’ve already saturated the pocket the cap can afford. The system isn’t refusing to spend; it has run out of fresh, cap-priced auctions.
  • Concentration. If delivery clusters on a sliver of placements or a single audience segment, the affordable supply is thinner than the headline audience size suggests.

When the audience is the constraint, broadening supply is the fix, not raising the price. Widen the audience, relax over-tight exclusions, open automatic placements, or consolidate fragmented ad sets so the optimizer pools signal across more inventory. You frequently recover delivery at the same cap once there’s more to bid on.

Step 4 — Rule out learning-phase starvation

The third disguise is learning. The system needs enough recent optimization-event signal before it can pace a cap with any confidence. A new campaign — or one whose cap is so tight it only wins a handful of auctions — never accumulates that signal, so its cost predictions stay wide and defensive, and it under-delivers to protect your average. A tight cap and a starved learning phase reinforce each other in a loop.

As a planning range, treat “enough signal” as roughly a few dozen optimization events per ad set per week — call it on the order of ~50 — to exit the noisy early window. This is an illustrative target for stability, not a published threshold, and it scales with how noisy your conversion is. The diagnostic question: is this campaign starving because the cap is wrong, or because it never got the volume to learn? If it’s learning starvation, the lever is consolidation and patience — fewer ad sets, pooled budget, enough runway to bank events — before you decide the cap itself is the problem.

When, and how, to loosen the cap

If Steps 1 through 3 are clean and the cap genuinely sits below your realized median cost, then yes — the cap is the constraint, and you raise it. Do it deliberately:

  • Move in modest increments (think 10–15% at a time), not a doubling. A large jump re-triggers the unstable learning window and overshoots your true clearing price.
  • Raise toward your margin ceiling, not toward “whatever spends.” Your real upper bound is the cost-per-acquisition your contribution margin tolerates — the CPA-to-margin ratio that keeps the unit profitable after product, fulfillment, and returns. A cap that spends freely but breaks that ratio is a slower way to lose.
  • Change one variable at a time. If you broaden the audience and raise the cap in the same edit, you won’t know which unstuck delivery, and you can’t reproduce it next time.

This is exactly the kind of read where a read-only operator layer earns its keep: Bach watches the cap against the realized cost distribution, frequency, and learning status, and tells you which of the four causes is biting — then proposes the specific edit and waits for your approval before anything changes. The point isn’t to raise caps faster. It’s to stop raising them when the real problem was a broken event or a starved audience.

The takeaway

“Not spending” is never the diagnosis — it’s the symptom. Walk the order every time: rule out plumbing and tracking, read the cap against your real cost distribution, check whether the audience is too thin, and confirm the campaign has enough signal to learn. Reach for the cap dial last, move it in small steps, and stop at your margin ceiling. Most stalled cost caps don’t need a higher number. They need you to find out why the floor moved above the one you already set.

See what your Meta ads are really costing you.

Connect your account and Bach ranks every revenue leak in minutes — each with the money it costs and a one-tap fix. Free for 7 days, no credit card.

Start Free Audit
Start your free audit