← Back to Blog

May 22, 2026

Shopify Ad Spend Tracking: How to Do It the Right Way

Shopify won't show what ads really cost per product. Learn shopify ad spend tracking step by step. Start your free beta at Shopsterra today.

Johny | Shopsterra

You scaled Meta last month because the dashboard looked fine. Revenue climbed. ROAS stayed above 3x. Then you reconciled the ad invoice against your bank balance and the math did not add up.

That gap is almost never a billing mistake. It is what happens when you treat Shopify revenue as proof that ads are working. Shopify ad spend tracking done properly means tying every dollar of acquisition cost to the profit left after COGS, refunds, shipping, and fees. Not to gross sales.

If you run a store in the $200k to $2M GMV range, you already feel this. The question is whether you are measuring it or guessing.

Why Shopify Analytics Will Not Show Real Ad Impact

Shopify is built to report commerce activity. Orders, sessions, conversion rate, product revenue. It is not built to be your media buying ledger.

Your ad platforms report spend and platform ROAS. Shopify reports what customers paid. Neither side subtracts the other automatically, and neither shows you net profit per SKU after both numbers land.

A store doing $120,000 in monthly revenue might spend $32,000 on Meta and Google. Shopify shows the revenue. It does not attach that $32,000 to each SKU those ads sold, or flag a hero product losing money after a 22% refund rate and $11 CAC on a $38 item.

That is why founders stare at green charts and still ask where the cash went. The charts are not lying. They are incomplete.

The Spreadsheet Trap: Hours, Lag, and Silent Errors

Most operators start with a Google Sheet. Export Shopify sales, paste Meta spend, add Google, guess TikTok, type COGS from supplier invoices, manually allocate refunds.

It works once. It hurts every month after.

A manual cycle for an $80k per month store takes 3 to 5 hours when done carefully. Three ad accounts, date alignment, campaign splits when SKUs overlap. One wrong VLOOKUP and you scale a loser for six weeks. Sheets also lag: refunds post late, suppliers raise COGS, and last month's tab is stale while spend runs daily.

We see the same pattern in beta stores: the sheet said a bundle was at 4.2x ROAS. Connected data showed negative $200 per month on that SKU after returns and fees. One store found a $4,200 per month bleed on a product they thought was a winner. The sheet was not malicious. It was just too slow and too coarse.

What Proper Ad Spend Tracking Actually Looks Like

Real tracking answers three questions with numbers, not vibes.

Per product: What did I spend to sell this SKU, and what net margin is left? Not blended store ROAS. SKU-level contribution after ads, COGS, refunds, shipping, and fees.

Per campaign: Which ad set funded which products, and did that combination clear a profit floor? A campaign can look efficient on revenue while funding a refund-heavy variant.

Per time period: Daily or weekly net profit after ad spend, so you can cut budget before a bad week becomes a bad quarter.

Example: Product A at $20,800 revenue, $7,600 COGS, $8,400 ads, $1,900 refunds, $780 fees leaves about $2,120 net (10% on revenue). Product B at $14,000 revenue can still be negative when CAC is $24 on a $41 AOV with thin margin. That SKU view is what shopify ad spend tracking is for.

How Blended ROAS Hides Losing Products

Blended ROAS is store revenue divided by total ad spend. It is the metric ad platforms optimize for because it is easy to report.

It is also dangerous.

Imagine $50,000 in monthly ad spend and $180,000 in attributed revenue. Blended ROAS is 3.6x. Feels healthy.

Now split the catalog. Three SKUs produce 70% of revenue at 4.8x ROAS and strong net margin. Two SKUs absorb 30% of spend at 1.9x ROAS with high returns. Blended still prints 3.6x while those two SKUs destroy $3,000 to $5,000 of profit every month.

Founders then raise account budget. Platforms push spend toward audiences that buy refund-heavy SKUs because they convert on revenue. Blended ROAS stays flat while net profit falls. Track contribution after ads per product and pause anything below your margin floor before you scale.

Six Practical Steps to Get Accurate Numbers

Step 1: Pick a single source of truth for revenue. Use Shopify order data with refunds applied in the period you are analyzing, not gross sales alone.

Step 2: Import ad spend by day and campaign from each platform. Meta, Google, TikTok if you run it. Align time zones. A one-day offset can skew a weekly product read by 5 to 8%.

Step 3: Map campaigns to products. Ugly but necessary. If one campaign sells three SKUs, split spend by revenue share or units until you have a rule you repeat every week.

Step 4: Subtract COGS per SKU. Use landed cost, not retail minus a guess. A 35% margin assumption on a SKU that actually lands at 42% COGS will lie to you.

Step 5: Add refunds, shipping, and fees per SKU. Fashion and electronics often run 8 to 15% refund rates. Fees run 2.5 to 4% of order value on many stores. Skip these and you will overstate profit by double digits.

Step 6: Set a minimum contribution rule and enforce it. Example: no SKU stays in scale if net margin after ads is under 8% for two consecutive weeks. Pause, fix creative, fix offer, or cut the SKU.

Run weekly when spend is meaningful. Run daily above $1,000 per day in ads.

Where Shopsterra fits. Shopsterra is a profit dashboard for Shopify stores around $200k to $2M GMV per year. It shows net profit after ad spend, COGS, refunds, shipping, and fees, flat at $49 per month (Growth) or $129 per month (Pro). The average store is 30 to 40% less profitable than Shopify implies. One beta store found a $4,200 per month losing product they had been scaling.

It will not pick your creatives. It will show which SKUs and channels fund profit versus revenue only.

Connect your store on the free beta. Setup takes about five minutes. You get daily profit with ad impact included, broken down the way Shopify never did.

The ads are not the problem. Measuring them against the wrong number is. Fix the measurement, then scale what actually pays you.