All articles
Ad Intelligence5 min read

Meta ads metrics that matter

ROAS alone misleads: the Meta ads metrics that matter are six read together, weighted into one score per ad so a lucky day never wins the budget.

Two ads, same campaign, same week. Ad A sits at a 3.4 ROAS. Ad B sits at 1.9. You sort the column, scale A, cut B, and close the laptop feeling like a professional.

Here is what the ROAS column kept to itself. A's revenue leaned on a single €380 order from someone who would have bought off a flyer. B had the best hook rate in the account, the cheapest cost per purchase, and steady €40 baskets from first-time customers. Three weeks later A has drifted down to 1.6, and B is gone because you killed it.

I have made that exact call with real budget behind it. It is why I no longer believe any single Meta ads metric. The metrics that matter only matter together, as a blend, and the blend is the read.

The takeaways

  • ROAS is revenue divided by spend, and one €380 order can prop up a mediocre ad for a week without the metric ever telling you.
  • Six numbers read together (hook rate, CTR, cost per acquisition, ROAS, share rate, revenue per customer) cover each other's blind spots; no single one survives alone.
  • New ads get their score pulled toward their format's normal before you believe it, so one freak day never wins the budget.

Why does a ROAS-only read mislead?

Because ROAS is a ratio of two noisy numbers, and the revenue side is dominated by order-size luck. One large basket props up a mediocre ad for days. A handful of small ones drags a good ad below your threshold. The metric reports the ratio and hides the composition.

ROAS is also the slowest signal you have. Hook rate stabilizes within hours because every impression feeds it. Clicks settle within a day. Purchases trickle in, and Meta's own documentation puts the learning phase at roughly 50 conversion events per ad set per week. Most creative tests get judged long before that, which means a ROAS-only read judges every ad on its thinnest sample.

And when ROAS is bad, it cannot tell you why. Weak hook? Strong hook, weak click? Good click, leaky landing page? ROAS is a verdict, not a diagnosis. To find the part worth fixing, you need the numbers upstream of it.

Which Meta ads metrics matter, then?

Six, read together: hook rate, CTR, cost per acquisition, ROAS, share rate, and revenue per customer. Each one exists to catch what another one misses, which is the whole point of reading them as a set.

  • Hook rate (3-second video views divided by impressions): the earliest signal with the biggest sample. It moves within hours and tells you whether the creative stops the thumb at all.
  • CTR: whether attention turns into intent. A high hook rate with a weak CTR means the opening writes a check the rest of the ad cannot cash.
  • Cost per acquisition (cost per install on app campaigns): the efficiency line your budget lives or dies on.
  • ROAS: the economics, once enough purchases exist to mean something.
  • Share rate: people forward ads that hit a nerve. A quiet leading indicator of creative strength, with free distribution on top.
  • Revenue per customer (per install for apps): the trap-catcher. An ad with a bargain CPA that hauls in one-time discount hunters fails here, loudly.

I watch frequency too, but as a fatigue input: a CTR slope sliding over several days while frequency climbs means the creative is wearing out. I check that slide against the rest of the account first, so a bad market day does not get blamed on one ad.

How do you combine six metrics into one decision?

Normalize each metric, weight it by funnel stage, and sum the result into one score per ad. Prospecting campaigns weight hook rate and CTR heavier, because attention is the scarce thing up there. Bottom-funnel weights shift toward cost and revenue per customer. Set the weights once, in writing, before the test starts, so nobody (including you) can re-argue the ranking after the numbers land.

One warning from building this: any formula can be gamed by a new ad's freak day. The fix that took me longest to respect is shrinkage. A brand-new 9:16 video posting a wild score on 900 impressions gets pulled toward what 9:16 videos in that account normally do, and it earns its full number back as data arrives. Statisticians call this Bayesian shrinkage with format priors. Buyers can just call it "lucky days don't get the budget."

Whether your current leader won at all, or just landed heads five times in a row, is its own problem. I wrote about how to read an ad test without kidding yourself separately.

A Friday read order that holds up

  1. Hook rate first. Biggest sample, fastest verdict on the creative itself.
  2. Then CTR. Did attention become intent?
  3. Then cost per acquisition against your target, on ads with enough events to be judged.
  4. ROAS as confirmation. If it disagrees with everything upstream, suspect order sizes before you suspect the ad.
  5. Revenue per customer on anything you are about to scale. Scaling an ad that attracts bad customers just buys bad customers faster.

Ten minutes, five numbers, and you will disagree with the ROAS column about once a week. Those disagreements are where the money is.

Where Adscalr fits, honestly

This blend is the scoring engine inside Adscalr. Every creative gets a composite score from six metrics, with weights you can set per project and funnel stage. Fresh results get pulled toward the format's normal so a lucky day never tops the ranking, and the system recommends the next test worth running. None of it is magic. It is the read above, done consistently, for every ad, every day.

If you would rather have the blend computed than maintain the spreadsheet, that is what the ad-intelligence side of the product does.

This is the thinking behind Adscalr.

See the product