Tracking and reporting 9 min read
Hook Rate on Meta Ads: Formula, Hold Rate and What to Test
How to calculate hook rate and hold rate on Meta Ads from 3-second video plays and ThruPlays, build the custom metric, set your own benchmark and read both.
Contents
- What is hook rate on Meta Ads?
- How do you calculate hook rate and hold rate?
- How do you add a hook rate column in Ads Manager?
- What is a good hook rate on Meta?
- High or low hook rate, high or low hold rate: what do you test next?
- How should you name ads to compare hooks and bodies?
- Why is hook rate not enough to judge a video?
- Where can you see hook rate and hold rate in Apogee?
- Is hook rate measured the same way on TikTok and Snapchat?
- What hook rate and hold rate do not tell you
Hook rate is the share of impressions in which a video played for at least 3 seconds. You will not find it in Meta’s list of metrics: media buyers build it from two native ones, 3-second video plays and impressions. Paired with hold rate, it answers the one question that matters when a video ad underperforms. Is the problem the hook, or everything after it?
The definitions below come from Meta’s Business Help Center, checked on 28 October 2026. TikTok’s guidance comes from its Business Help Center, checked on 5 November 2026.
What is hook rate on Meta Ads?
Hook rate is the percentage of impressions that turn into a play of at least 3 seconds. Meta’s page on video ad metrics lists neither hook rate nor hold rate, so the ratio is only as good as your grasp of how Meta counts the inputs:
| Meta metric | What it counts, according to Meta |
|---|---|
| Impressions | each time the ad is on screen for the first time; the video does not have to start |
| Video plays | each time the video starts, automatically or on click, excluding replays |
| 3-second video plays | at least 3 seconds played, or 97% of a shorter video, excluding replays |
| ThruPlays | played to completion or for at least 15 seconds |
| Video plays at 25, 50, 75, 95 and 100% | reaching that point, including plays that skipped to it |
| Video average play time | includes replays |
Two of those rows matter more than the rest. Meta’s impressions definition says a video is not required to start playing for the impression to be counted. And its page on how video ad metrics are calculated says plays include videos that start automatically. Hook rate therefore measures how often your video ran for 3 seconds in front of someone, not how often someone chose to watch.
How do you calculate hook rate and hold rate?
The hook rate formula is settled: 3-second video plays ÷ impressions × 100.
Hold rate is not. Two conventions are in common use:
| Convention | Formula | What it measures |
|---|---|---|
| Hold rate on impressions | ThruPlays ÷ impressions × 100 | hook and retention blended together |
| Hold rate on 3-second plays | ThruPlays ÷ 3-second video plays × 100 | retention among people who were hooked |
This article uses the second one. Divided by impressions, hold rate drops whenever the hook is weak, even if the body is excellent, and both problems land back in one number. Divided by 3-second plays, it grades only what happens after the hook.
A worked example with made-up numbers: 20,000 impressions, 5,000 three-second plays, 1,000 ThruPlays. Hook rate is 25%, hold rate is 20%. Measured on impressions, the same hold rate would read 5%.
Meta counts a ThruPlay when a video plays to completion or for at least 15 seconds. On a video of 15 seconds or less, hold rate is a completion rate; on a longer one, it measures getting past 15 seconds. Compare videos of similar length.
The metric in the formula is the one Meta describes on its 15-second ThruPlays page.
How do you add a hook rate column in Ads Manager?
With a custom metric. Meta’s Help Center describes creating custom metrics in Ads Manager this way:
- In Ads Manager, click Columns.
- Choose Customize columns, then Create custom metric.
- Build the formula: select “3-second video plays”, the division operator, then “Impressions”.
- Name it (Hook rate), pick the Percentage format and the access level.
- Repeat for hold rate: ThruPlays divided by 3-second video plays.
The access setting matters. Only you keeps the formula editable. Everyone with access to this ad account shares it with the team, but Meta says a shared formula can no longer be edited or deleted. Create it for yourself first, check it by hand against an ad whose numbers you know, and share it only then.
What is a good hook rate on Meta?
There is no Meta benchmark: the Help Center defines the metrics, never what a good rate looks like.
Among media buyers, a figure of about 30% gets passed around as a good hook rate. It travels badly between accounts:
- Placement: a full-screen video in Reels does not behave like one in Feed.
- Video length: Meta’s own example counts a 2-second video played for 1.94 seconds as a 3-second play.
- Audience: a retargeting audience that knows the brand stops scrolling for different reasons than a cold one.
- Volume: on 1,000 impressions, one point of hook rate is 10 plays, too few to separate two videos.
The benchmark worth having is your own. Take your video ads from the last 90 days, split them by placement with the Breakdown menu in Ads Manager (Meta notes these values are estimated), separate short videos from long ones, and compute the median. A new video has a high hook rate if it beats your median on the same placement. The Meta Ads reporting template takes the same approach and computes a rolling median instead of importing thresholds.
High or low hook rate, high or low hold rate: what do you test next?
Reading the two rates together tells you where the video breaks and what the next iteration should change:
| Hook rate | Hold rate | What it means | What to test next |
|---|---|---|---|
| High | High | the hook stops people and the body keeps them | if CPA still misses, the offer, the call to action or the landing page; otherwise, new hooks to extend its life |
| High | Low | the hook promises something the rest does not deliver | keep the hook, rebuild the body: different demo, different pacing, proof earlier |
| Low | High | few people stop, but those who do keep watching | keep the body, test three to five new hooks on it |
| Low | Low | the concept is not landing | change the concept, not the edit |
The third row is the one worth hunting for. A body that holds attention is the expensive part to produce, and a new opening is cheap. Keeping the body and swapping the hook is the cheapest iteration to test, and what it costs to produce those variants with AI video tools is covered in AI Video Tools for Meta Ads.
These reads assume comparable delivery. Grouping the iterations of one concept in an ad set, as covered in All-in-One vs One Concept One Ad Set, compares more cleanly than an ad set where Meta concentrates delivery on a few ads.
How should you name ads to compare hooks and bodies?
Make the hook a field in the ad name. The site’s convention for ads is [Concept]_[Iteration]_[Format]_[Hook], explained in the Meta Ads naming convention guide.
To test three hooks on one body, keep the concept and the iteration and change only the last field:
UGC-Testimonial_V3_Story_PriceSlash
UGC-Testimonial_V3_Story_Urgency
UGC-Testimonial_V3_Story_Social-Proof
Split the export on _ and every field becomes a column: compare hook rate by Hook field with the body held constant, and hold rate by iteration. Without that discipline, you will know that an ad hooks people, not which of your hooks does.
Why is hook rate not enough to judge a video?
Because a clickbait opening can post a high hook rate and sell nothing. A shock visual unrelated to the product stops the scroll, then people leave, or click with no intent to buy.
Hook rate and hold rate explain; CPA and ROAS decide. An ad set optimized for purchases is judged on cost per purchase, as the article on reading a one ad per ad set test puts it.
A video with an average hook rate and a CPA on target beats a video with a record hook rate and a CPA off target. Use the two rates to choose the next iteration, not to name the winner.
Where can you see hook rate and hold rate in Apogee?
In Apogee, the tool we build: cross-platform stats show them from the Pro plan. The table has a Hook rate column (short views ÷ impressions × 100) and a Hold rate column (long views ÷ short views × 100), the convention used here. On Meta, a short view is the 3-second play and a long view the 15-second ThruPlay; on TikTok and Snapchat, a short view is 2 seconds. The table only covers creatives bridged from a Meta account.
Creative Strategist, a beta module behind a waitlist or access code, also shows the hook rate of each creative synced from the ad account, next to spend, ROAS, CPA and CTR.
Is hook rate measured the same way on TikTok and Snapchat?
No. On Meta, the short view behind hook rate is the 3-second play. In Apogee’s cross-platform stats, which show each platform’s figures as the platform reports them, the short view is 2 seconds on TikTok and on Snapchat. The same video’s hook rate is therefore not measured over the same length on Meta as on the other two. Compare a video with your other videos on the same platform, not Meta’s figure with TikTok’s.
TikTok also gives its own timing. Its creative best practices say to introduce the content proposition, meaning what the video is about, in the first 3 seconds, and to prioritize the hook in the first 6. A Meta video that only makes clear what it is about after its first 3 seconds is the one to recut before it runs on TikTok. Formats and copy limits are in the TikTok ad specs and the Snapchat ad specs.
What hook rate and hold rate do not tell you
Nothing about statics. An image produces no video plays. Judge it on link CTR and cost per result.
Little about carousels. According to Meta’s Help Center, a carousel’s video metrics sum the values of all the videos in the ad. The ratio cannot be compared with a single video’s.
Nothing about traffic quality. A 3-second play can be an autoplay in front of someone with no intention of buying.
Nothing about attribution. These rates describe delivery, not sales. The ROAS next to them depends on the attribution window, and on its own it does not prove a video caused the sale.
Apogee does not make the call for you either. Cross-platform stats show totals over the period with no daily curve, and do not tag creatives by hook, angle or format: your naming convention carries that information.