Blog
After the first second, only one Meta placement changes as your ad plays
We put a grid and a running clock on a test ad in the Ads Manager previews and measured what sits on top of a 9:16 video in each placement, second by second.
Melvin Salas22 October 202611 min read
About 10.6 seconds into a vertical video ad in Meta's preview, Instagram Reels opens a card over the bottom of the frame that was not there a moment before. Every other main placement has settled by our first sample, at 1.2 seconds, and then stays exactly as it is.
We found that while placing type for a long motion video, one vertical master that had to work in Stories, in Reels and in feeds. The usual advice is a blanket band to keep clear at the top and the bottom of a 9:16 frame. It is written for the worst placement at the worst second, so it never says which placement is the strict one, and it says nothing about time. For a video that moves, time is the part that matters: if the thing covering the bottom only arrives at ten seconds, the first ten seconds can use that space.
So we measured it, per placement and per second. Everything here comes from our own test ad, not from a client account, and the data is in the downloads at the end of the post.
The rows that stay clear everywhere
On a 1080 by 1920 file, the band from row 210 down to row 1,341, between x 60 and x 930, was clear in Instagram Stories, Facebook Stories, Instagram Reels and Facebook Reels at every second we measured. That is where the face, the headline, the product and the price go.
Below that band the frame is contested rather than forbidden. Until 10.6 seconds the four placements together leave the main column free down to row 1,411, and Facebook Reels is the one setting that limit. From 10.6 seconds Instagram Reels takes over, at 1,341. If you can leave Facebook Reels out of the placements, the first 10.6 seconds are free down to row 1,530.
The right edge is a separate matter. Both Reels placements put a column of buttons down the right-hand side, so anything the viewer must read stays left of x 930.
| Seconds | IG Stories | FB Stories | IG Reels | FB Reels | All four | Without FB Reels |
|---|---|---|---|---|---|---|
| 0 to 1 s | not sampled | not sampled | 1,530 | 1,411 | 1,411 | 1,530 |
| 1 to 2.5 s | 1,595 | 1,605 | 1,530 | 1,411 | 1,411 | 1,530 |
| 2.5 to 10.6 s | 1,595 | 1,605 | 1,530 | 1,411 | 1,411 | 1,530 |
| 10.6 to 30 s | 1,595 | 1,605 | 1,341 | 1,411 | 1,341 | 1,341 |
How we measured it
We created a paused draft ad in Riibon's own ad account and uploaded test clips at 9:16, 4:5 and 1:1. Each was a coordinate grid with a numbered line every 100 pixels and a running clock burned into the frame, and we added a clock-stamped copy of a real vertical clip.
The Advanced preview in Ads Manager plays every placement at once, each on its own looping clock. We zoomed on each pane every few tenths of a second, read where each element sat off the grid, and read when it appeared off the clock. Nothing was published and the campaign stayed paused.
The timeline: one placement moves
Read the bars from the top. Instagram Stories and Facebook Stories show a top bar from the first frame and a button pill that was already up at our first sample, 1.2 seconds, and stayed at every sample after it. Facebook Reels is one fixed block across the lower part of the frame plus a column of buttons on the right, there from the first frame to the last.
Instagram Reels is the one with a story. A profile row and a caption line are there from the start. A slim button bar joins at about 2.5 seconds. At about 10.6 seconds that bar turns into a larger card with text, and the profile row moves up with it.
Instagram StoriesFacebook StoriesInstagram ReelsFacebook ReelsAudience Network native
We could not tell whether the card opens on the video's own clock or on how long the viewer has been looking at the ad, because a looping preview cannot separate the two.
Scrub it yourself
The explorer below draws the overlays at any second. Pick one placement or all four, drag the slider or press play, and the readout gives the lowest free row at that moment.
0.0 sSecond of the ad
1,411Lowest free row, of 1920
How much of the frame is free, second by second
This is the lowest pixel row you can use before something covers it, in the main column from x 60 to x 930, keeping 25 pixels of margin above whatever comes next. The top edge, row 210, is the tallest top bar plus a wider margin.
At its worst, the bottom of a universal frame loses 579 rows to the overlays, about 30 percent of the height. The top loses far less than a blanket rule assumes: the tallest top bar we measured, in Instagram Reels, ends at row 170.
Instagram StoriesFacebook StoriesInstagram ReelsFacebook ReelsAudience Network native
Instagram StoriesFacebook StoriesInstagram ReelsFacebook ReelsAudience Network native
Stories, Facebook Reels and Audience Network
The two Stories placements leave the most room at the bottom. Instagram Stories is free down to row 1,595 once its pill is up, and Facebook Stories, which follows the same pattern with a swipe chevron above a larger pill, down to row 1,605.
Facebook Reels covers the lower part of the frame from row 1,436 with its profile row, caption, button bar and Ad tag, and its button column starts at row 1,330 on the right. None of it changes while the ad plays.
Audience Network, the placement in other companies' apps, puts a top bar over the video and a card with the caption and button across the bottom from row 1,430. When the video ends it is replaced by an end card. Facebook in-stream Reels and Ads on Facebook Reels showed a small sponsored card with a thumbnail and did not play the video in the preview, so for those the cover frame matters more than the timeline.
Instagram StoriesFacebook StoriesInstagram ReelsFacebook ReelsAudience Network native
What a 4:5 or 1:1 file does instead
A 9:16 file shown in a feed is cropped. Facebook's feeds crop it to 4:5 from the middle, keeping rows 285 to 1,635, and Marketplace crops it to 1:1, keeping rows 420 to 1,500. Instagram feed draws the profile header over roughly the first 110 rows.
A 1:1 or 4:5 file is shown whole in feeds, with nothing drawn on top of the video. In Stories it sits in the upper part of the screen with the ad text and button underneath it. In Reels it is centred between black bars, and the caption and buttons fall on the bars and the lower edge of the video. Instagram Explore home did not accept our 1:1 file at all.
The layout rule we use
Instead of one safe zone we work in layers, because most of the bottom of the frame is not forbidden, it is contested, and a design can use contested space.
Always clear, rows 210 to 1,341 and left of x 930: the face, the headline, the product, the price, anything the viewer must read. Free until 10.6 seconds, rows 1,341 to 1,411: let graphics run on through it, but text there can be covered later. Covered often, rows 1,411 to 1,595: free in both Stories placements, free down to row 1,530 in Instagram Reels before its card opens, and covered by Facebook Reels throughout. Background only, the top 210 rows and everything below 1,595: colour and footage, nothing the viewer needs.
| Element | Where | Why |
|---|---|---|
| Speaker's face | Rows 300 to 1,100 | Inside the always-clear band in every placement. |
| Headline | Rows 260 to 760, left of x 930 | Read first, so it must never be covered. |
| Price or offer | Rows 800 to 1,300 | Clear of the Reels card, with room to spare. |
| Burned-in captions | Rows 1,150 to 1,340 | Near where the eye expects them and still clear. |
| Logo | Rows 210 to 330, on the left | Below every top bar. |
| Our own button | Do not draw one low | Meta draws its own button where we would put ours. |
| Background and footage | Every row | The overlays sit on top of it, so it should not stop short of the edges. |
The data file in the downloads lists every element with its start, end and box, so a video generator can ask for the free rectangle at any second instead of reading a guide. That is how we use it.
| Placement | Element | From | Until | Rows | Columns |
|---|---|---|---|---|---|
| Instagram Stories | Top bar: progress, avatar, name, close | 0 s | the end | 0 to 150 | 0 to 1,080 |
| Instagram Stories | CTA pill | 1 s | the end | 1,620 to 1,740 | 130 to 940 |
| Instagram Stories | Ad tag | 0 s | the end | 1,830 to 1,870 | 40 to 100 |
| Facebook Stories | Top bar: avatar, name, menu, close | 0 s | the end | 0 to 135 | 0 to 1,080 |
| Facebook Stories | Swipe chevron and CTA pill | 1 s | the end | 1,630 to 1,840 | 150 to 930 |
| Instagram Reels | Top bar: Reels title, camera | 0 s | the end | 0 to 170 | 0 to 1,080 |
| Instagram Reels | Action rail | 0 s | the end | 1,530 to 1,920 | 930 to 1,080 |
| Instagram Reels | Profile row (before the card) | 0 s | 10.6 s | 1,555 to 1,625 | 45 to 935 |
| Instagram Reels | Caption line | 0 s | the end | 1,740 to 1,780 | 47 to 700 |
| Instagram Reels | Ad tag | 0 s | the end | 1,830 to 1,860 | 45 to 110 |
| Instagram Reels | Slim CTA bar | 2.5 s | 10.6 s | 1,650 to 1,725 | 47 to 870 |
| Instagram Reels | Profile row (card open) | 10.6 s | the end | 1,366 to 1,425 | 45 to 935 |
| Instagram Reels | Expanded ad card + CTA | 10.6 s | the end | 1,454 to 1,724 | 47 to 870 |
| Facebook Reels | Profile row | 0 s | the end | 1,436 to 1,537 | 45 to 935 |
| Facebook Reels | Caption | 0 s | the end | 1,560 to 1,600 | 45 to 900 |
| Facebook Reels | CTA bar | 0 s | the end | 1,652 to 1,761 | 50 to 905 |
| Facebook Reels | Ad tag | 0 s | the end | 1,797 to 1,869 | 45 to 135 |
| Facebook Reels | Action rail | 0 s | the end | 1,330 to 1,920 | 940 to 1,080 |
| Audience Network native | Top bar | 0 s | the end | 0 to 140 | 0 to 1,080 |
| Audience Network native | Caption + CTA card | 0 s | the end | 1,430 to 1,920 | 0 to 1,080 |
What we have not measured
Anything in Instagram Reels and the two Stories placements after about 22 seconds, our last sample of them; we assume the card and the pills stay to the end of the 30 second clip and beyond. Whether that card opens on video time or on time spent on the ad. The first second of Stories, because the button pill was already there at our first sample, at 1.2 seconds. The live apps, which a screen recording from the preview's share link would settle. And how an account's impressions split across placements, which is why every placement counts equally in the coverage map above.
The method is cheap, so it is worth repeating whenever Meta changes a placement: a grid clip with numbered lines every 100 pixels and a clock in the corner, a paused draft ad, the Advanced preview, and a note of which rows each overlay covers and when it arrives.
Questions people ask about Meta safe zones
What is the safe zone for a Reels ad?
In our measurements on a 1080 by 1920 file, Instagram Reels is clear from row 210 down to row 1,530 for the first 10.6 seconds and down to row 1,341 once its card opens. Facebook Reels is clear down to row 1,411 throughout. Keep anything important left of x 930 because of the button column.
Is the safe zone the same for Stories and Reels?
No. In our previews both Stories placements were free down to about row 1,600 once the button pill appeared, and they did not change after the first second. Reels placements cover more of the bottom, and Instagram Reels changes at about 10.6 seconds.
Can one vertical video work in every placement?
Yes, if what the viewer must read stays in rows 210 to 1,341 and left of x 930. If you control the placements, a Stories-only file can use the frame down to about row 1,595.
What happens to a 9:16 video in the Facebook feed?
It is cropped to 4:5 from the middle, which keeps rows 285 to 1,635 of a 1080 by 1920 file. In Marketplace it is cropped to 1:1, keeping rows 420 to 1,500.
Do 1:1 and 4:5 videos have safe zones?
In feeds they are shown whole, with nothing drawn on top of the video. In Stories and Reels they sit inside the vertical frame with space around them, so the overlays mostly fall outside the video.
How accurate are these numbers?
Positions are good to about 25 pixels and times to about 0.4 seconds, measured in Meta's Ads Manager previews. The 1:1 and 4:5 positions inside Stories and Reels are estimates good to about 60 pixels, and the live apps were not tested.
About the data. Measured by Riibon on 22 October 2026 in Meta Ads Manager's Advanced preview, from a paused draft ad in Riibon's own ad account carrying grid and clock test clips at 9:16, 4:5 and 1:1. Positions are good to about 25 pixels and times to about 0.4 seconds. The live apps were not tested, and no client account or client data is involved.
Downloads
- The research report, every chart and the method pdf
A confirmation is on its way too. Check your spam folder if it does not arrive in a few minutes.
Want this run on your real account, not just read about?
We run Meta and Google as one system
Riibon runs Meta Ads and Google Ads together, so one platform does not quietly claim the demand the other one built, and ties both back to outcomes measured outside the platforms.
Ask the Riibon app how your Meta and Google campaigns compare on the same terms. Access starts with a short call: we look at your ads together, then run them for you or set the app up with you.