Case study
Grupa Mocy
A 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.
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 narrowed the definition of my own performance bonus to ad-driven traffic, even though the contract allowed a wider one. I did not want to count revenue that would have arrived without the ads.
- 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
- 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
- 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
- the promotion run with ads: 230 new customers against 187 in the previous one run without ads
- PLN 32,860 against PLN 26,648 in revenue from new customers, on PLN 3,455 of ad spend
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 zero, 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 one window and the other, so I do not attribute the difference of 43 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
- 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.
- 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.
- 03
Rebuilding the account
A new campaign structure built from scratch, with creative filmed by the founder to 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.