shopify cogs profit tracking facebook ads meta ads

Shopify COGS + Facebook Ads: Calculate True Profit per Campaign

9 min read

Most Shopify merchants running Meta ads use ROAS as their north star metric. A 2.5x ROAS looks profitable. A 3x ROAS looks fantastic.

Except ROAS doesn’t tell you whether you’re actually making money.

Here’s why: ROAS is revenue divided by ad spend. It doesn’t account for the cost of the product itself. You can have a 5x ROAS and still be losing money if your product costs more to make than you’re selling it for.

This is the COGS blind spot. And it’s costing Shopify merchants thousands of euros every month.

Let’s fix it by calculating real profit using COGS data.

Why ROAS Alone Fails

ROAS shows what your customer paid. Not what you kept.

Here’s a painful example:

Campaign A:

  • Ad spend: €500
  • Revenue (Meta’s reported): €2,500
  • ROAS: 5.0x (looks amazing)

Campaign B:

  • Ad spend: €500
  • Revenue (Meta’s reported): €1,500
  • ROAS: 3.0x (looks decent)

Which campaign should you scale?

If you only look at ROAS, Campaign A is the obvious winner — 5x beats 3x.

But now add COGS:

Campaign A Details:

  • Revenue: €2,500
  • COGS (at 55% margin): €1,375
  • Gross profit: €1,125
  • Ad spend: €500
  • Real profit: €625 (25% margin)

Campaign B Details:

  • Revenue: €1,500
  • COGS (at 28% margin): €420
  • Gross profit: €1,080
  • Ad spend: €500
  • Real profit: €580 (39% margin)

Campaign B is actually more profitable — even though it has half the ROAS.

Campaign A is a high-volume, low-margin winner. Campaign B is a high-margin, lower-volume winner. If you have limited budget, Campaign B wins. If you can afford to scale both, Campaign A might win on absolute profit dollars.

But you’d never know this by looking at ROAS alone.

This is why every Shopify merchant running Meta ads needs to track COGS.

Where to Find COGS in Shopify

COGS in Shopify lives in the product cost field. Here’s how to set it up:

Method 1: Per-Product Entry (Best for Accuracy)

  1. Go to Products in your Shopify admin
  2. Click the product
  3. Scroll to Pricing section
  4. Find Cost per item field
  5. Enter your cost (e.g., €12 for a product you sell for €45)
  6. Click Save

Do this for every product. Yes, it takes time. But it’s your source of truth.

Method 2: Bulk CSV Import (Best for Speed)

If you have 100+ products, manual entry is slow. Use bulk import:

  1. Go to ProductsImport
  2. Download the CSV template
  3. In the template, find the “Variant Cost” column
  4. Fill in costs for each variant (one row per variant)
  5. Upload the CSV

Shopify will match products by barcode or SKU and update costs in bulk.

Method 3: Third-Party Syncing (Best for Real-Time Updates)

If your COGS changes frequently (you get volume discounts from suppliers, for example), use a tool like Inventory Planner or ShipBob that can sync costs directly from your supplier accounts to Shopify.

For most Shopify stores, Method 1 (manual entry) is sufficient. Update costs quarterly or when you change suppliers.

The Campaign Profit Formula

Once you have COGS in Shopify, the formula is simple:

Profit = Revenue − COGS − Platform fees − Ad spend

Breaking it down:

  1. Revenue — Actual orders from the campaign (not Meta’s attributed revenue; use Shopify data)
  2. COGS — Cost of goods sold (from Shopify product cost field)
  3. Platform fees — Shopify fees (2.9% + $0.30 per order) + payment processor (typically 2.2% for Stripe)
  4. Ad spend — What you spent in Meta Ads Manager

Worked Example with Real Numbers:

Campaign: “Spring Shorts — Cold Audience”

The Spend:

  • Ad spend: €800
  • Campaign duration: 7 days

The Results (from Shopify):

  • Total orders: 32
  • Total revenue: €3,200 (avg order value €100)
  • COGS per unit: €28 (on average; some shorts €24, some €32)
  • Total COGS: €896

Calculating Fees:

  • Shopify fees: €3,200 × 2.9% + (32 × €0.30) = €92.80 + €9.60 = €102.40
  • Payment processing (Stripe): €3,200 × 2.2% = €70.40
  • Total platform fees: €172.80

The Profit Calculation:

  • Revenue: €3,200
  • COGS: €896
  • Platform fees: €172.80
  • Ad spend: €800
  • Gross profit: €3,200 − €896 − €172.80 − €800 = €1,331.20

Profit margin: €1,331.20 / €3,200 = 41.6% (this is your true return on ad spend, accounting for everything)

Compare this to ROAS:

  • Meta-reported ROAS: €3,200 / €800 = 4.0x (looks great, but misleading)
  • Actual profit ROAS: €1,331.20 / €800 = 1.66x (more realistic)

Meta’s 4.0x ROAS sounds way better than 1.66x profit ROAS. But 1.66x means you’re making €0.66 profit for every €1 spent on ads — which is actually solid for cold traffic.

The key insight: accounting for COGS dropped your perceived ROAS from 4.0x to 1.66x. This is normal. This is why COGS matters.

Three Campaigns, Different Margins

Let’s say you’re running three concurrent campaigns. Same ad spend (€200 each). Different products, different margins.

CampaignProductPriceCOGS%COGS/unitOrdersRevenueProfit (after COGS, fees, ads)Margin
AHigh-margin shirt€4525%€11.255€225€156.7%
BMid-margin jacket€12040%€482€240€197.9%
CLow-margin hat€1855%€9.9015€270−€8-3.0%

The surprise: Campaign C has the highest revenue (€270) but is actually losing money (−€8 profit). Campaign A has the lowest revenue but is profitable.

If you only tracked revenue or ROAS, you’d think Campaign C is winning. You might even scale it. But you’d be scaling a losing campaign.

With COGS tracking, you’d immediately see that C is underwater and needs fixing (either raise prices, lower COGS, or pause it).

How Calatrix Automates COGS Profit Tracking

Pulling COGS from Shopify, calculating platform fees, and tying it all back to Meta campaigns is tedious to do manually.

This is where automation helps. Calatrix does it for you:

  1. Connects to Shopify — Pulls order data, including COGS from your product cost field
  2. Connects to Meta — Reads campaign spend in real-time
  3. Calculates profit — Revenue − COGS − fees − ad spend, automatically, every 15 minutes
  4. Sets kill rules on profit — You can now say: “Pause if profit margin < 15%” instead of guessing at ROAS thresholds

You set profit thresholds in your kill rules, and the system pauses campaigns that fall below your break-even point.

This is the only way to scale confidently: automate the math, trust the data, and let rules do the heavy lifting.

Setting Your COGS Break-Even Threshold

Before you automate, you need to know your own break-even ROAS.

Here’s the math:

Step 1: Know your average COGS%

Add up the COGS for all products you’re advertising, weight by sales volume. If you sell mostly €50 items at 35% COGS, use 35%. If your mix varies, use 40% as a conservative estimate.

Step 2: Calculate your profit floor

Assume:

  • COGS: 40% of revenue
  • Platform fees: 3.8% of revenue
  • Acceptable ad spend: X% of revenue (you decide)

If you want to maintain 20% profit margin after all costs:

  • Revenue: 100%
  • COGS: 40%
  • Fees: 3.8%
  • Ad spend budget: 100% − 40% − 3.8% − 20% = 36.2%

This means you can spend up to 36.2% of revenue on ads and still hit 20% profit. Your break-even ROAS is:

  • ROAS = 1 / (ad spend % / revenue %) = 1 / 0.362 = 2.76x

So if your ROAS drops below 2.76x, pause.

Step 3: Add a spend qualifier

Don’t evaluate until a campaign has spent at least €50–100 (depends on your AOV). This ensures you have enough data.

Once you understand your COGS and profit floor, you can set intelligent kill rules that protect your margins.

Instead of: “Pause if ROAS < 1.5x” (generic, often wrong)

You set: “Pause if profit margin < 18% after €75 spend” (specific, based on your math)

This is the final step: from theory to automation.

FAQ Recap

Need a quick calculation for your store? Use this:

  • Your AOV: €X
  • Your COGS%: Y%
  • Your target profit margin: Z%
  • Your platform fee%: ~3.8%

Break-even ROAS = (100% − COGS% − fees% − Z%) / (ad spend % you’re willing to use)

Or try our ROAS calculator for a visual breakdown.

Ready to Track Real Profit?

Stop relying on ROAS. Start tracking COGS. Set up profit-based kill rules in Calatrix and let the system pause campaigns that fall below your margin floor.

Your Shopify store has all the data you need. Let’s use it.

Start your free trial — within 5 minutes, you’ll have campaign profit calculated automatically.

Ready to stop losing money on Meta ads?

Set up automated kill rules and let Calatrix protect your ad spend 24/7. Pair this with Shopify's real order data and COGS tracking to optimize for actual profit, not vanity metrics.

Start 14-day free trial