Blog 6 min read

E-commerce profitability and tin-foil hats

A beginner-friendly guide to know if your Meta ads are profitable (and scalable), using a simple framework you can apply to any ecommerce account.

By Adomate
Bunspiracy rabbit logo wearing a tin-foil hat.

“I’m spending €5,000 a month on Meta ads… but am I actually making money?”

That question comes up way more often than people admit — even though it’s a base requirement for being able to run paid ads. In this post we’ll go deep with a concrete example.

Let’s say you’re the CEO of Bunspiracy.

Bunspiracy is (obviously) Europe’s most trusted brand selling tiny tin-foil hats for rabbits. Different models. Cute shapes. Maximum paranoia. Zero shame.

You turn on Meta ads and over a month:

  • 1,000 people land on your website
  • 50 orders come in
  • €2,500 in revenue

Nice, right? But the real question is: was Bunspiracy profitable? And can it scale?

To answer that, we ignore the vibes and focus on the numbers that matter.


First, the basics

From those 1,000 visitors:

  • 50 people bought → that’s a 5% conversion rate
  • Total revenue was €2,500

So on average:

Each order was worth €50 = AOV (average order value) = how much a customer spends per order, on average.

When people say “increase your AOV”, they mean:

Make each user spend more per checkout.

Bundles, add-ons, multi-packs, ... as long as it doesn't hurt conversion rate.

A funnel diagram showing sessions to orders to revenue to net profit.
The full chain: sessions → orders → revenue → profit.

The core idea

Profit per session = how much one visitor is worth to your business

Let’s calculate it.


Step 1: Revenue per session (first-order only)

Let’s start simple.

Revenue per session = AOV × conversion rate

Example for Bunspiracy:

  • AOV = €50
  • Conversion rate = 5%
  • ➡️ Revenue per session = €2.50

Meaning:

  • Every visitor is worth €2.5 in revenue
  • If Bunspiracy pays €1.8 per click → good
  • If Bunspiracy pays €3 per click → bad, rabbits cry

But revenue still isn’t profit. And this is where people fool themselves.


Step 2: Revenue ≠ profit (spot the difference early)

Revenue feels good. Profit keeps the lights on.

Let’s say Bunspiracy has:

  • 50% gross margin (after product, shipping, packaging)

Then:

Profit per session = revenue per session × margin

Profit per session = €2.50 × 50% → €1.25

Rule

If Bunspiracy pays more than €1.25 per click, it loses money.


Step 3: Bring in customer lifetime value

Here’s the thing about rabbit owners: if they buy one tin-foil hat… they might buy more. Different shapes. Seasonal paranoia. Limited editions.

Instead of only looking at one order, estimate customer lifetime value (LTV).

Rough LTV estimation

You only need two numbers:

  • AOV
  • Average number of orders per customer (best-effort estimate based on historical store data)

Example:

  • AOV = €50
  • Average customer orders 1.8 times
  • ➡️ Estimated LTV = €90
Customer lifetime value illustration showing repeat purchases and upsells over time.
LTV comes from what happens after the first order: repeat purchases, renewals, and upsells.

Step 4: Revenue per session (LTV-based)

Now redo the same calculation, but smarter.

Revenue per session (LTV-based) = LTV × conversion rate

Example:

  • LTV = €90
  • Conversion rate = 2%
  • ➡️ Revenue per session = €1.8

Suddenly:

  • Bunspiracy can afford higher CPCs
  • Retention improvements directly unlock scale

Step 5: From revenue to profit per session

Revenue doesn’t pay VAT. Profit does.

Profit per session = revenue per session × gross margin

Example:

  • Revenue per session = €1.8
  • Gross margin = 50%
  • ➡️ Profit per session = €0.9
The rule

As long as cost per click < €0.9, Bunspiracy is profitable.

Can I scale dial showing safe and danger zones based on profit per session and cost per click.
Scaling is simple: keep cost per click below profit per session.

What to do with this (actual steps)

No spreadsheet hell required.

Step-by-step:

  1. Go to Meta Ads Manager
  2. Look at the last 30–90 days
  3. Pull: Spend, Link clicks (or landing page views), Purchases, Revenue
  4. Calculate:
    • Conversion rate = purchases / visitors
    • AOV = revenue / purchases
  5. Estimate:
    • Average repeat purchases (Shopify / best-effort)
    • Gross margin
  6. Calculate:
    • Revenue per session
    • Profit per session
  7. Compare: Profit per session vs cost per click

If it doesn’t work, you have three options

If profit per session < CPC, you have exactly three real options:

  • Find better creative: new ads, new hooks, new formats. Maybe a video. Maybe a carousel. Maybe a dramatic close-up of a rabbit looking suspicious. Goal: improve conversion without increasing cost per click.
  • Fix the offer: make the first purchase too good to refuse. Bundles. Discounts. “Buy 2 hats, protect both ears.” A better offer increases revenue per session with the same traffic.
  • Shut it down: some products just aren’t meant to be sold online (yet). Thin margins. Low intent. Humans not ready to buy conspiracy hats for rabbits. Walking away is rational, not failure.

One uncomfortable truth about scaling

As Bunspiracy scales:

  • CPC goes up
  • Conversion rate goes down
  • Audiences get colder
  • Rabbits remain suspicious

That’s normal.

Your job is to keep revenue per session ahead of cost per click for as long as possible.


The mental model to keep

  • ❌ Don’t optimise AOV in isolation
  • ❌ Don’t chase conversion rate alone
  • ✅ Optimise revenue per session
  • ✅ Track profit per session
  • ✅ Use LTV, not just first-order revenue

Because:

  • ROAS doesn’t pay the bills
  • AOV doesn’t pay salaries
  • Profit keeps Bunspiracy alive

Once you see this clearly, e-commerce stops being guesswork. And even absurd businesses selling tin-foil hats for rabbits can scale profitably.