Facebook ads are a variable cost: your spend rises and falls with how many customers you try to acquire, unlike a fixed monthly bill. On a Shopify P&L it belongs in operating expenses, not cost of goods sold — and because it usually eats the largest slice of gross profit, it's the number that decides whether each order actually makes money. Below-the-fold benchmarks put a typical ecommerce cost per click around a dollar and cost per purchase in the tens of dollars, but the figure that matters is your ad cost per order measured against your real per-order profit.

What makes Facebook ads a "variable" cost

A cost is fixed if it stays the same no matter how much you sell — your Shopify plan, your domain, your design tool. A cost is variable if it moves with volume. Facebook ad spend is the textbook variable cost: the more orders you chase, the more you spend, and the moment you pause the campaigns, the cost drops to zero.

Two things make it move. First, how much you choose to spend — your daily budget is a dial you control. Second, how much the auction charges you per result, which you don't fully control. Meta runs a real-time auction, so your true cost per click and cost per purchase shift with competition, audience, creative quality, and season.

That second lever is why most "Facebook ads cost" articles frame the word "variable" loosely — as in "prices vary." That's true, but it buries the point that matters for your books: ad spend is the variable cost that scales with revenue, so it has to be modeled per order, not treated as a flat overhead line. If you want the full picture of how every cost stacks up, start with our ecommerce P&L guide.

Facebook ad cost benchmarks to anchor your model

Use published benchmarks as a sanity check, not a target — your account will differ. Across all industries, WordStream's 2025 data puts the average cost per click at about $0.70 for traffic campaigns and $1.92 for leads campaigns, with an average cost per lead of $27.66 (WordStream).

For ecommerce specifically, one DTC benchmark set lists a typical cost per click of $0.50–$1.50, cost per thousand impressions (CPM) of $7–$13, and cost per acquisition of $20–$60 in competitive consumer categories (Admetrics).

Metric Typical ecommerce range Source
Cost per click (CPC) $0.50–$1.50 Admetrics
Cost per 1,000 impressions (CPM) $7–$13 Admetrics
Cost per acquisition (CPA) $20–$60 Admetrics
Cost per lead (all industries) $27.66 avg WordStream

These are jumping-off points. What you do next — turn the CPA into a per-order profit calculation — is where most guides stop and where the real work begins.

Where Facebook ad spend belongs in your P&L

Here's the mistake that quietly wrecks small-store books: dropping ad spend into cost of goods sold because "it scales with sales." Don't. Ad spend is paid acquisition and belongs in operating expenses, below the gross-profit line.

The reason is diagnostic. Cost of goods sold (COGS) is the direct cost of the units you sold — for a print-on-demand shop, the supplier's production charge, shipping, and often payment processing. Keeping COGS clean gives you a true gross margin, the health of the product itself. Burying blended acquisition cost inside COGS inflates that margin and hides the fact that customer acquisition cost — not the product — is usually your biggest risk (A2X).

So the order of operations on your P&L is: net sales, minus COGS, equals gross profit; then subtract operating expenses (with Facebook ads as a line item) to reach operating profit. If your books don't separate these cleanly yet, our small-business bookkeeping guide walks through the setup.

Worked example: your true variable cost per order

Say you sell a print-on-demand t-shirt for $32. Walk the variable costs of a single order all the way down.

Start with the product. Your supplier charges about $12 to produce and ship the blank plus print. Payment processing on Shopify Payments commonly runs around 2.9% plus 30¢ per online transaction — verify your plan's rate, but for a $32 order that's roughly $0.93 + $0.30 = $1.23 (Shopify fee breakdown via A2X).

So before advertising, your variable cost is $12.00 + $1.23 = $13.23, leaving $32.00 − $13.23 = $18.77 of contribution margin per order.

Now layer in the Facebook ad cost. If your blended cost per purchase is $15, your per-order profit is $18.77 − $15.00 = $3.77. Thin, but positive. If the auction heats up and your cost per purchase climbs to $20, the same order flips to $18.77 − $20.00 = −$1.23. You'd be paying customers to buy from you, and a profitable-looking monthly P&L can hide it.

That's the whole game with variable ad costs: a few dollars of movement in cost per purchase is the difference between a healthy order and a losing one. You can't see it unless you track ad cost per order against real per-order profit.

The blended-average trap

Averages lie by hiding the spread. Suppose your store sells both t-shirts (high margin) and mugs (low margin), and your reporting shows one blended cost per acquisition — say $12 across everything. On paper that looks fine.

But run the two products separately. If shirts carry $18 of contribution margin, a $12 acquisition cost leaves $18 − $12 = $6 of profit — quietly good. If mugs carry only $9 of contribution margin, that same $12 acquisition cost means $9 − $12 = −$3 on every mug sold — quietly bad. The blended average nets these out and shows a comfortable number while one product silently bleeds.

The fix is to measure ad cost and profit at the product or campaign level, not just the account level. That's exactly the kind of per-order math that's tedious by hand across Shopify plus Meta plus your supplier, and easy to skip — which is why so many stores scale a losing product without knowing it.

Facebook ads, cash flow, and the float problem

Variable ad costs don't just hit your profit — they hit your bank balance on a different schedule than your revenue, and that gap can sink a profitable store.

Ad spend leaves daily; Meta charges your card as you spend. Shopify payouts arrive on a delay, often a couple of business days after the order, and they don't settle on weekends. Your print-on-demand supplier bills you at production, frequently before the matching payout lands. The result is a negative float: money goes out faster than it comes back, and the faster you scale ad spend, the wider the gap.

This is why a store can be profitable on paper and still run short on cash — a trap covered in depth in our piece on the advantages and disadvantages of cash flow forecasting. If a temporary funding gap is throttling otherwise-profitable ad spend, it's worth understanding how Shopify Capital works before you stall your growth. Just remember financing is float management, not free money.

How to keep your variable ad cost profitable

Work backward from profit, not forward from clicks. Start with your contribution margin per order — price minus product cost, shipping, and processing — and that number is the ceiling on what you can pay to acquire a customer and still break even. Set your target cost per purchase below it with room to spare.

Then watch the metric relationships, not just the dollar figures. Rising CPM with flat conversion means you're paying more for the same result. Falling profit per order at steady sales usually means ad costs crept up while you weren't looking. And always split the blended average — the account-level number is where losing products hide.

The hard part isn't the concept; it's stitching Shopify revenue, Meta spend, and supplier costs together per order, every day, without a spreadsheet that breaks. Keeping your accounting clean enough to even attempt this is a real project — our Shopify accounting guide covers the foundations.

Where PodVector fits

PodVector connects your Shopify store, Meta Ads, Google Ads, Printify, and Printful, then computes your true per-order profit — product cost, shipping, processing, and ad spend, all subtracted from the actual sale. That's the calculation this whole article is built around, done automatically instead of by hand.

Victor, PodVector's AI operator, reads that live data and points out where your variable ad costs are quietly turning orders unprofitable — the mug losing money under a blended average, the campaign whose cost per purchase crept past your margin. Victor reads your ad data and proposes moves; he does not touch your ad account, and any action he takes is Shopify-side and only with your approval. Start with PodVector and see your real per-order profit.

FAQs

Are Facebook ads a fixed cost or a variable cost?

Variable. Fixed costs stay the same regardless of sales — your Shopify subscription, your domain. Facebook ad spend rises and falls with how aggressively you're acquiring customers and with what the auction charges you, and it drops to zero when you pause campaigns. That's the defining trait of a variable cost.

Should Facebook ad spend go in COGS or operating expenses?

Operating expenses. Even though ad spend scales with revenue like a cost of goods would, it's paid acquisition, not the direct cost of producing a unit. Keeping it out of cost of goods sold preserves an honest gross margin and makes clear that customer acquisition cost is your real risk (A2X).

What is a good cost per acquisition on Facebook for ecommerce?

There's no universal "good" number — only good relative to your margin. Published DTC benchmarks put cost per acquisition around $20–$60 in competitive categories (Admetrics), but if your contribution margin per order is $18, a $30 acquisition cost is a loss. Always compare CPA against your per-order profit, not against an industry average.

How do I calculate my variable ad cost per order?

Take your total Facebook ad spend for a period and divide by the number of orders it drove — that's your ad cost per order. Then subtract it, along with product cost, shipping, and payment processing, from the sale price to get your true per-order profit. Doing this at the product level, not just the account level, is what catches losing products.

Why is my store profitable but low on cash if ad costs are covered?

Because profit and cash move on different schedules. Ad spend and supplier charges leave your account before Shopify payouts settle, creating a negative float that widens as you scale. You can be profitable per order and still short of cash mid-week — see our cash flow forecasting guide for how to size a buffer.