Running Meta and TikTok ads for a Shopify store without losing money
Work out break-even ROAS and an affordable acquisition cost, then test Meta and TikTok ads against Shopify orders and contribution profit.
By BrimScout team · · 5 min read
A campaign can show a strong return on ad spend and still lose money. ROAS compares attributed revenue with advertising cost. It does not know whether the order had a discount, expensive delivery, a refund or almost no product margin.
Before testing another creative, calculate what one real order can afford to spend on acquisition. Then decide how much uncertainty you can fund while you learn. The calculations here use hypothetical numbers. They are a planning method, not a promise that a campaign will become profitable.
Build an order contribution figure
Start with net revenue you keep from an average order. Subtract discounts and expected refunds. Exclude sales tax collected for a tax authority. If customers pay for shipping, include that revenue and the associated delivery cost consistently.
Next subtract landed product cost, packaging, pick and pack, shipping, payment fees and other costs that rise with each order. Include a sensible return allowance if returns are material. Separate fixed monthly overhead so you can see both order contribution and the amount needed to support the business.
For this example, an order produces $60 of net revenue and has $36 of non-ad variable costs. It leaves $24 before advertising. If an agency or service takes a variable share of each order, include that too. Unknown costs belong on a follow-up list, not in a zero-valued cell.
Use product-level calculations when your mix varies widely. A bundle, a refill and a heavily discounted first order may have very different acquisition limits. An account-wide average can hide those differences.
Calculate break-even ROAS
The contribution margin before ads is $24 ÷ $60 = 40%. The corresponding break-even ROAS is:
Break-even ROAS = 1 ÷ contribution margin before ads.
In the example, 1 ÷ 0.40 = 2.5. Spending $24 to generate a $60 order gives a 2.5 ROAS and leaves no contribution after advertising. That still does not cover fixed overhead or create an operating profit.
Choose a target that leaves money for those needs. If you want $9 left from each example order after ads, the maximum acquisition cost is $24 − $9 = $15. Your target ROAS becomes $60 ÷ $15 = 4.0. This target follows from your economics, not an industry benchmark.
Keep the revenue basis consistent. If an ad dashboard reports $70 including amounts your contribution calculation excludes, dividing that number by the same ad spend will overstate the comparable ROAS. Reconcile the definitions before judging performance.
Check measurement before buying more traffic
Verify that the right store, ad account and purchase event are connected. Place an appropriate test order using the platform's testing tools where available. Confirm that value and currency arrive correctly and that a single purchase is not counted twice.
Record each platform's attribution settings. Meta and TikTok may credit the same buyer after different interactions. Never add their attributed revenue together and call the result unique store revenue. Use Shopify orders as the record of orders placed, and platform reports as views of attribution.
Shopify explains its marketing report attribution models in its marketing performance reporting documentation. TikTok explains the role of click and view windows in its attribution window documentation. These settings affect the comparison; they do not establish that an order was caused by an ad.
Run a test you can afford to finish
Pick one offer, one product group and a few distinct creative ideas. Write the audience problem and product promise for each idea before making variants. Changing the offer, landing page, audience and creative at once makes a result hard to explain.
Set a total cash cap and a decision date. Work backward from the acquisition cost you can afford and the number of orders you would need to learn something useful. If your budget cannot buy enough observations at that cost, reduce the scope or use a different way to learn about the offer.
There is no guaranteed minimum spend that produces reliable conclusions for every store. A small test may end with too little evidence. Decide in advance whether that result earns another bounded test or a stop. Do not increase the cap just because the campaign feels close to working.
Read results in three layers
First, inspect delivery and attention: spend, impressions, clicks and landing-page visits. A cheap click is useful only if the right customer reaches a functioning page. Check links, mobile speed, stock and checkout before declaring the product unattractive.
Second, inspect orders: conversion rate, order value, product mix, discounts and returns. Look for a broken offer or a mismatch between the ad and the page. Do not treat add-to-cart events as equivalent to paid orders.
Third, calculate contribution. Sum the contribution before ads from the actual orders in the evaluation period, then subtract ad spend and relevant test costs. Keep Meta and TikTok spend visible separately. At the store level, include all paid acquisition spend without duplicating revenue.
If you use blended revenue divided by spend, label it a store-level ratio. It includes organic and repeat demand and is not the same as campaign ROAS. Compare it with a dated baseline while recording email campaigns, promotions and other demand drivers.
Scale in steps and protect cash
When a test meets its contribution target, increase exposure in a controlled step and recheck the economics. More spend can reach a different audience and change acquisition cost. Do not assume yesterday's average holds at twice the budget.
Check stock and fulfillment capacity before scaling. Profitable demand becomes a problem if late orders create refunds and support work. Match purchasing commitments to the money you can actually collect and reinvest.
Use repeat-customer value only when you have evidence of repeat purchases and a realistic payback period. An assumed future subscription or reorder does not pay today's invoice. Until that evidence exists, keep the first-order limit visible.
Want help turning ad reports into a cost-based decision? Get a free BrimScout profit audit. We can review the contribution math and the next test worth running.