Hook rate is the share of people who saw your video ad and watched at least its first three seconds. Hold rate is the share of those people who kept watching to the point your platform counts as a full view. Together they tell you which part of a video ad to fix.

This guide is for anyone running video ads on Meta or TikTok who has the numbers in Ads Manager and isn't sure what to do with them. You'll leave with the formulas, a table that maps each pattern to a fix, and a rule for how much data you need before the numbers mean anything.

What is the hook rate formula, and how do you calculate it?

Hook rate measures the first three seconds of a video ad. The formula:

Hook rate = 3-second video views ÷ impressions

If an ad gets 10,000 impressions and 2,800 three-second views, its hook rate is 28%. The number says how many of the people who had the ad in their feed stopped long enough for the opening to register.

A worked example with two ads in the same ad set:

Ad AAd B
Impressions10,00010,000
3-second views2,8002,100
Hook rate (3-second views ÷ impressions)28%21%
ThruPlays700630
Hold rate (ThruPlays ÷ 3-second views)25%30%

Ad A stops more scrolls, so its opening is stronger. Ad B keeps a larger share of the people it catches, so its body is stronger. The obvious test is Ad A's opening on Ad B's body. Which ad wins still depends on cost per purchase, which these two rates do not show.

Ads Manager does not show a column called "hook rate" by default. You build it as a custom metric from two columns Meta already reports, or you export the data and divide. The three-second view is the building block, so check how your platform names it: Meta reports 3-second video plays, and TikTok reports its own early-view metrics at different thresholds. Platform definitions change, so confirm the current wording in your account before you compare numbers across channels.

What is hold rate, and how do you calculate it?

Hold rate measures what happens after the hook. The formula most teams use on Meta:

Hold rate = ThruPlays ÷ 3-second video views

A ThruPlay on Meta is a play of at least 15 seconds, or a play to the end for videos shorter than that. Check Meta's current definition before you rely on it. If an ad has 2,800 three-second views and 700 ThruPlays, its hold rate is 25%.

Teams define hold rate in more than one way. Some divide 15-second views by impressions, which blends the hook and the body into one number. Pick one definition, write it in your creative log and use it for every ad. A rate is only useful when you compare it with another rate calculated the same way.

Which metric tells you what to change?

Each video ad has three jobs: stop the scroll, keep the viewer and get a click. The metrics line up with those jobs, so the pattern across them points to the fix.

Hook rateHold rateClick-through rateWhat it meansWhat to change
LowAnyAnyThe opening doesn't stop peopleNew hook: first frame, first line, text on screen
HighLowLowThe hook promised something the body didn't deliverRework the body, or make the hook honest
HighHighLowPeople watch but don't actOffer, call to action, or end card
HighHighHigh, but cost per purchase highThe ad works, the page or price doesn'tLanding page, price, shipping, checkout
HighLowHighA short ad that sells quicklyOften fine. Check cost per purchase before changing anything

The first row is the cheapest fix and the most common one. Changing the opening of an ad leaves the body intact, so you keep what already worked. The 21 hook formulas for UGC video ads give you openings to test, and the creative testing system shows how to keep the test clean.

The last row matters because hold rate depends on length. A 12-second ad can end before the platform's full-view threshold, which changes how ThruPlay is counted. Compare hold rate between ads of similar length, and don't punish a short ad for being short.

How many impressions do you need before the numbers mean anything?

A rate calculated from a few hundred impressions mostly measures luck. You can estimate how much with a simple formula for the margin of error on a share:

Margin of error (95%) ≈ 2 × √(rate × (1 − rate) ÷ impressions)

Here is what that gives for an ad with a 30% hook rate:

ImpressionsMargin of errorThe "true" hook rate could be anywhere from
1,000about 2.9 points27% to 33%
5,000about 1.3 points29% to 31%
20,000about 0.6 points29.4% to 30.6%

These figures are derived from the formula, not benchmarks. They assume the audience stays the same, which it doesn't in practice, so treat them as a floor on the noise.

The decision rule: don't call one hook better than another until the gap between them is larger than the margin of error of both. A 30% hook against a 28% hook at 1,000 impressions each is a tie. The same gap at 20,000 impressions each is probably real. The weakness of an ad shows up in your data early, but the winner takes longer to prove.

Hold rate needs more impressions than hook rate, because it is calculated from the smaller group who got past the first three seconds. If 30% of 5,000 impressions hit the hook, hold rate rests on about 1,500 people.

What is a good hook rate and hold rate for your account?

No benchmark fits every account. Hook rate varies with placement, audience temperature, video length and category, and published averages usually mix all of those together. A number from a blog post, including this one, is a weaker guide than your own history.

Build your own baseline instead:

  1. Export the last 15 to 20 video ads you ran, with impressions, 3-second views and ThruPlays.
  2. Calculate hook rate and hold rate for each, using one fixed definition.
  3. Take the median of each metric as your account's middle.
  4. Mark an ad as strong when it beats the median on that metric, and weak when it falls clearly below.
  5. Recalculate every month, because your audience and your creative style drift.

Split the baseline by audience if you can. A retargeting audience has already seen your brand, so its hook rate sits differently from a cold audience. Mixing them gives you a median that describes neither.

How do you test a hook with these metrics?

Hook rate is the metric built for hook testing, because you can isolate it from the rest of the ad.

  1. Take one body that already performs.
  2. Make three to five new openings and attach each to the identical body.
  3. Run them in the same ad set, same audience, same placement.
  4. Wait until each version has enough impressions that the margin of error is smaller than the gaps you want to detect.
  5. Rank by hook rate, then check that hold rate hasn't dropped. A hook that stops the wrong people lifts hook rate and drags hold rate.
  6. Compare cost per purchase last, on the ads that cleared the first two checks.

Keep a record of every test: the hook, both rates, the impressions and the outcome. A log makes your baseline sharper over time, and it stops you from retesting an opening you already retired.

What do you do when hook rate is high and hold rate is low?

This is the most common frustrating pattern. People stop, then leave. Three causes cover most cases.

  • The hook overpromises. A shocking first line that the product demo never pays off teaches the viewer to leave. Make the body deliver the thing the hook raised, in the first few seconds after it.
  • The body is slow. The step after the hook explains too much before showing anything. Cut the setup and show the product doing the job.
  • The hook attracts the wrong people. A curiosity hook can stop anyone. If the people it catches don't want the product, they leave and your cost per purchase rises. Name the buyer or the problem in the hook.

Fix one cause at a time and keep the hook if the click-through rate holds up. A high hook rate is worth keeping when the right people are in it.

Where Klaspr fits

Hook rate and hold rate only help if you can act on them quickly. In Klaspr, you keep your creator and product on your account, so testing five new openings on a winning body means generating five short variations instead of reshooting. That shortens the gap between reading the numbers and having the next test live.

Klaspr doesn't read your ad account or tell you which hook won. Your Ads Manager data does that, and it decides what to keep. See Klaspr pricing for how plans work.