Case study

Grupa Mocy

Agnieszka Kaczor's subscription fitness app for women, with most sales coming from organic reach. They came with an ad account where sales campaigns had been switched off and acquisition ran through comments and direct messages, which made it unmeasurable by definition.

The core

99 purchases according to Meta 22 confirmed by payment

The comparison window with ads. Meta credits a purchase to anyone who clicked an ad within seven days before buying, including people who would have bought anyway. Hard attribution requires a trace on the payment side. Both numbers are true, they simply answer different questions.

I do not count sales toward my own fee if they would have come without ads.

Situation
  • 56 campaigns, 274 ad sets and 244 creatives on the account
  • one creative was bidding against itself across 26 ad sets at once
  • pixel audiences empty, 4 of 5 lookalike audiences broken
  • in the last full month before I took the account over, spend rose by 39 per cent while purchases fell by 29 per cent
Action
  • server-side measurement distinguishing a first purchase from a renewal
  • rebuilding the account from scratch instead of tidying the old one
  • a dashboard connecting the ad account to the payment system
  • automated recovery of failed payments
Result
  • cost per acquisition PLN 64 before I took the account over, PLN 32 after the rebuild (as measured by Meta)
  • the same promotional window: PLN 62 and 49 before I took the account over, PLN 24.75 after the rebuild
  • promotion with ads: 231 new customers against 187 in the previous one without ads (subscriptions 124 against 110, one-off purchases 107 against 77)
  • PLN 33,039 against PLN 26,648 in revenue from new customers, on PLN 3,455 spent on ads over 9 days

Scale after the rebuild

Eleven days on the rebuilt account: 437 new customers and PLN 61,193 in revenue from new customers, on PLN 6,691 of ad spend. The numbers come from the payment system and cover first purchases only.

The cost per new customer was PLN 15.31. This is a blended cost, calculated across all new customers, including those coming from organic reach, not a cost per customer acquired through ads.

Dashboard reconciling ad spend with revenue in the payment system
Dashboard view, real numbers.

How I calculated this

The comparison covers two promotional windows on the same account: the window without ads, where the ad account was fully switched off and spend was PLN 0, and the window with ads. These are two separate windows with a gap between them, not two consecutive weeks of one run. The numbers on both sides come from the payment system, not from Ads Manager, and cover only customers buying for the first time.

This is not a controlled experiment. Copy, price and calendar all changed between the two windows, so I do not attribute the difference of 44 customers to the ads alone. The increase in revenue exceeded the ad spend, and that is as much as can honestly be said.

The PLN 64 and PLN 32 acquisition costs are Ads Manager figures, counted the same way on both sides. I quote them with that caveat, because Meta overstates, and a fair comparison needs the same method on both sides rather than the best method on one.

How it went

  1. 01

    Diagnosis and shutdown

    Reading the state of the account and stopping the spend. Rather than optimising an account where creatives were bidding against each other, I stopped it entirely and started with measurement.

  2. 02

    Measurement and dashboard

    Server-side measurement, a first purchase separated from a renewal, and a dashboard connecting ad cost to revenue in the payment system. Only then did campaigns start.

  3. 03

    Rebuilding the account

    A new campaign structure built from scratch, with assets filmed by the founder based on my briefs. The first promotional window already ran on the new measurement.

Sound familiar?

We start with Calibration: five working days and a specific answer to how much of your reported revenue is visible in your payment system.