Skip to content

How to tell if your Meta ads are working, step by step

Work out break-even ROAS from your Shopify margin and confirm each ad set has left learning. Read Purchase ROAS under one attribution setting. Then set weekly Meta spend against Shopify sales, and test with a control group before you add budget.

By , Founder & CEOUpdated 8 min read

Run the numbers for your store: the free break-even ROAS calculator.

Start in Shopify: divide 1 by your gross margin to get your break-even ROAS. Then check in Ads Manager that each ad set has finished learning and beats that number under one attribution setting. Last, set weekly Meta spend against weekly Shopify sales. If sales usually ignore spend, test with a control group before adding budget.

You need Ads Manager, your Shopify admin and about an hour, plus a few weeks of patience for the final step. Keep one sheet open as you go: each step hands a number to the next.

Step by step

  1. Work out your break-even ROAS. Shopify's profit reports calculate gross margin as net sales minus cost, divided by net sales. Divide 1 by that margin, written as a decimal, and note the result. If shipping and payment fees eat into each order, take them off the margin first. Menu path: Shopify admin > Analytics > Reports > Category filter > Profit Margin.
  2. Fill in missing product costs first. Shopify only reports profit for products and variants that had a cost recorded when they sold. Without costs, your margin describes part of the catalogue. Menu path: Shopify admin > Products > the product's name > Price section > Cost per item > Save.
  3. Check each ad set has finished learning. The Delivery column reads Learning while Meta still explores, and Learning limited when an ad set lacks the results to exit. The Last significant edit column shows your latest change that could have restarted it. Menu path: Ads Manager > Ad sets > Delivery column, then Columns to add Last significant edit.
  4. Put the attribution setting on screen. Meta sets attribution per ad set, and a campaign can add results together across several settings. Compare ad sets that share one setting, or you compare counting rules instead of ads. Menu path: Ads Manager > Columns dropdown next to View Setup > Customize columns > search Attribution setting > Apply.
  5. Add Purchase ROAS and save the view. Meta calculates Purchase ROAS as purchase conversion value divided by amount spent. Website purchase ROAS keeps to purchases your pixel or Conversions API recorded on your site. Save the set as a column preset, so every later check reads the same view. Menu path: Ads Manager > Campaigns, Ad sets or Ads > Columns > Customize columns > Save as a column preset > Apply.
  6. Read results by week, not by day. A single day swings with the weather, and a week shows the level. Set each week's Purchase ROAS against your break-even. Menu path: Ads Manager > select the campaign > Breakdown icon > By time > Week.
  7. See how much rides on views. Show 1-day view, 1-day click and 7-day click side by side. If most purchases appear only under 1-day view, the return leans on people who saw an ad and bought within a day without clicking. Menu path: Ads Manager > Columns: Performance > Performance > Compare attribution settings > Apply.
  8. Set Meta spend against total sales, week by week. Export the weekly amount spent from Ads Manager. In Shopify, group Total sales over time by week, then put both columns in one sheet. Menu path: Shopify admin > Analytics > Reports > Total sales over time > Dimensions > Week.
  9. Check that GA4 sees Meta's visitors. If GA4's Paid Social row is empty while Meta reports link clicks, fix the tags first: how to track Meta ads in GA4. Menu path: GA4 > Reports > Acquisition > Traffic acquisition, Paid Social row.
  10. Book a test with a control group. Conversion Lift keeps a control group away from your ads and compares its conversions with a test group that can see them. For a region split instead, exclude regions on the ad set for the whole test. A targeting change is a significant edit, so learning restarts. Menu path: Experiments > Conversion Lift, or Ads Manager > ad set > Audience > Locations.

A worked example

For illustration, take a shop with Shopify's textbook margin. Shopify's profit help works an example where net sales of $50 and a cost of $30 give a gross margin of 40%. Now one store's anonymised GA4 export, 1 January 2024 to 21 August 2026. Its Break-even sheet holds the same arithmetic: at a 40% margin, break-even ROAS is 2.5x.

For illustrationWeeks 1 to 4Weeks 5 to 8
Meta amount spent, per week€2,000€4,000
Meta purchase value, per week€6,000€12,000
Purchase ROAS (7-day click, 1-day view)3.0x3.0x
Shopify total sales, per week€30,000€31,500

For illustration, step 6 passes in both halves: 3.0x clears the 2.5x line. Ads Manager even says the doubled budget kept its return. For illustration, step 8 disagrees: weekly spend rose by €2,000 while weekly Shopify sales rose by €1,500. For illustration, that is 0.75x on the added money, while Meta credited the same money with €6,000 of purchase value, or 3.0x.

Both can be true. Meta counted purchases that happened near its ads, and in this example most of those buyers were coming anyway. A before-and-after view is a hint, not a verdict: a sale, a stock-out or a holiday moves sales too. It tells you where to aim the test in the last step.

Timing matters as well. On that one store's Journeys sheet, journeys of 4 to 9 touches took 16.9 days to buy. So spend added late in one block can still be selling in the next. Compare blocks of several weeks, never single weeks.

What to check when the report looks wrong

  • An ad set is stuck on Learning limited. It is not collecting enough results to leave learning. Meta suggests fewer ad sets, combining similar ones, and budgets large enough to gather results.
  • ROAS lurches after a budget change. A big change can send an ad set back into learning, and a small one usually does not. Meta's own example says $100 to $101 is unlikely to restart learning, while $100 to $1000 may.
  • Two ad sets look wildly apart. Read their Attribution setting column before you blame the ads. A 1-day click ad set and a 7-day click ad set count different purchases.
  • Meta shows purchases, GA4 shows no Paid Social. The ads may carry no tags, or the sales came from views GA4 never sees. Start with the tags: why Meta ads go missing in GA4.
  • Purchase ROAS moves when nothing changed. Meta says statistical modeling may fill in purchases and their values where data is partial or missing. Judge blocks of weeks, not single days.
  • Sales in the excluded regions barely dip. Location targeting is not exact. Meta says someone who lives in an included location may see your ad while visiting an excluded one.

What to do this week

  1. Save one column preset for every check. Include Delivery, Attribution setting, Purchase ROAS, cost per purchase and Last significant edit. Pass: one click shows all five for every ad set. Fail: you rebuild the view each time and compare different views.
  2. Start the weekly sheet. One row per week, with Meta amount spent next to Shopify total sales, going back as far as both reports allow. Pass: a couple of months in which spend moved. Fail: spend never changed, so the sheet cannot answer anything yet.
  3. Pick the test you can run and write it down. Check Experiments for Conversion Lift, or choose regions to exclude. Pass: a start date, an end date and a control group, fixed before launch. Fail: "pause it and see", which Meta's own help calls unreliable.

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 Help Center); About the learning phase (Meta Business Help Center); About multiple attribution settings (Meta Business Help Center); Customize columns in Meta Ads Manager (Meta Business Help Center); Purchase ROAS (return on ad spend) (Meta Business Help Center); Website Purchase ROAS (Return on Ad Spend) (Meta Business Help Center); Navigate to breakdowns in Meta Ads Manager to understand ad performance (Meta Business Help Center); About breakdowns, metrics and filtering in Meta Ads Reporting (Meta Business Help Center); Compare attribution settings in Meta Ads Manager (Meta Business Help Center); Setting and comparing time ranges for your reports (Shopify Help Center); Traffic acquisition report (Google); About Experiments (Meta Business Help Center); About Conversion Lift (Meta Business Help Center); Use location targeting (Meta Business Help Center); Significant edits and learning phase (Meta Business Help Center); About A/B testing (Meta Business Help Center); Best practices for A/B Testing (Meta Business Help Center).

Frequently asked questions

  • Can Meta's A/B test show whether my ads work at all?
    No. An A/B test compares versions of your ads with each other, so every group sees some ads. It picks a winner, not a lift. To learn whether ads add sales at all, you need a control group that sees none, which is what Meta's Conversion Lift test sets up.
  • Should I judge Meta on cost per purchase or on ROAS?
    On ROAS if your order values vary, because it weighs each sale by its value. Cost per purchase works when orders cost about the same. Either way, set it against your margin: ROAS above 1 divided by your margin, or cost per purchase below your gross profit per order.
  • How long should a Meta region test run?
    As long as your slower buyers need, plus time for learning. Meta's guidance for its own tests is a minimum of 7 days, and longer when customers take more than 7 days to convert. Excluding regions changes targeting, which restarts learning, so add a few days.

Go deeper: Incrementality testing, explained.

Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.

Keep reading

Terms in this article

Browse the full glossary

Your platforms guess.
We run the math.

Upload a GA4 export and see what each channel caused, next to last-click, in 1–2 minutes. The read is yours to keep.

Free, in your browser: your file is not uploaded. The full read is €99, refundable within 30 days. Prices exclude VAT.
Or book a 30-min call.