Scaling an ad account off ROAS alone is how a lot of ecommerce brands blow up a quarter that looked great on paper. Return on ad spend tells you revenue divided by spend. It says nothing about whether that revenue came from a new customer or someone who was buying from you anyway, nothing about margin after returns and shipping, and nothing about whether the campaign is still finding fresh people or just paying to re-show an ad to the same shrinking pool. A 4x ROAS campaign that's 80% repeat purchasers and running on fumes for new reach is not the same business as a 4x ROAS campaign bringing in new customers at a healthy margin. Both show the same top-line number. Only one is safe to pour more budget into.

This is a working list of ten metrics to check before you move a budget slider, with the formula, where to actually pull the number (Meta Ads Manager, Shopify, GA4, or your CRM), a labeled rule-of-thumb range where one exists, and the specific mistake each one catches. None of these numbers are classified or hard to get. Most people just don't build the custom column or pull the second report, so they never see the problem until the account's been scaled past the point where it's easy to walk back.

1. Hook rate

Hook rate measures how many people who saw your video ad actually stopped scrolling for it. The formula is 3-second video plays divided by impressions, expressed as a percentage. It's a thumbnail-and-first-frame test: if the opening of the video doesn't earn attention in a crowded feed, nothing downstream matters, no matter how good the offer or the landing page is.

To build it in Meta Ads Manager, open the Columns dropdown in your ads reporting table, choose Customize Columns, and create a custom metric that divides "3-second video plays" by "Impressions." Both of those are standard metric names in the column picker as of October 2026; if Meta has renamed either in your account, the custom-metric builder will show you the current list to pick from, so build the formula live rather than typing a metric name from memory.

There's no official benchmark Meta publishes for this. The rule of thumb circulating among media buyers and agencies puts anything above roughly 25-30% as a strong hook for cold, non-retargeting traffic, with plenty of profitable campaigns running lower depending on format and industry. Treat that as a loose reference point, not a target to chase for its own sake.

What it catches: creative fatigue and weak openers that are quietly dragging down everything below them in the funnel, including your cost per result, while the account-level dashboard just shows "performance dipped" with no clue why.

2. Hold rate

Hold rate is the next question: of the people who stopped for three seconds, how many actually watched the thing. The formula is ThruPlays divided by 3-second video plays. ThruPlay is Meta's metric for a video that played all the way through or reached a set number of seconds, whichever came first, a definition that's been widely reported as 15 seconds for several years. We tried to pull Meta's current ThruPlay help article directly to confirm that wording hasn't changed for October 2026 and couldn't retrieve the specific page (it kept routing to a generic, localized help center front page instead of the article), so treat the exact threshold as something to double-check against the tooltip inside Ads Manager rather than a number we're asserting fresh off Meta's own site today.

Build the custom column the same way as hook rate: Customize Columns, new formula, "ThruPlays" over "3-second video plays." A rough rule of thumb for hold rate sits around 10-15% as "healthy," again industry chatter rather than an official Meta figure, and it swings hard by video length and category.

A hook that pulls people in but a hold rate that collapses tells you the opening over-promised or the pacing lost people once the real pitch started. That's a different fix than a weak hook, and conflating the two wastes a creative-testing cycle.

3. First-time impression ratio

This one's murkier than the first two, worth saying plainly. The concept is simple: what share of this campaign's impressions are reaching someone for the first time, versus the fifth or the fifteenth. A campaign burning most of its impressions on repeat views to the same pool of people is not actually scaling reach, even if spend and impressions both go up.

Inside standard auction-buying Ads Manager, the nearest native equivalent is Frequency (Impressions divided by Reach, already a built-in metric, no custom column needed) combined with watching Reach's growth curve week over week against spend. The more exact first-time-viewer forecasting lives inside Meta's Reach and Frequency buying type, which shows predicted reach curves before you commit a budget. We could not confirm the current exact UI label Meta uses for a literal "first-time impression ratio" column by fetching their help documentation directly, so don't go hunting for a column with that exact name. Build the proxy instead: watch Frequency and Reach together, and if Frequency is climbing while Reach is flat, you're paying to re-show the same ad to the same people.

This catches the single most common cause of "ROAS is dropping but nothing changed": you didn't lose efficiency, you ran out of fresh audience at the budget you're spending, and the algorithm started serving more impressions to people it already reached.

4. True CAC versus CPA

CPA (cost per acquisition, or cost per purchase) as Meta reports it counts every purchase event, new customer or repeat. True customer acquisition cost only counts spend against *new* customers. The formula: spend divided by net-new customers in the period, where "net-new" comes from your store or CRM, not from Meta's own attribution.

In Meta Ads Manager, CPA (cost per result) is a default column for purchase-objective campaigns. True CAC has to come from pairing that spend figure with a new-customer count pulled from Shopify (or your CRM) for the matching window, then doing the division yourself, there's no way to get Meta to report it natively because Meta can't tell a first-time buyer from a loyal repeat customer inside its own attribution model.

There's no universal benchmark for CAC in isolation; it only means something next to LTV, which is metric five.

The mistake this prevents: scaling a campaign whose blended CPA looks fine because repeat customers (cheap to re-convert) are propping up the average, while the actual cost to land a new customer is unsustainable and climbing.

5. LTV (lifetime value)

A workable starting formula for LTV: average order value multiplied by purchases per year, multiplied by average number of years a customer stays active. It's a simplification (no discounting, no cohort decay curve), but it's a real improvement over no LTV number at all, which is the default state of most small and mid-size ad accounts.

Pull average order value and purchase frequency from Shopify's order and customer reports, or from GA4's ecommerce reporting if that's your primary ecommerce analytics setup. Average customer lifespan is the hardest input; a rough first pass is to look at the gap between a customer's first and most recent order across your existing base and average it, then revisit the number once you have more order history.

No universal benchmark here either; LTV is a company-specific number that only becomes useful once you compare it against CAC, which is the next metric.

What it prevents: judging a campaign purely on first-purchase economics when the real payoff shows up on the second and third order, a trap that leads either to shutting down a campaign too early or scaling one that never earns back its acquisition cost.

6. Contribution-margin LTV:CAC

Raw LTV divided by raw CAC flatters you, because it ignores everything it costs to actually deliver and keep that revenue. Contribution-margin LTV:CAC fixes that: take LTV, subtract cost of goods sold, subtract shipping cost, then subtract losses from returns and, in cash-on-delivery markets, RTO (return to origin, the industry term for a COD order that gets shipped, refused or undeliverable at the doorstep, and sent back to the warehouse, eating both legs of shipping and the restocking cost without collecting a rupee or a dollar of revenue). Divide that contribution-margin LTV by CAC.

A 3:1 ratio is the number that gets cited most often as a healthy target, an idea that's circulated in SaaS and ecommerce metrics writing for well over a decade. Treat it as a widely-repeated rule of thumb, not a rule, and definitely not one you'll find printed on an official Meta or Shopify benchmark page. Margin-thin categories and COD-heavy markets in particular shift the number, sometimes a lot.

This is the metric that prevents the most expensive mistake on the list: scaling a campaign that looks great on a pure revenue-over-spend basis but is actually losing money once COGS and shipping, plus RTO, are honestly subtracted. A COD business in particular can run a campaign that posts a strong ROAS on paper while RTO rates quietly eat the entire margin on every third or fourth "sale."

7. The five awareness stages and your creative and budget split

Eugene Schwartz's "Breakthrough Advertising" laid out five stages a prospect moves through before buying: unaware they have the problem, problem aware but not shopping for a fix, solution aware and comparing categories, product aware and comparing you against named competitors, and most aware, meaning they just need the final nudge and the offer. The framework is decades old and still holds up because it describes how people actually decide, not because it's a Meta feature.

There's no Ads Manager column for "awareness stage," this is a planning lens you apply to campaign structure, not a report you pull. In practice it means mapping creative and spend deliberately: broad top-of-funnel creative that names the problem for unaware and problem-aware audiences, comparison and education content for solution-aware and product-aware segments (often built as retargeting or lookalike audiences off site engagement), and direct, offer-led creative for most-aware audiences like cart abandoners and past purchasers.

The mistake it prevents: running one "best-performing" ad across every stage and every audience, and wondering why a hard-sell discount code does nothing for someone who's never heard of the problem your product solves, while a slow, educational video does nothing for someone who already has three tabs open comparing your price to a competitor's.

8. Landing page bounce and engagement, done with the right definition

This is worth a flag on its own: if you're still reading bounce rate the way Universal Analytics defined it, a single-page session with no second interaction, you're reading the wrong number in GA4. GA4 defines an engaged session as one that lasts longer than 10 seconds, includes a key event, or includes two or more page or screen views. Bounce rate in GA4 is simply the percentage of sessions that were *not* engaged, the inverse of engagement rate. That's a meaningfully different, usually lower, number than old-school single-page bounce rate, and a landing page that "looks like it's bouncing badly" under the old mental model may actually be performing fine.

Pull this from GA4's Engagement reports for the landing page or campaign in question, filtered to the UTM parameters on your Meta traffic so you're not mixing it with organic or other channels. If you're also running on Shopify, their behavior reports cover online store sessions and conversion rate by landing page as a second lens on the same question.

There's no universal "good" bounce rate; it depends heavily on page type and traffic temperature (device mix matters too), so treat any flat benchmark you see quoted online with suspicion.

What it prevents: blaming the ad for a soft conversion rate when the real leak is a landing page that loses people before the offer is even visible, or the opposite mistake of "fixing" a landing page that was never actually broken under the current, correct definition of engagement.

9. RFM segmentation

RFM scores customers on three axes: recency (how long since their last order), frequency (how often they buy), and monetary value (how much they've spent). Each axis typically gets scored 1 to 5, producing segments like "555" for champions (recent, frequent, high spend) and "111" for customers who are gone in every sense of the word. It's an old technique from direct-mail marketing, long before anyone called it a "framework," and it still works because the underlying logic hasn't changed: who's buying, how often, and for how much.

Shopify ships this natively as two separate reports, "RFM customer analysis" for the segment-level view and "RFM customer list" for a row-by-row list with days since last order, order count, and total spend per customer. If you're not on Shopify, most CRM and email platforms with customer-level order history can build the same three scores manually from exported order data.

The direct tie to ad scaling: pull your champions and loyal segments into a lookalike source for prospecting, and use your lost and at-risk segments to decide where retargeting spend is actually still worth it versus where it's just throwing impressions at people who've already decided not to come back.

10. New versus existing customer share

This is the number that should sit right next to ROAS on every scaling decision, not buried in a monthly report. The formula is simple: new customers in the period divided by total customers who ordered in the period, tracked over time so you can see the trend, not just a single snapshot.

Shopify's "New vs returning customers" report gives you this natively, no custom setup required. On the Meta side, Advantage+ shopping campaigns have a native, if partial, answer to the same question: once you connect your customer list for reporting, you can set an existing-customer budget cap that caps how much of the budget the campaign is allowed to spend reaching people already in your customer file, splitting delivery toward new customers instead. That's Meta's own built-in lever for this exact problem, not a third-party workaround.

Watch this number drift downward over a scaling push and you've found the real story behind a ROAS number that still looks fine: the campaign is increasingly just re-selling to people who were always going to buy again, not actually growing the customer file.

All ten metrics at a glance

Metric

Formula

Where to get it

What it tells you

Hook rate

3-second video plays ÷ Impressions

Meta Ads Manager custom column

Whether the opening earns attention

Hold rate

ThruPlays ÷ 3-second video plays

Meta Ads Manager custom column

Whether the video holds past the hook

First-time impression ratio

Proxy: Impressions ÷ Reach (Frequency), or Reach & Frequency buying forecast

Meta Ads Manager

Whether you're still reaching new people or re-showing the same pool

True CAC vs CPA

Spend ÷ net-new customers (vs Meta's blended CPA)

Meta spend + Shopify/CRM new-customer count

Whether the real cost to land a new customer is sustainable

LTV

AOV × purchases per year × active years

Shopify/GA4 ecommerce reports

Whether a customer is worth more than one purchase

Contribution-margin LTV:CAC

(LTV − COGS − shipping − returns/RTO) ÷ CAC

Shopify/CRM + finance data

Whether the business is actually profitable after real costs

Five awareness stages

N/A, planning framework

Manual, applied to creative/audience structure

Whether creative matches where the prospect actually is

Landing page engagement

GA4: % sessions not engaged (10s+, key event, or 2+ views)

GA4 Engagement reports, Shopify behavior reports

Whether the page or the ad is the real leak

RFM segmentation

Recency, frequency, monetary, scored 1-5 each

Shopify RFM reports or CRM export

Who's worth prospecting against and who's worth retargeting

New vs existing customer share

New customers ÷ total ordering customers

Shopify new vs returning report, Meta Advantage+ reporting

Whether scaling is growing the customer file or recycling it

The weekly scaling review

Before moving a budget up (or deciding not to), run through these in order, once a week, same day every week so the trend lines mean something: pull hook and hold rate for anything with fresh creative in the last two weeks; check Frequency against Reach for every campaign you're considering scaling; pull true CAC against your current LTV:CAC ratio, not just CPA against a target; check new-vs-existing customer share and see if it moved since last week; and if anything looks off, check the awareness-stage mix in whatever's running before touching the budget. This takes under half an hour once the custom columns and saved reports exist. The setup cost is one afternoon. After that it's a recurring half-hour, not a project.

Don't try to build all ten at once if you're starting from nothing. True CAC, new-vs-existing share, and contribution-margin LTV:CAC catch the most expensive mistakes first: unprofitable growth, recycled customers, costs nobody subtracted. Build those three first, then layer in hook rate and hold rate once creative testing is the bottleneck, then RFM and awareness-stage planning once the account is big enough that segmentation actually changes a decision.

If you're newer to Meta Ads Manager generally, our walkthrough on creating and automating Meta ads with Meta AI covers the current Advantage+ setup flow these metrics assume you already have running, and the guide to using Meta to grow a small business is the right starting point if you haven't built out Ads Manager and a connected customer list yet. If you want a short list of AI ad creative tools for building out the awareness-stage variants this piece talks about, our roundup of AI video ad generator tools covers what's actually available as of October 2026 versus what's marketing copy.

The same discipline applies to Google's automation. Before turning it on, read Google AI Max for Search: how to use it safely.

FAQ

Is ROAS a bad metric to use at all?

No, it's a fine headline number and a reasonable first filter for "is this campaign roughly working." The problem is only using it in isolation to decide whether to scale. Pair it with at minimum true CAC and new-vs-existing customer share before moving real budget.

How often should I actually check all ten of these?

Weekly for the ones that move fast (hook rate, hold rate, frequency, new-vs-existing share), monthly for the slower-moving ones (LTV, RFM segments, contribution margin), since those don't shift meaningfully week to week and checking them more often just adds noise.

Do I need a data analyst or BI tool to track this?

No. Every metric on this list comes from Meta Ads Manager's own column picker, Shopify's built-in reports, GA4's standard Engagement reports, or a CRM export you can open in a spreadsheet. None of it requires a dashboard tool or an analyst, just the custom columns and reports set up once.

What if I'm not on Shopify?

The formulas don't change. Any platform or CRM with order-level customer history (order date and customer ID, plus order value) can produce new-vs-returning splits and RFM scores; you're just building the report yourself in a spreadsheet instead of clicking a built-in Shopify report.

Does RTO apply outside cash-on-delivery markets?

Barely, since RTO as a cost line is specific to COD logistics where the customer hasn't paid before the product ships. In prepaid markets the equivalent leak is simply refunds and returns after a paid order, which belongs in the same contribution-margin calculation even though it isn't technically RTO.