Gross profit on Facebook ads is the money left from the orders your ads drove after you subtract the direct cost of those goods — product cost, supplier shipping, and payment processing fees. Ad spend itself is not part of gross profit; it sits below it as an operating expense. But your gross profit per order is the exact ceiling on what you can pay Facebook to win that order and still break even. Nail that one number and every campaign decision gets simpler.

Most guides on this topic quietly skip the part you actually care about: does the campaign make money? They stop at revenue, or at return on ad spend (ROAS), and leave you to guess. This piece walks the real arithmetic — product cost, fees, ad spend, per-order profit — so you can look at a campaign and know.

Gross profit vs. Facebook ad spend — where each one lives

Gross profit is a product-economics number. It measures what's left after the direct cost of the goods you sold, and nothing else.

The formula is simple:

Gross profit = Net sales − Cost of Goods Sold (COGS)

For a Shopify or print-on-demand (POD) store, COGS is the supplier's production charge, the supplier's shipping to the customer, and — by common convention — your payment processing fees. Divide gross profit by net sales and you get gross margin %, the cleanest read on whether your product itself is priced to win.

Here's the part people get wrong: Facebook ad spend does not belong in COGS. It's paid acquisition, so it lives in operating expenses, below the gross-profit line. Burying ad spend inside COGS inflates your gross margin and hides the fact that customer acquisition cost — not product cost — is usually the real risk. We cover that placement rule in depth in the ecommerce P&L guide.

So why does "gross profit Facebook ads" even go together? Because your gross profit per order is the budget you have to spend acquiring that order. It's the bridge between product economics and ad decisions.

Work a single order end to end

Say you sell a t-shirt for $32. Here's the direct cost stack for one order:

  • Product cost (POD blank + printing): $14
  • Supplier shipping to the customer: folded into that production charge
  • Payment processing: online card rates are commonly quoted around 2.9% plus 30¢ per transaction (A2X's breakdown of Shopify fees is a good reference), which on a $32 order is 0.029 × $32 + $0.30 = $1.23

Now the gross profit on that one order:

$32 − $14 − $1.23 = $16.77

Gross margin on the product is $16.77 ÷ $32 = 52.4%. Healthy. That $16.77 is what you have available to spend on ads and fixed costs — and still keep something.

This is your contribution before ad spend, and it's the foundation of the whole calculation. We dig into that layer specifically in the guide to contribution margin on Facebook ads.

The two numbers that decide every campaign

Once you know gross profit per order, two thresholds fall right out of it.

Maximum cost per acquisition (CPA)

Your gross profit per order is the most you can pay to acquire that order and still break even. In the example, that's $16.77. If Facebook is bringing you customers at a cost per purchase below $16.77, the campaign adds profit. Above it, the campaign loses money on every sale — no matter how good the revenue looks.

Break-even ROAS

ROAS is revenue divided by ad spend. Your break-even ROAS is just selling price divided by gross profit per order:

$32 ÷ $16.77 = 1.91x

So in this example a campaign has to return more than 1.91x to make money, and anything under it loses money. That threshold comes entirely from your own costs — it is not an industry figure, it's arithmetic on your numbers. Change the shirt cost or the price and the threshold moves with it.

Here's the useful contrast: the median ecommerce Meta Ads ROAS was about 1.86x across roughly 35,000 brands tracked through the full prior year, according to Mako Metrics' benchmark drawn from Triple Whale data. A store with this cost structure sitting at the median would be running almost exactly at break-even. That's the whole reason to compute your own threshold instead of chasing a benchmark — the "average" store is barely covering its costs.

Roll it up to a month

One order is clean; a month is where it gets real. Say you did 300 orders at the same $32 average.

Line Amount
Gross sales (300 × $32) $9,600
Less: a 10%-off code and refunds −$770
Net sales $8,830
COGS — production (300 × $14) −$4,200
COGS — processing (300 × $1.23) −$369
Gross profit $4,261
Gross margin % 48.3%
Facebook ad spend −$3,000
Contribution after ads $1,261

The arithmetic above is a worked example on illustrative numbers, so nothing here needs a citation — plug in your own figures and the shape holds.

Read it the way a founder should: the product is fine at roughly 48% gross margin, but Facebook ad spend eats about 70% of your gross profit. You cleared about $1,261 before any fixed costs like your Shopify plan, apps, and owner pay. If your blended cost per purchase creeps up 20%, that $1,261 nearly halves. This is exactly why ad spend has to sit visibly below gross profit — so the P&L screams "the risk is acquisition cost," and you can see it coming.

One more caution the numbers hide: a refund reduces your revenue, but the original processing fee is generally not returned to you when you refund an order. So a refunded $32 sale still costs you that ~$1.23 — worth tracking if returns run high.

Gross profit isn't the last word — net profit and cash are

Gross profit tells you about the product. It does not tell you whether the whole business works, and it definitely doesn't tell you whether you have cash.

Subtract every operating expense — ad spend, Shopify plan, apps, tools, contractor and owner pay — and you get net profit, the actual bottom line. That's a different calculation, and it's where a lot of "profitable-looking" stores discover they aren't. Walk it in the guides to net profit margin on Facebook ads and net profit margin on Shopify.

Cash is a separate problem again. Facebook charges your card daily, but Shopify payouts land on a delay — so a profitable store can still be cash-short mid-week while it pre-funds ad spend. Once your books reconcile cleanly, that's also the foundation for getting tax and bookkeeping right, which we cover in ecommerce bookkeeping in Arizona.

Doing this per order, automatically

The hard part isn't the formula — it's getting a clean, per-order profit figure that already has supplier cost, shipping, fees, discounts, and the right slice of ad spend attached, across hundreds of orders.

That's the gap PodVector fills. It connects your Shopify, Meta Ads, Google Ads, Printify, and Printful accounts and computes the true per-order profit — the $16.77-style number above — on your live data, not a blended guess. Victor, its AI employee, reads that ad and order data, tells you which campaigns clear your break-even and which are quietly underwater, and proposes moves; any changes he executes are on the Shopify side and only with your approval. Victor is not a dashboard, and he does not touch your ad account — he reads the ad data and hands you the decision.

Connect your store to PodVector and see true per-order profit on every Facebook-driven sale.

FAQs

Does gross profit include Facebook ad spend?

No. Gross profit is net sales minus the direct cost of goods sold — product, supplier shipping, and usually payment processing. Facebook ad spend is paid acquisition, so it sits in operating expenses, below the gross-profit line. Putting ad spend in COGS inflates your gross margin and hides your real risk, which is acquisition cost.

What's the difference between gross profit and profit on ad spend (POAS)?

Gross profit measures your product economics across all orders. POAS zeroes in on the ads specifically: it's your gross profit from ad-driven sales divided by ad spend, where 1.0 means the ads exactly paid for themselves. Gross profit tells you if the product is priced right; POAS tells you if a given campaign is pulling its weight.

How do I find my break-even ROAS?

Divide your selling price by your gross profit per order. In the worked example, $32 ÷ $16.77 = 1.91x, so any campaign returning more than 1.91x makes money on that product. It's built entirely from your own costs, so it will differ from any published benchmark — that's the point of calculating it yourself.

Should payment processing fees go in COGS or operating expenses?

Either can be defensible, but pick one and stay consistent. Many ecommerce stores fold processing fees into COGS because they scale per transaction, which is what we did above. What matters most is that you don't switch month to month, or your gross-margin trend becomes meaningless.

Why does my store look profitable but feel broke?

Because gross profit is booked on the sale date, while cash moves on the payout schedule. Facebook bills you daily, Shopify pays out on a delay, and POD suppliers charge you at production — so a profitable store can be cash-negative at any given moment while it pre-funds growth. Profit and cash are two different questions; answer both.

This is general information, not tax or accounting advice. Rules and figures change and vary by situation — consult a licensed CPA or tax professional before acting.