Cost cap vs bid cap comes down to what you limit. A cost cap, now called cost per result goal, keeps your weekly average cost per lead near a target while individual bids move above or below it. A bid cap is a hard ceiling on every auction bid. For lead gen, the cost goal is usually the safer choice.
| Highest volume | Cost per result goal (cost cap) | Bid cap | |
|---|---|---|---|
| Meta’s category | spend-based | goal-based | manual |
| What you enter | nothing | a target average cost per result | a maximum bid |
| What Meta does | gets the most results the budget can buy | bids higher or lower per auction to keep the weekly average near your goal | never bids above the cap |
| Controls the CPL you see in reporting? | no, it moves with competition | roughly, as a weekly average; adherence isn’t guaranteed | no: the bid isn’t the cost |
| When the auction gets expensive | still spends the full budget, at a higher cost | may leave budget unspent to protect the target | may not spend the budget |
| Marketing API name | LOWEST_COST_WITHOUT_CAP | COST_CAP | LOWEST_COST_WITH_BID_CAP |
| Fit for lead gen | new campaigns, baselines, low volume | stable ad sets with a known target CPL | advanced use, when you can predict conversion rates |
Meta ads bid strategies today: cost cap, bid cap and their new names
Meta’s article About bid strategies sorts them into three types:
- Spend-based: Highest volume, which gets the most results from your budget, and Highest value, which spends the budget while focusing on the highest value purchases.
- Goal-based: Cost per result goal, which controls the average cost of a result, and ROAS goal, which keeps return on ad spend near an average.
- Manual: Bid cap, which sets the maximum bid in every auction.
The labels changed; the API didn’t. Meta’s Marketing API bid strategy reference, updated in June 2026, still lists LOWEST_COST_WITHOUT_CAP, COST_CAP, LOWEST_COST_WITH_BID_CAP and LOWEST_COST_WITH_MIN_ROAS, and still describes “cost cap” bidding. Those are the names most older guides use, and the reason people still search for cost cap vs bid cap.
The two value strategies need the Maximize value of conversions performance goal (cost and bid controls), so they only come into play if you send Meta a value for each lead. Most lead gen accounts optimize for a count of leads, and the rest of this guide covers the three strategies that work with one.
Where you set the bid strategy
The same Meta article describes two paths:
- With Advantage+ campaign budget, you pick the bid strategy at campaign level, one for every ad set, and enter the amount in each ad set’s Performance goal section. CBO vs ABO covers the budget side of that choice.
- With ad set budgets, you type a cost control into the ad set’s Performance goal section and Meta selects cost per result goal automatically. Bid cap sits under Show more options. Leave the amount empty and the ad set runs on Highest volume.
If you use a cost per result goal and deliver to people on iOS 14.5 or later, Meta says the ad set should be scheduled to run for at least 3 full days. And changing the bid strategy is a significant edit that sends the ad set back into learning, while changing the goal or cap amount may or may not, depending on the size of the change.
Cost cap vs bid cap: what each one controls
Cost per result goal
You give Meta a target average cost per result, a lead in your case, and Meta bids higher or lower in each auction to get as many leads as it can while keeping the weekly average near the goal. That design has three consequences.
The goal is an average, so single days can land above it. Meta says costs may exceed the goal, especially during the learning phase, and tells you to evaluate weekly averages and wait at least 7 days after any change before judging it.
It trades volume for the target. When the market gets more competitive, Meta says a cost per result goal may spend less than your full budget to protect your target.
It needs data. Meta says it works best when the ad set gets at least 50–100 conversions a week. Below that, its advice is to broaden the audience, raise the budget or raise the goal.
Bid cap
A bid cap limits the bid, not the cost. In the auction Meta works out a bid per impression as your bid per estimated action multiplied by the estimated action rate, and the cap applies to the bid per estimated action. Meta may bid lower than the cap if it would otherwise spend your budget too fast. It never bids above it, even when the market is competitive.
Meta’s own example shows how loose the link to cost is. A skin care brand that loses money on conversions costing more than $40 found through testing that a $50 bid cap reduced the days with conversions over $40, without cutting spend too much on other days. The cap sat $10 above the cost it was meant to avoid. That’s why Meta recommends bid cap only for advertisers who can accurately predict conversion rates.
Lead gen rarely fits that description. Conversion rates move with the creative, the landing page and the form, so a bid that’s right this week can be wrong after the next creative batch. Meta itself says that if you’re looking to control costs, a cost per result goal “may be a better option”.
Highest volume
No cap at all. Meta gets the most results it can for the budget and spends all of it. The trade-off, in Meta’s words: Highest volume “doesn’t optimize for CPA”, so your cost per lead rises when auction competition does. It’s the default when you leave the cost control empty, and the baseline any goal should be set from.
Highest volume vs cost per result goal: which one first?
Start on Highest volume. Meta’s cost per result goal best practices say that without historical data you should run Highest volume for at least 2 weeks and use the resulting cost per result as your starting value. After that, Meta’s rule is short: choose cost per result goal if keeping a specific cost matters most, Highest volume if spending your full budget matters most.
In lead gen, add volume to the decision. A cost goal on an ad set that gets 15 leads a week has very little to steer with, and Meta’s 50–100+ recommendation puts most small accounts on Highest volume by default.
| Situation | Bid strategy |
|---|---|
| New campaign or new offer, no CPL history | Highest volume, for at least 2 weeks |
| Under about 50 leads a week per ad set | Highest volume; consolidate ad sets before adding a goal |
| Stable ad set, 50+ leads a week, CPL creeping up as you scale | cost per result goal, set as below |
| Leads differ in value and you send that value to Meta | Maximize value of conversions, with Highest value or ROAS goal |
| You can predict conversion rates and need a hard ceiling per auction | bid cap, in its own ad set or campaign |
How to set a cost per result goal from your break-even CPL
Meta gives two rules that pull in different directions. Its best practices say to start 10–20% above your average cost per result: $20 over the past 30 days becomes a $22 goal. Its bid strategies FAQ says to set the goal at the most your business can afford for that result, rather than bidding lower. Use both. The first tells you where to start; the second is the most you should ever let the goal reach.
- Work out your break-even CPL. Customer value × gross margin × the share of leads that become customers. Example: a €2,000 job at a 40% margin, with 1 lead in 10 becoming a customer, breaks even at €80 per lead. The break-even CPL calculator does the arithmetic. Then pick the target you actually want to pay, say €60.
- Convert the target to Meta’s count. Meta’s cost per result is spend divided by the results Meta counts, and some of them can be modelled. Your CRM counts differently. Compare the two over the last 30 days: Meta-side ceiling = target CPL × (leads in your CRM ÷ leads in Ads Manager). Example: 100 leads in the CRM against 120 in Ads Manager turns a €60 target into €50 on Meta’s count.
- Find the floor. Take your average cost per result in Ads Manager over the last 30 days and add 10–20%. Example: €40 becomes €44 to €48.
- Compare them. If the floor sits under the ceiling, start at the floor and treat the gap as room to scale: when the ad set is bid constrained, raise the goal 5–10%, never past the ceiling. If the floor is above the ceiling, there’s no room: your leads already cost about as much as you can pay, or more, and a goal set at the ceiling will mostly shrink delivery to the cheapest auctions. Fix the funnel first; how to reduce cost per lead ranks the levers.
- Fund it. Meta’s minimum budgets article says the daily budget should be at least 5 times the cost per result goal. And about 50 leads a week means a weekly budget of roughly 50 times the goal for each ad set.
- Leave it alone for a week. Judge weekly averages and wait at least 7 days between changes. The scaling procedure Meta publishes for cost goals is summarised in how to scale Facebook ads.
The example, end to end:
| Step | Example value |
|---|---|
| Break-even CPL, on your CRM’s count | €80 |
| Target CPL, on your CRM’s count | €60 |
| Leads in CRM ÷ leads in Ads Manager, last 30 days | 100 ÷ 120 |
| Ceiling on Meta’s count | €50 |
| Average cost per result, last 30 days | €40 |
| Floor, +10–20% | €44–48 |
| Cost per result goal to start with | €46 |
| Minimum daily budget, 5 × goal | €230 |
| Weekly budget for about 50 leads, per ad set | €2,300 |
A cost per result goal is only as good as the CPL it’s anchored to. DropCPL computes CPL per creative and per landing page from the leads your landing pages actually received, against spend synced per ad from the Meta Ads API, so the goal starts from real numbers. Start free →
What happens when a cost cap or bid cap is too low?
A cap below what leads cost doesn’t throw an error. The ad set just wins fewer auctions, and the symptoms arrive slowly:
- Bid limited or Cost limited in the Delivery column. Meta says that means your bid control or cost per result goal is preventing the ad set from generating more results.
- Learning limited. Meta lists a low bid or cost control among the causes, and shows a tooltip on the status when that’s the reason (About learning limited). The learning phase guide covers the other causes.
- Budget left unspent, week after week. With a cost goal that’s the designed behaviour, not a glitch.
Meta’s fixes: switch to Highest volume, or raise the cost per result goal. When the ad set is bid constrained, Meta’s starting point is +5–10%; when it underspends with a CPA above target, its advice is to consolidate ad sets until they reach 50–100+ conversions a week. For a bid cap, raise or remove it, or broaden the audience and improve the ad so the same bid wins more auctions (bid cap best practices). The rest of the delivery checklist, from ad review to the Lead event, is in Facebook ad not delivering.
Meta does suggest lowering the goal in one case: an ad set that spends its full budget at a CPA well above target. Then a 5–10% cut tightens control. Lowering it on an ad set that already struggles to spend doesn’t make leads cheaper; it filters out more auctions.
Why the goal should follow your real CPL
Meta optimizes towards its own count, and as step 2 showed, that count isn’t yours. Real CPL vs platform CPL explains why the two never match. The gap changes how a cost goal behaves:
- If the browser Lead event misses submissions, Meta under-counts, its cost per result runs above your real CPL, and a goal copied from your CRM numbers throttles delivery you’d happily pay for.
- If Meta counts more leads than you receive, the goal looks met while your real CPL drifts above target.
Send the Lead event from your server through the Conversions API, with an event_id shared with the browser event (setup guide), and recompute the CRM-to-Ads Manager ratio every month before you touch the goal.