Home Articles Where Feed-Driven Text Can Safely Sit in 9:16 Video Ads on Meta, TikTok and YouTube Shorts Where Feed-Driven Text Can Safely Sit in 9:16 Video Ads on Meta, TikTok and YouTube Shorts Published Date: 16 Oct, 2026 Three platforms accept the same 9:16 video and publish three different minimums for it: Google Ads recommends 1080 x 1920 and accepts 720 x 1280, while TikTok's In-Feed minimum is 540 x 960. Their on-screen interface also covers different parts of the frame. That is a small problem when a designer places one title by hand. It is a large one when a template fills a title, a price and a discount badge from 5,000 feed rows and a long product name lands under a button. This guide is for teams that render video from product feed rows. By the end you will have one layout envelope that works across Meta Reels, TikTok and YouTube Shorts, a rule for where each feed field may sit, and a 12-point check to run before a bulk render. What each platform publishes, and what it does not Only some of the numbers you see in safe zone guides come from the platforms themselves. We separated them, because a template that depends on a wrong margin fails on every row at once. PlatformWhat the platform's own page saysWhat it does not say Google Ads (video, Shorts)Recommended 1080 x 1920, minimum 720 x 1280 for vertical. Keep logo, product and supers inside the safe zone. A transparent PNG safe zone template is offered for download.No pixel or percentage margins in text. The Shorts page gives no margins either. TikTok (In-Feed)9:16 minimum 540 x 960, up to 500 MB, at least 516 kbps. Separate safe zone files for standard and for Arabic (right-to-left) layouts.No pixel values in text. It says the safe area depends on dimension, caption length and format. Meta (Reels, Stories)We could not open Meta's pages: its Ads Guide and Help Center block automated fetching.We cannot confirm Meta's wording first-hand. The margins below come from secondary guides that cite Meta. The practical consequence: Google and TikTok want you to download their template files and overlay them. Meta's margins circulate as percentages, so they tend to become the numbers every template ends up using. Treat them as a working assumption and check them against Meta's current template before you commit. The Meta margins, and why we use the stricter ones Two independent guides report the same Reels figures at 1080 x 1920: about 14% free at the top, about 35% at the bottom and about 6% on each side (one, two). They differ on Stories. One says Meta's Facebook Stories video page still carries the older 250 px top and 340 px (20%) bottom wording; the other lists 20% at the bottom for Stories. Neither quotes Meta's text. When sources conflict, a template should take the stricter value. If one file must serve Reels and Stories, design to 35% at the bottom. The cost is about 15% of frame height that Stories could have used. The cost of the alternative is a price hidden behind interface on every Reels placement. Turn percentages into a layout envelope Store margins as fractions of the canvas, never as pixels. That keeps one template valid at 1080 x 1920 and at 720 x 1280. At 1080 x 1920 the envelope is: Top margin: 14% of 1920 = 269 px, so text starts at y = 269. Bottom margin: 35% of 1920 = 672 px, so text ends at y = 1248. Side margins: 6% of 1080 = 65 px, so text sits between x = 65 and x = 1015. Usable box: 950 px wide by 979 px tall. The same fractions at 720 x 1280 give 179 px, 448 px and 43 px, a usable box of 634 x 653 px. Run the arithmetic in code; do not copy these figures into a template. For Google and Shorts we have no published margins, so we apply the Reels envelope to it as our own assumption. Then we overlay Google's PNG template and tighten the envelope wherever the PNG shows a conflict. Place each feed field inside the envelope Not every feed-bound element belongs in the same part of the frame. The rule we use is to put the field that must be read first in the upper part of the usable box, and keep anything a viewer acts on away from the bottom band where platforms place their own button. Feed fieldWhere it sitsRule titleTop third of the usable boxTruncate by measured width at the render font, not by character count. Cap at 3 lines. price / sale_priceMiddle of the usable boxSize the box for the longest formatted price in the feed, not the average row. Discount badge (derived)Beside the price, inside the side marginsCompute from the two prices; never hand-type it. Brand / logoTop of the usable boxFixed position, same on every row. CTA textInside the envelope, above y = 1248Platforms add their own button; the on-screen text should not compete with it. Legal or terms lineBottom edge of the usable boxKeep it above the bottom margin, not in it. Google adds timing to this. On Shorts, the call-to-action button appears 3 seconds into the ad for Performance Max, App and Demand Gen campaigns, and at 10 seconds for Video View and Video Reach. The CTA overlay card can show a headline; Google recommends 40 characters for the headline and 90 for the description. If your template shows a CTA in the first 3 seconds, that is the only moment it has the space to itself. A feed row rendered against the envelope This is an illustrative row, not client data: id: TR-10482 | title: Kadın Deri Ceket Siyah M | price: 2499.00 TRY | sale_price: 1749.00 TRY The discount is (2499 - 1749) / 2499 = 30.01%, so the badge reads "%30". The Turkish display price is 1.749,00 TL. Against the 1080 x 1920 envelope the layout is: Logo, y = 280 to 340, x = 65. Title, three lines at 56 px with 1.15 line height: 3 x 56 x 1.15 = 193 px tall, y = 380 to 573, width capped at 950 px. Price block, y = 640 to 800, with the sale price at 96 px and the struck-through price at 48 px. Discount badge, right-aligned to x = 1015, y = 640. Terms line, y = 1180 to 1240. This ends 8 px above the bottom margin; it is tight on purpose, so any longer legal line should move up instead. Now test the worst case, not the example. The longest title and the longest price in the feed (for example a six-figure 12.499,00 TL) decide whether the price box overflows the 950 px width. We render those two rows first, every time. Right-to-left layouts need their own check TikTok publishes separate safe zone files for Arabic layouts, so the standard file should not be assumed to apply. We could not open the files to compare them, so we do not know which elements move. What follows from the fact itself is that an Arabic or Hebrew variant of a template needs its own overlay test, and a mirrored English layout does not count as one. For text shaping and bidirectional isolation inside the boxes, see our scoring guide for Turkish and Arabic templates. Score a template before a bulk render Score each check 0 (fails), 1 (partly) or 2 (passes), for a total out of 12. #CheckPass condition 1Margins stored as fractionsOne template renders at 1080 x 1920 and 720 x 1280 with identical relative layout. 2Longest title fitsLongest title in the feed stays inside the box at 3 lines or fewer. 3Longest price fitsLongest formatted price and its badge stay inside x = 6% to 94%. 4Bottom band emptyNo text or logo below 65% of frame height. 5RTL variant testedArabic or Hebrew rows checked against that platform's own RTL template. 6Checked in platform previewLongest row, shortest row and one non-Latin row viewed in each platform's preview. Ship at 10 to 12. Fix and re-score at 7 to 9. Do not bulk render at 6 or below. In Feedance, Video Creative templates are bound to feed fields, so the same fields drive every row, which is why one failed check repeats across the whole batch. Where this breaks down Meta's numbers are second-hand. We could not read Meta's pages. If Meta's current template differs, trust the template. Percentages are not device-exact. TikTok itself says previews may differ slightly from the live ad because they are not device-specific. A fixed envelope is a guard rail, not proof. Shorts has no published margins. Our Reels-based envelope for Shorts is an assumption. Static designers may not need automation. If you make a handful of videos by hand, a design tool and the platforms' own overlay files are enough. This method pays when many rows are filled by a template. The interface changes. Re-check the platform pages each quarter. Frequently asked questions What is a video ad safe zone? It is the part of the frame that stays clear of the platform's interface, such as buttons, captions and the account name. Google, for instance, asks you to keep your logo, product and supers inside it so they are not covered. Does one 1080 x 1920 file work on Reels, TikTok and Shorts? Yes, as a file, since all three accept 9:16. Google recommends 1080 x 1920 and TikTok's minimum is lower. The layout inside the file still has to respect each platform's overlays, which is why we design to the strictest envelope. Why store margins as percentages? Fractions scale with the canvas. A 14% top margin is 269 px at 1920 high and 179 px at 1280 high, so the same template survives a resolution change. Where do TikTok's safe zone numbers come from? TikTok does not list pixel values on its specification page. It offers downloadable files for standard and Arabic layouts and says the safe area depends on dimension, caption length and format. Use those files rather than a number from a blog. When does the call-to-action appear on a Shorts ad? According to Google, 3 seconds in for Performance Max, App and Demand Gen, and 10 seconds in for Video View and Video Reach campaigns. Plan your text so it is not the only thing in that area once the button appears. Do I need a separate layout for Arabic? For TikTok, yes, at least a separate check, because TikTok publishes a separate Arabic safe zone file. We have not confirmed what differs inside it. Should the discount badge be typed into the template? No. Derive it from price and sale_price in the feed so it can never disagree with the price shown beside it. See your own feed in these templates If your team renders video from feed rows and wants to test an envelope like this on your catalog, request a demo and bring your longest titles. Cagdas Polat Co-founder of Feedance, where he leverages his background as a computer engineer and marketer to drive analytical insights. With a strong focus on transforming data into actionable strategies, he is dedicated to helping brands achieve significant growth in the digital landscape. Prev Article Custom Labels, Product Type or Item ID: How to Split Performance Max Listing Groups Related to this topic: How Bilyoner Ran Catalog Ads for the First Time and Lifted ROAS by 49% 15 Aug, 2026 How Note Cosmetics Increased ROAS by 127% — While Spending 10% Less 15 Aug, 2026 How Vivense Lifted ROAS 32% by Not Advertising Products It Couldn't Sell 15 Aug, 2026