It was not fatigue. It was CVR.
CPA went up. Everyone's first move is to blame creative fatigue and duplicate the ad. Half the time that is the wrong fix. Signals decomposes the change into its legs and names the one that actually broke, so you stop treating the wrong problem.
The creative brain behind It was CVR.
This is one node of the same brain. See how it all connects, from decoding your ads to the scored brief, in one short film.
Watch the filmCPA went up on all three. The fix was different every time.
This is the whole point. A rising CPA feels identical from the dashboard, so most teams reach for the same move, duplicate the ad. Heads Up decomposes each one and the real cause is different every time, which means the right fix is too.
Illustrative diagnoses on demo brands. On your account, every leg is your own live data.
CPA +41%Nomad · Travel app
Not fatigue. The landing page stopped converting, and duplicating the ad would have burned the week.
Verdict: landing-page problem, not creative. Fix the page, keep the ad.
CPA +28%Verve · Skincare
This time it really was the creative. CTR fell while everything else held, so the ad is the leg to rotate.
Verdict: creative fatigue, confirmed. It points you straight to the ads that slipped.
CPA +19%Ridge · DTC hardware
Nothing you made was wrong. Delivery just got more expensive, the auction did this, not your ad.
Verdict: auction and audience cost, not creative. New ads would not have moved it.
It's arithmetic, not an AI hunch.
Every CPA move is one equation. WhyItWon solves it before it says a word, so the diagnosis holds up even when it is inconvenient.
The CPA identity
CPA is CPM divided by CTR, times CVR. When CPA moves, the change is decomposed into those three legs in code, so the leg that actually broke is a fact, not an opinion a model typed out.
Creative, page, auction or audience
The broken leg names the culprit: CTR points at the creative, CVR at the landing page or the offer, CPM at the auction or the audience. It checks what you control before it blames what you don't.
On the pulse, before month-end
It surfaces the move on your account pulse on its own, so you catch a broken leg on Tuesday instead of finding it in the monthly report, and it links straight to the ads that slipped.
So you fix the thing that actually broke, instead of duplicating the ad and hoping.
Most reporting
tells you CPA went up and colours the cell red. The diagnosis is still on you.
WhyItWon
breaks the move into CPM, CTR and CVR, flags the leg that actually broke, and says in plain words whether it is a creative problem, an auction problem, or a landing-page problem.
What it actually does
Deterministic math, not an AI guess
The funnel decomposition is computed, not written by a model. The words are plain English on top of real arithmetic, so the diagnosis is right even when it is inconvenient.
Rising and falling, proactively
Signals surfaces what moved and why on its own, on the account pulse, so you catch a broken leg on Tuesday instead of at the end of the month.
Ties back to the creative
When the broken leg is CTR, it points you straight to the genome and X-Ray on the ads that slipped, so the fix is a next step, not a mystery.
They tell you CPA moved. They don't tell you which leg broke.
Every analytics tool can colour the CPA cell red. Almost none decompose the move into its arithmetic legs and name the real cause, so the diagnosis, the expensive part, still lands back on you.
Assessed from each tool's public product and positioning. We keep this honest, they are good at what they do; this is the one job we do differently.
In the product
The account pulse on Home, and the Signals read on the account.
The whole category shows you the metric moved. WhyItWon tells you which leg broke and what to do, before you duplicate the wrong ad.
See it on your own account.
Book a 30-minute teardown. I will run your ads through this and give you five to eight specific reasons they are winning or losing right now. The findings are yours either way.