How to set a good ROAS target for Shopify, step by step
A good ROAS target is your break-even ROAS plus a buffer. Enter Cost per item in Shopify and read your margin. Take off shipping, fees and refunds, then divide 1 by what is left. Set the target in Google Ads and check it in GA4.
By Joris van Huët, Founder & CEOUpdated 7 min read
Run the numbers for your store: the free break-even ROAS calculator.
A good ROAS target on Shopify is usually break-even plus a buffer. Enter each product's cost, read your margin, take off shipping, fees and refunds, and divide 1 by what is left. Set the target above that line, then check it in Google Ads and GA4 before you trust it.
This is the procedure, screen by screen. The menu paths come from Shopify's and Google's help pages as they read on 1 October 2026. Labels move now and then, so the report names are the part to hold on to.
Step by step
- Enter what each product costs you. From your Shopify admin, go to Products and click the product's name. In the Pricing section, fill in Cost per item, which Shopify defines as the cost to you of the product or variant. Shopify then shows a projected Profit and Margin for it. Menu path: Shopify admin > Products > (product) > Pricing > Cost per item.
- Open the profit report. Shopify works out gross margin there as net sales minus cost, divided by net sales. Pick a date range long enough to smooth out one big promotion. Shopify reports profit only for products and variants that had a cost recorded when they sold. A cost typed in today will not fix last month. Menu path: Shopify admin > Analytics > Reports > Category filter > Profit Margin > Gross profit by product.
- Take off the costs that margin leaves in. Shopify's cost per item leaves out taxes, shipping and other costs. Subtract the shipping you pay, payment fees and your refund share. Total sales over time counts refunds and returns among its sales reversals. What is left is your contribution margin. Menu path: Shopify admin > Analytics > Reports > Category filter > Sales > Total sales over time.
- Divide 1 by your contribution margin. The answer is your break-even ROAS. Below it, every sale the platform credits loses money; above it, each one leaves something. The free break-even ROAS calculator does the sum and shows its working. Menu path: none, this step is arithmetic.
- Read what each campaign reports. In Google Ads, open the Columns drop-down, choose Modify columns and add Conv. value/cost from the Conversions list. Google's help says to multiply it by 100 to read it as a Target ROAS percentage. Menu path: Google Ads > Campaigns > Columns > Modify columns > Conversions > Conv. value/cost.
- Aim above break-even. Google defines target ROAS as the average conversion value you would like for each dollar of ad spend. Leave room for refunds and for sales the ads did not cause. Google also warns that a target set too high may limit your traffic. Menu path: the campaign's settings, or the Bid strategies page in the Shared library.
- Check the channel in GA4. Open Advertising, then Planning, then All channels, and pick purchase in the key events drop-down at the top left. Its Return on ad spend column divides the revenue for the selected key events by your ad cost. That needs cost data, from a linked Google Ads account or an import. Menu path: GA4 > Advertising > Planning > All channels.
A worked example
Shopify's help page uses a product priced at $50 USD that costs $30 USD, which gives a 40% margin. At a 40% margin, the Break-even sheet of one store's export gives a break-even ROAS of 2.5x, because 1 divided by 0.40 is 2.5. That line only covers product cost.
For illustration, say the shipping you pay, payment fees and refunds take another 10% of each sale, so the margin drops from 40% to 30%. If you divide 1 by 0.30, break-even rises to about 3.3x. If you set that as a Target ROAS in Google Ads, it reads as about 333%. Run the same sum for each product group, because a hero product and a discounted bundle rarely share a line.
Now the campaign. Say the Conv. value/cost column shows 3.0 for a month that ended before the most recent conversion delay. In this illustrative case, the campaign clears 2.5x on product margin and misses 3.3x once the other costs are in. On the first number you would scale it. On the second you would fix it or cut it.
Then ask who owns the sale. Direct takes 57.7% of revenue in the same export, in last click, first click and touched alike (Channels sheet). By Google's definition, those are visits from a saved link or a typed URL. If your ad account claims sales that GA4 files as Direct, your 3.0 may include buyers who were coming anyway.
Which ROAS should I believe?
Each tool answers a slightly different question, so none of them settles it alone. Google Ads values conversions with the numbers you report to it, and it credits its own ads. GA4 credits revenue by the reporting attribution model set for your property, which is data-driven unless someone changed it. Shopify knows your costs, but not which ad sent the buyer.
So split the jobs. Take the margin from Shopify, the campaign view from the ad platform and the cross-check from GA4. When all three point the same way, act. When they split, the split is the finding: work out which sales each one is claiming before you move money.
What should I check when the numbers look wrong?
- The profit report shows no margin. The product sold before its cost was entered, and Shopify does not backfill profit. Enter costs now and judge margin on sales from today on.
- Google Ads and GA4 disagree. Some gap is normal, because Google says the two attribute key events differently. GA4 also reports in the property's time zone and Google Ads in the account's, so match those first.
- Last week looks dreadful. Google's help says to leave the most recent conversion delay out when you judge ROAS. Late sales have not arrived yet, so judge a period that ended before that delay.
- Conv. value/cost is empty. The campaign counts conversions but sends no values with them. Google needs those values before Target ROAS can run, so fix the purchase value first.
- GA4 shows no Return on ad spend. All channels needs cost. With no linked Google Ads account and no imported cost, there is nothing to divide by.
- ROAS clears break-even and profit still falls. Then the ads may be collecting sales rather than making them. A better column will not fix that, and a holdout test will tell you.
What to do this week
- Cost your ten best sellers today. In Shopify, go to Products, open each one and fill in Cost per item. Pass: each product page now shows a Margin. Fail: no Margin appears, so the cost did not save or the field is still empty.
- Measure your refund drag. In Shopify, go to Analytics, then Reports, filter the Category to Sales and open Total sales over time for last quarter. Divide sales reversals by gross sales. Pass: you have one refund share to take off your margin. Fail: you skip it, and your break-even line sits too low.
- Put the target where bidding can see it. In Google Ads, open the campaign's settings and set Target ROAS at break-even plus your buffer. Pass: the campaign takes it, because it already tracks conversion values. Fail: it will not, because Google needs conversion values before Target ROAS can run.
Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework
Sources, 1 October 2026: Adding and updating products (Shopify Help Center); Product details page (Shopify Help Center); Profit reports (Shopify Help Center). Sales reports (Shopify Help Center); About Target ROAS bidding (Google Ads Help); All channels performance report (Google Analytics Help). Select attribution settings (Google Analytics Help); Default channel group (Google Analytics Help).
Related answers
Frequently asked questions
Where do I find ROAS in Google Ads?
Add the Conv. value/cost column. Open the Columns drop-down, choose Modify columns and pick it from the Conversions list. Google's help says to multiply it by 100 to read it as a Target ROAS percentage.What margin should I use for break-even ROAS?
The margin left after product cost, the shipping you pay, payment fees, discounts and refunds. Shopify's Margin field only takes product cost off the price, so treat it as a ceiling. Divide 1 by the lower, fuller margin.How often should I recheck my ROAS target?
Whenever a cost moves: a supplier price change, new shipping rates, a discount event or a jump in refunds. Recheck before peak season too, since deeper discounts shrink the margin and raise the ROAS you need to break even.
Go deeper: Causal attribution, explained.
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
Keep reading
Terms in this article
- AttributionAttribution identifies user actions that contribute to a desired outcome and assigns value to each. It reveals which marketing touchpoints drive conversions.
- Attribution ModelAn Attribution Model defines how credit for conversions is assigned to marketing touchpoints. It dictates how marketing channels receive credit for sales.
- Google AnalyticsGoogle Analytics is a web analytics service that tracks and reports website traffic.
- Holdout TestA holdout test is an experiment where a portion of the audience does not see a campaign. This measures the campaign's true incremental impact.
- IncrementalityIncrementality measures the true causal impact of a marketing campaign. It quantifies the additional conversions or revenue directly from that activity.
- MER vs ROASMER (marketing efficiency ratio) is total revenue divided by total ad spend; ROAS is revenue credited to a specific channel divided by that channel's spend. MER cannot be gamed by attribution but is blind to channels; ROAS is channel-level but only as honest as the attribution behind it.
- Product PageProduct Page is a webpage dedicated to a single product. It includes images, descriptions, pricing, and purchase options.
- Profit MarginProfit margin measures profitability, calculated as net income divided by revenue and expressed as a percentage.