How to find diminishing returns in ad spend, step by step
Line up weekly spend from Google Ads and Meta against weekly Shopify sales. Sort the weeks into spend bands and divide the extra sales by the extra spend. Where that falls below your break-even ROAS, more budget stops paying. Then test one step.
By Joris van Huët, Founder & CEOUpdated 8 min read
Run the numbers for your store: the free break-even ROAS calculator.
To find diminishing returns, line up weekly ad spend from Google Ads and Meta against weekly sales from Shopify. Then compare what each extra block of spend added. Where the extra revenue per extra euro falls below your break-even ROAS, usually 1 divided by your margin, more budget stops paying. Confirm it with one controlled budget step.
What diminishing returns are, and why the average hides them, sits in What is diminishing returns in ad spend?. This page is the spreadsheet and the clicks, with every path taken from the platform's own help page.
Step by step
- Find your gross margin in Shopify. Go to Analytics > Reports, click the Category filter, choose Profit Margin and open Gross profit by product. Shopify works out gross margin as net sales minus cost, divided by net sales. Where: Shopify Help, Profit reports.
- Fill in missing product costs. Shopify only reports profit for products that had a cost recorded when they sold. Go to Products, open a product, click Cost per item in the Price section, enter the cost and click Save. Where: Shopify Help, Profit reports.
- Turn the margin into your bar. Break-even ROAS is 1 divided by your gross margin. Write it at the top of a new sheet, because every extra block of spend has to beat it. Where: a blank spreadsheet.
- Copy weekly Google Ads cost. Open the Campaigns table, select the segment icon, then choose Time and Week. Copy the cost per week into your sheet. Where: Google Ads Help, Use segments in your tables.
- Copy weekly Meta spend. In Ads Manager, select your campaigns, click the Breakdown icon, then By time, and pick the weekly breakdown. Meta's reporting help lists Week among its time breakdowns. Where: Meta Business Help Center, Navigate to breakdowns in Meta Ads Manager.
- Export weekly sales from Shopify. Open Total sales over time and set the time unit to week in the configuration panel's Dimensions menu. Then export it from the report. Where: Shopify Help, Setting and comparing time ranges, and Exporting reports.
- Sort the weeks into spend bands. Give each week one row with total ad spend and total Shopify sales. Sort by spend and cut the rows into three or four bands. Where: your sheet.
- Work out the return on each step up. Divide the extra sales between two bands by the extra spend between them. That is the marginal ROAS of the step, so set it against your bar. Where: your sheet.
- Ask Performance Planner for Google's view. In the Tools menu, open Performance Planner and select the plus icon. Set the date range, channel and key metric, pick campaigns and select Create, then change spend on the Draft plan page. Where: Google Ads Help, Create and edit a plan with Performance Planner.
- Check one campaign in the simulator. On the Campaigns page, select the simulator icon in the Budget column. It estimates what different campaign bids would have bought over the previous 7 days. Set the extra cost against the extra conversion value at each bid. Where: Google Ads Help, Estimate your results with bid, budget, and target simulators.
- Look for a GA4 Scenario plan. From the left menu, select Advertising, then Scenarios under Budgeting, and click Create plan. Its response curve compares ROI at different budget levels, but Google says the feature may not be available to your property. Where: Analytics Help, About cross-channel budgeting.
- Test with one step, not a leap. In Ads Manager, hover over the campaign or ad set, click Edit, change the budget and click Publish. Meta says a change from $100 to $101 is unlikely to restart learning, while $100 to $1000 may. Where: Meta Business Help Center, Change your budget in Meta Ads Manager, and Significant edits and learning phase.
A worked example
For illustration, say a brand sorts a quarter of weeks into three spend bands. Its sheet reads:
| Weekly spend band | Weeks in the band | Shopify total sales, weekly | Extra sales per extra euro |
|---|---|---|---|
| €2,000 | 5 | €10,000 | |
| €3,000 | 5 | €13,000 | 3.0x |
| €4,000 | 3 | €15,000 | 2.0x |
Now the bar. On one store's Break-even sheet, a 40% margin gives a break-even ROAS of 2.5x, which is 1 divided by 0.40. If your margin is 40% too, the step from €2,000 to €3,000 clears that bar at 3.0x. For illustration, the step to €4,000 misses it at 2.0x, though blended ROAS at €4,000 is still 3.75x.
Say the top €1,000 a week returned €2,000 of sales: at 40%, that is €800 of margin for €1,000 of spend. For illustration, the call is to hold at €3,000 and test before going higher.
Read bands, not single weeks. In one store's Journeys sheet, journeys with 2 to 3 touches took 12.5 days to buy, so one week's spend can sell the next week. A band of several weeks absorbs that spill.
Pass: each step up has its own marginal ROAS, and you can say which step crosses your bar. Fail: two bands sit so close that the step between them is noise. Widen the bands, or run the budget test from the last step.
What should you check when the numbers look wrong?
- Spend never moved. If every week sat near one level, there is no step to read. Meridian's guide says the extrapolation risk on a response curve above your historical spend grows the further out you go.
- Your top-spend weeks were your peak weeks. Promotions and season lift sales whatever you spend. Drop promotion weeks, or use Compare to and Previous year in Shopify to see last year's same weeks.
- A budget jump restarted learning. Meta says ad sets in learning are less stable and usually have a higher CPA. They usually leave learning after about 50 results in the week after the last significant edit. Check the Last significant edit column before you read a step.
- Platform revenue flattens but Shopify sales do not. The platform is running out of sales to claim, not of buyers. Draw the curve on Shopify's total sales.
- Only one channel's spend moved. If Meta changed week to week and Google Ads stayed flat, your bands describe Meta alone. Read the result as one channel's step, not your whole budget's.
- Cost per result climbs while spend is flat. That is not diminishing returns from spend. Look at creative, auction prices and the calendar first.
What to do this week
- Build the weekly sheet. Copy a quarter of weekly spend from Google Ads and Meta, and weekly sales from Shopify. Steps 4 to 6 show where. Pass: you have three or more bands with clearly different spend. Fail: spend barely moved, so go straight to the step test below.
- Plan one budget step. Raise your best campaign's budget by an amount you could afford to lose, and hold it for two full weeks. Pass: the Last significant edit column shows only the budget change. Fail: someone also swapped creative or targeting, so restart the clock.
- Score the step against your bar. Divide the extra Shopify sales by the extra spend over those weeks. Pass: the result beats your break-even ROAS, so the extra budget pays. Fail: it falls short, so step back down and spend the difference elsewhere.
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: Profit reports (Shopify); Use segments in your tables (Google); Navigate to breakdowns in Meta Ads Manager to understand ad performance (Meta); About breakdowns, metrics and filtering in Meta Ads Reporting (Meta); Setting and comparing time ranges for your reports (Shopify); Exporting reports (Shopify); Create and edit a plan with Performance Planner (Google); About Performance Planner (Google); Estimate your results with bid, budget, and target simulators (Google); About cross-channel budgeting (Google); Change your budget in Meta Ads Manager (Meta); Significant edits and learning phase (Meta); About the learning phase (Meta); Incremental Outcome, ROI, mROI & Response Curves (Google)
Related answers
Frequently asked questions
What if my ad spend barely changed from week to week?
Then your history cannot show where returns fall, because there is no step to read. Meridian's guide warns that response curve estimates above your past spend get riskier the further out you go. Plan one deliberate budget step on one campaign and hold it long enough to read.Should I raise a Meta budget in one big jump to test it?
No. Meta says a budget change may or may not restart learning, depending on its size. Meta's own example: $100 to $101 is unlikely to restart learning, while $100 to $1000 may. A learning ad set is less stable, so a big jump mixes saturation with relearning.Does Performance Planner account for diminishing returns?
In its own way. Google says it simulates relevant ad auctions to forecast how spend changes might affect your results, so its forecasts can show extra spend buying less. It forecasts conversions as Google Ads counts them, not your total store sales.
Go deeper: Causal attribution, explained.
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
Keep reading
Terms in this article
- AnalyticsAnalytics is the systematic computational analysis of data. It reveals customer behavior and measures campaign performance.
- AttributionAttribution identifies user actions that contribute to a desired outcome and assigns value to each. It reveals which marketing touchpoints drive conversions.
- CausalityCausality is the relationship where one event directly causes another, essential for identifying specific actions that drive desired outcomes in marketing.
- ConversionConversion is a specific, desired action a user takes in response to a marketing message, such as a purchase or a sign-up.
- Google AdsGoogle Ads is an online advertising platform where advertisers bid to display ads, service offerings, and product listings.
- IncrementalityIncrementality measures the true causal impact of a marketing campaign. It quantifies the additional conversions or revenue directly from that activity.
- Incrementality TestingIncrementality Testing measures the additional impact of a marketing campaign. It compares exposed and control groups to determine causal effect.
- Profit MarginProfit margin measures profitability, calculated as net income divided by revenue and expressed as a percentage.