Most stores spending under $10k a month on Meta should not use a ROAS Goal. If that is your store, the choice is between Highest Volume, Cost per Result Goal, and ROAS Goal. For most of you, a cost goal set from break-even CPA is the winner once you have a usable purchase baseline. Highest Volume wins before that; ROAS Goal has to earn its place with both purchase volume and a wide spread of order values.
I know ROAS is the number you report. Bidding to it and reporting on it are two different jobs. A target can look beautifully disciplined in a dashboard while the campaign barely spends.
Meet the three contenders before you set a target
Meta describes a broader menu of bid strategies, including Highest Value and Bid Cap. I am leaving Bid Cap out of this head-to-head. Manual auction control is not the first problem a store trying to get 30 purchases a week needs to solve.
Highest Volume has no cost or return target. You give Meta a budget and an optimization event, and it pursues as many of those events as it can buy. Cost per Result Goal adds an average CPA target. Meta adjusts bids across auctions while trying to keep the weekly average near your goal, so a costly Tuesday does not prove the strategy failed. ROAS Goal adds an average return target instead. It prioritizes expected purchase value and can trade fewer conversions and a higher CPA for higher-value orders.
That is the actual contest: count purchases, constrain their average cost, or favor their expected value. Pick the job your account has enough information to do.
Axis 1: Purchase volume decides whether a target can work
Cost per Result Goal needs room to find conversions. Meta says it works best at 50 to 100 weekly conversions per ad set; below that, its suggestions include broadening the audience, increasing the budget, or raising the goal. ROAS Goal asks for value information too. Value optimization calls for 100 attributed purchase-optimized conversions in the last 28 days and at least 10 distinct purchase values.
Then there is the learning-phase rule of thumb: about 50 optimization events per ad set in a rolling seven days. The event you optimize for is the one that counts. A cost or return target cannot create purchases the budget was never going to buy. It may restrict delivery and leave you with fewer events to learn from.
Take a store spending $500 a week at a $40 CPA. That buys about 12 purchases. Consolidating into one broad ad set prevents you from splitting those 12 across several starved ad sets, but it does not turn them into 50. At that spend and CPA, Purchase optimization will not reach the usual learning threshold. Adding a ROAS floor makes the shortage harder, not easier.
The call: If you cannot get close to 50 purchases per ad set per week, start with Highest Volume and avoid fragmenting the account. Treat a cost target as the next step when purchase volume and delivery support it, not as a badge of seriousness.
Axis 2: AOV spread gives ROAS Goal a reason to exist
Say your catalog has $32 refills and $380 bundles. A Cost per Result Goal counts each sale as one purchase. It may fill the week with refills because those orders are easier to get, keep CPA tidy, and still leave revenue short. A ROAS Goal pays attention to purchase value. Holding out for bundle buyers can mean fewer orders and a higher CPA, but that trade has a point when the orders are worth very different amounts.
I used to put every catalog on ROAS because it sounded more sophisticated. I was wrong. If nearly every order lands between $45 and $60, CPA and ROAS are close to the same math wearing different clothes. Value bidding adds a constraint without giving Meta much useful variation to pursue. It makes more sense for multi-product stores with a wide AOV spread, where cheap and expensive orders should not carry equal weight. One $400 order hiding among ten $30 orders is the tell.
Pull your last 100 Shopify orders and look at the distribution, not just the average. If 80% fall within 30% of AOV, stay with a cost target when you are ready for one. If you see two clear humps, cheap frequent orders and expensive occasional ones, you may have a future ROAS account. A wide spread is a reason to consider value bidding; it is not a substitute for purchase volume.
Axis 3: Tight targets can starve the campaign you meant to protect
A target does not merely tell Meta what you would like to pay. It narrows the auctions in which delivery makes sense. Cost per Result Goal can spend under budget when purchases look too expensive. ROAS Goal can slow or stop delivery when its return floor is too high. Fewer delivered impressions can mean fewer purchases, which gives the ad set still less information for the next round.
The $500-a-week example makes this less abstract. At a $40 CPA, getting 50 purchases in a week would take about $2,000, or roughly $286 a day. The store has $500 for the whole week. One broad ad set is still less wasteful than several thin ones, but no bid-setting trick closes that budget gap. Highest Volume gives the available budget the best chance to establish a baseline without an extra target throttling it.
There is a switching cost, too: changing bid strategy can restart learning. Bounce from Highest Volume to a cost goal to ROAS Goal every time a daily number looks ugly, and you keep resetting the experiment you wanted to judge. Consolidate first; change one target deliberately; give it at least seven days before declaring victory or failure.
Axis 4: Your margin sets the number, not a ROAS benchmark
Highest Volume can spend the budget at whatever CPA the auction produces. Cost per Result Goal tries to defend an average CPA and may underspend. ROAS Goal tries to defend an average return and may underspend. None of those settings knows what you keep from an order unless you do the math first.
Break-even CPA is your contribution per order: AOV minus product, shipping, fees, and returns. Break-even ROAS is AOV divided by that contribution. At a 40% contribution margin, break-even ROAS is 2.5x. At 30%, it is about 3.33x. A 2x ROAS goal cannot protect a store that needs 3x to break even, however confident the person entering it looks.
A cost target tied to contribution is the clearer starting guardrail for a store whose orders have similar values. It is an average goal, not a guarantee that every order will come in below it. ROAS Goal becomes more useful when order values swing enough that a tidy CPA could conceal a week full of low-value purchases. That is a margin problem the CPA number alone may not show.
Set either target from your own contribution math. A benchmark may describe someone else’s account. It cannot pay your shipping bill.

Axis 5: The failure mode tells you what to check first
Highest Volume’s failure is easy to spot after the fact: it spends, but the purchases cost too much for your margin. Cost per Result Goal often fails more quietly. Spend drops to 40% of budget, the ad set shows learning limited, and someone says Meta is being weird. The goal may simply be 20% below what the available auctions will support.
ROAS Goal can go quiet for the same reason. A return floor set too high may leave little room to deliver. If you then change bid strategy to rescue spend, the learning reset means the fix needs time to show whether it worked. None of this makes underspending proof that your target is the only problem. It makes the target the first number I would inspect.
Use a short diagnostic: Is the campaign spending, and are the purchases profitable? If it will not spend, compare the goal with the account’s recent results before changing anything else. If it spends but misses your margin, check the contribution math behind the goal. Judge a Cost per Result Goal on its weekly average, not one day’s spike, and leave a week between meaningful changes.
Set the number from one margin calculation
Say your AOV is $80. After product, shipping, fees, and returns, you keep $32 before ad spend. Break-even CPA is $32; break-even ROAS is $80 divided by $32, or 2.5x. It is the same equation read two ways. Writing both figures down makes a vague instruction like “improve efficiency” much harder to hide behind.
For an established account that can deliver at a profitable cost, I want the live target inside break-even, not exactly on it. With a $32 break-even CPA, that might mean a Cost per Result Goal around $24 to $26 to leave room for fees, returns lag, and days when costs run hot. With a 2.5x break-even ROAS, a goal around 3.0x to 3.2x serves the same purpose. Those are examples built from the margin above, not numbers to paste into a new account. Run the 12-point CPA vs ROAS pre-flight checklist before you lock in either target.

With no history, do not guess which strict target the auction will tolerate. Run Highest Volume first to establish a baseline. When volume supports testing a constraint, one starting approach is to place Cost per Result Goal 10 to 20% above recent average CPA, or ROAS Goal 10 to 20% below recent average ROAS, then tighten in steps of no more than 10 to 20%, with a week between moves. That initial setting is a delivery test, not permission to keep buying orders above break-even. If your baseline CPA already exceeds contribution, fix that gap before calling a looser cost goal profitable.
A store spending $6,000 a month that jumps straight to a strict ROAS floor can buy the worst of both worlds: delivery shrinks, purchase events fall, and learning restarts on the ad set that was beginning to work.

The verdict: cost goal for the typical store, ROAS for the exception
| Your situation | Winner | Why it wins |
|---|---|---|
| Sparse purchase history or well under ~50 purchases a week per ad set | Highest Volume for now | An extra target may restrict the events you need to establish a baseline |
| Similar order values and enough purchases for a stable baseline | Cost per Result Goal | A CPA goal tied to contribution gives you a direct margin guardrail |
| Wide order-value spread, roughly 50 purchases a week per ad set, 100+ purchases in 28 days, and 10+ distinct values | ROAS Goal | Value matters enough, and appears often enough, to justify bidding for it |
| Lead gen with no purchase values | Cost per Result Goal | There is no purchase value for a ROAS goal to pursue; use a qualified-lead cost target |
Under 50 weekly purchases, earn the right to add a target
At $5,000 to $8,000 a month and a $35 to $45 CPA, a store may get roughly 25 to 45 purchases a week across the account. Split that into three ad sets and a retargeting campaign, and each gets thinner. I would start with one broad ad set on Highest Volume toward Purchase, or toward Initiate Checkout if Purchase cannot produce enough events, and watch whether delivery stabilizes over two full weeks. Optimizing toward checkout changes the event you are asking Meta to find, so keep checking actual purchases and margin.
If purchases and delivery support a cost-goal test, start from the recent CPA baseline and hold the new setting for seven days. Running without a target can feel undisciplined. Throttling 30 purchase events into 18 and calling the resulting learning limited badge “control” is worse. If a manager puts this account on ROAS Goal in week two, ask where its purchase-value data came from.
Pick ROAS Goal when both volume and order values make the case
The ROAS winner is the store with enough purchases and a meaningful value spread: roughly 100 purchase-optimized conversions in 28 days, at least 10 distinct values, and a catalog where the top-quartile order is at least twice the median. That is the fashion or home-goods case where value bidding earns its keep. A catalog with nearly identical baskets has no such argument, even if its ROAS report looks impressive.
Before you approve a switch, ask your manager three questions:
- What are our break-even CPA and ROAS from contribution margin, and where does the proposed target sit against them?
- How many optimization events did this ad set get last week, and what will we do if delivery drops?
- Where will we test ROAS Goal? A campaign created with ROAS Goal under Advantage+ campaign budget cannot be switched later.
Lead gen is the clean exception to this purchase-value contest. With no purchase values, use a Cost per Result Goal against a qualified lead rather than a raw form fill, and keep the event consolidated. For a store, though, the choice is clearer: start unconstrained when the data is thin, move to a margin-based cost goal when the account can support one, and give ROAS Goal the job only when volume and basket values justify it.
A manager who cannot answer those questions in numbers is billing you for confidence. It is why stores hand the decision to groas Meta Ads management: a flat fee, targets set from margin math, and someone watching delivery daily instead of checking in when the invoice goes out. Report ROAS every Monday. Bid to the target your volume and catalog actually support. That is the whole game under $10k. If you are still unsure which target fits your volume and spread, learn when each metric belongs in an advertising contract before you let anyone lock it in.

