Ad mockup generator
See one ad the way people will see it on Facebook, Instagram, TikTok, Snapchat, YouTube, X, LinkedIn, Pinterest and Google Display: the text cut where each app cuts it, each platform’s own button, its crop and its safe zone. Download any of them as a picture for the client. Nothing is uploaded.
Nothing is uploaded: your files stay in this browser.
Each platform shows its own wording, or its nearest button when it has no exact match.
A few seconds in, the button takes the ad's colour.
Instagram Feed, Meta
Recommended: 4:5, 1440 × 1800. Specs checked September 2026.
- Your picture
Your 4:5 fits this placement as it is.
- Primary text
Yours is 227 characters. Two lines under the post, then more. Meta suggests 125 characters.
- Headline
Yours is 25 characters. Not shown in the Instagram feed; the button bar carries the call to action.
The button bar under the post starts plain and takes a colour from the ad a few seconds in.
Taller than 4:5 is masked to 4:5; a 9:16 video should keep its words inside the Reels safe zone.
Write it once, see it everywhere
Drop in the picture or video and write the words once: the brand, the primary text, the headline and the button. Every placement takes what it shows of them. Facebook folds the primary text after three lines, Instagram after two, LinkedIn at about 140 characters on a phone. Snapchat’s headline stops at 34 characters and TikTok’s name at 20. The list under each mockup says what that placement did with your ad.
- Twenty placements. Feeds, Stories and Reels on Meta, the For You feed, Snap Ads, YouTube in-stream, Shorts and in-feed, the X timeline, LinkedIn on a phone and a computer, Pinterest’s feed and close-up, and four Google Display sizes.
- The moment matters. Some buttons change a few seconds in: Instagram’s bar and TikTok’s button fill with a colour from the ad, and YouTube’s Skip appears at five seconds. Switch between the first second and a few seconds in.
- A vertical cut. Add a 9:16 version and the full-screen placements use it, as they would in Ads Manager.
Ad sizes and text limits for every platform, checked September 2026
What each placement takes and where it cuts the words, from the platforms’ own ad specs. Safe zones are given in pixels of a 1080 by 1920 frame. The tool above checks your ad against all of it.
Meta
| Placement | Media | Words | Safe zone |
|---|---|---|---|
| Facebook Feed | 4:5, 1440 × 1800 | Primary text: About 3 lines on a phone, then See more. Meta suggests 50 to 150 characters.Headline: 27 characters before it may be cut.Description: Not shown in the mobile feed. | Not needed: nothing covers the picture |
| Instagram Feed | 4:5, 1440 × 1800 | Primary text: Two lines under the post, then more. Meta suggests 125 characters.Headline: Not shown in the Instagram feed; the button bar carries the call to action. | Not needed: nothing covers the picture |
| Instagram Stories | 9:16, 1080 × 1920 | Primary text: 125 characters suggested; on a full 9:16 ad the words in the picture carry the message. | Top 269 px, bottom 672 px, sides 65 px |
| Instagram Reels | 9:16, 1440 × 2560 | Primary text: One line; past 44 characters it ends in an ellipsis. | Top 269 px, bottom 672 px, sides 65 px |
| Facebook Stories | 9:16, 1440 × 2560 | Primary text: Shown under media shorter than 9:16; 125 characters suggested.Headline: 40 characters suggested. | Top 269 px, bottom 672 px, sides 65 px |
| Facebook Reels | 9:16, 1440 × 2560 | Primary text: One line, 40 characters suggested, then See more.Headline: 55 characters suggested. | Top 269 px, bottom 672 px, sides 65 px |
TikTok
| Placement | Media | Words | Safe zone |
|---|---|---|---|
| For You feed | 9:16, 1080 × 1920 (540 × 960 at least) | Name: One line, up to 20 characters.Primary text: 100 characters suggested; long captions fold behind more. | About top 130 px, bottom 484 px, left 60 px, right 140 px |
Snapchat
| Placement | Media | Words | Safe zone |
|---|---|---|---|
| Snap Ad | 9:16, 1080 × 1920 | Name: Up to 32 characters; 25 shows safely.Headline: Up to 34 characters, under the brand name. | Top 150 px, bottom 330 px |
YouTube
| Placement | Media | Words | Safe zone |
|---|---|---|---|
| In-stream | 16:9, 1920 × 1080 video | Headline: 15 characters for the short headline; a long headline takes 90.Button: Free text, 10 characters at most. | Not needed: nothing covers the picture |
| Shorts | 9:16, 1080 × 1920 video, 6 to 60 seconds | Headline: 40 characters suggested.Description: One line on a phone, two on a computer; 90 characters at most. | Not published |
| In-feed, search | 16:9 video; the thumbnail is one of its frames | Headline: Up to 100 characters, two lines; some devices cut it past 25.Description: Two lines of 35 characters each. | Not needed: nothing covers the picture |
X
| Placement | Media | Words | Safe zone |
|---|---|---|---|
| Home timeline | Website card: 1.91:1 (800 × 418) or 1:1 (800 × 800) | Primary text: 280 characters, and each link counts as 23.Headline: On the picture, two lines at most; 50 characters avoids the cut, 70 at most. | Not needed: nothing covers the picture |
| Placement | Media | Words | Safe zone |
|---|---|---|---|
| Feed, phone | 1:1, 1200 × 1200 (1.91:1 and 4:5 also run) | Primary text: About 140 characters on a phone, then more. Under 150 avoids the cut; 3,000 at most.Headline: 70 characters avoids the cut; 200 at most.Description: Hidden on phones. | Not needed: nothing covers the picture |
| Feed, desktop | 1.91:1, 1200 × 628, or 1:1 | Primary text: About 210 characters or 3 lines on a computer, then more.Headline: 70 characters avoids the cut.Description: 100 characters suggested; shown on desktop only. | Not needed: nothing covers the picture |
| Placement | Media | Words | Safe zone |
|---|---|---|---|
| Home feed | 2:3, 1000 × 1500 | Headline: The title: about 40 characters show in the feed, 100 at most.Description: Up to 800 characters, not shown in the feed. | Not needed: nothing covers the picture |
| Close-up | 2:3, 1000 × 1500 | Headline: The title, up to 100 characters.Description: Up to 800 characters, shown under the title. | Not needed: nothing covers the picture |
Google Display
| Placement | Media | Words | Safe zone |
|---|---|---|---|
| 300 × 250 | Landscape 1.91:1 (1200 × 628) and square 1:1 (1200 × 1200) | Headline: Short headline 30 characters; long headline 90.Description: 90 characters.Name: Business name 25 characters. | Not needed: nothing covers the picture |
| 728 × 90 | Square 1:1 (1200 × 1200) | Headline: Short headline 30 characters.Description: 90 characters, cut to fit. | Not needed: nothing covers the picture |
| 300 × 600 | Landscape 1.91:1 (1200 × 628) | Headline: Long headline 90 characters.Description: 90 characters. | Not needed: nothing covers the picture |
| 320 × 50 phone | Square logo 1:1 (1200 × 1200) | Headline: Short headline 30 characters, cut to one line. | Not needed: nothing covers the picture |
Button labels on each platform
The same button goes by a different name on each platform, and some have no match at all. Where a platform lacks the button, its nearest is shown and marked.
| Button | Meta | TikTok | Snapchat | YouTube | ||
|---|---|---|---|---|---|---|
| Learn more | Learn more | Learn more | More (nearest) | Learn more | Learn more | Learn More |
| Sign up | Sign up | Sign up | Sign Up | Sign up | Sign up | Sign Up |
| Shop now | Shop now | Shop now | Shop Now | Shop now | Learn more (nearest) | Shop Now |
| Book now | Book now | Book now | Book Now | Book now | Register (nearest) | Book Now |
| Order now | Order now | Order now | Order Now | Order now | Learn more (nearest) | Shop Now (nearest) |
| Download | Download | Download | Get Now (nearest) | Download | Download | Download |
| Contact us | Contact us | Contact us | More (nearest) | Contact us | Learn more (nearest) | Contact Us |
| Apply now | Apply now | Apply now | Apply Now | Apply now | Apply | Apply Now |
| Get quote | Get quote | Get quote | More (nearest) | Get quote | View quote | Get Quote |
| Subscribe | Subscribe | Subscribe | Sign Up (nearest) | Subscribe | Subscribe | Subscribe |
| Watch more | Watch more | Watch now (nearest) | Watch (nearest) | Watch more | Learn more (nearest) | See More (nearest) |
X’s website card has no button: the headline sits on the picture and the whole card opens the site. Pinterest’s standard pins have no button in the feed; the close-up shows Visit site.
Show the client the ad, not a file
A picture of the ad in the feed gets approved faster than a JPEG and a spreadsheet of copy. Wiro runs approvals per client, with the creative, the copy and the comments in one place, and a scheduler that plans each post in the right market’s time.
More free tools
No sign-up on any of them. Check a creator before the brief goes out, not after the invoice comes in.
UTM link builder
Tag campaign links for Google Analytics, catch the mistakes that split the numbers, and see the GA4 channel.
Try it freeQR code generator
Links, WhatsApp, Wi-Fi and contact cards, in your colours with your logo. Static codes that never expire.
Try it freeAd metrics calculator
CPM, CPC, CTR, CPA and ROAS from your numbers, the break-even ROAS for your margin, and a budget split by platform.
Try it freeLink preview checker
See how a link will look on WhatsApp, LinkedIn, X and Facebook, and the tags to fix before you share it.
Try it freeGCC working days calculator
Count working days or find a deadline, with each Gulf country's weekend and public holidays taken out.
Try it freeCampaign naming builder
One naming rule for campaigns, ad sets and ads, the names built from it, and a checker for the ones you have.
Try it freeCommon questions
How close are the mockups to the real apps?
The sizes, cuts and labels come from each platform's own ad specs, checked in September 2026: where Facebook cuts the text, how many characters Snapchat's headline takes, the safe zones Meta and Snapchat publish, the labels each platform puts on a button. The layouts follow the apps as they look today on an iPhone. The apps change their look often and test versions on some people, so treat the mockup as how the ad will look, not a guarantee of every pixel.
Why does my ad look different on each platform?
Each platform frames the same ad its own way. Facebook and Instagram mask anything taller than 4:5 in the feed; Stories fill the screen at 9:16 and put shorter media on coloured bars; TikTok and Snapchat cover the bottom of the screen with their own buttons. Upload a 9:16 version as well and it is used for the full-screen placements, the way you would give each placement its own cut in Ads Manager.
What is the safe zone?
The part of a full-screen ad the app does not cover with its own name, caption and buttons. Meta asks for roughly 14% clear at the top, 35% at the bottom and 6% at each side of a 9:16 ad; Snapchat asks for 150 pixels at the top and 330 at the bottom. TikTok publishes its zone only as a template, so the one shown for TikTok is approximate. Keep words and logos inside the zone and nothing important is hidden.
What size should a Stories, Reels or TikTok ad be?
9:16, at 1080 by 1920 pixels (Meta recommends 1440 by 2560). Keep words and logos out of the top 14% and bottom 35% on Meta, the top 150 and bottom 330 pixels on Snapchat, and roughly the top 130 and bottom 484 pixels on TikTok, where each app puts its own name, caption and buttons.
How long can the primary text and headline be?
Facebook shows about three lines of primary text before See more, Instagram two, and LinkedIn about 140 characters on a phone. For headlines, Facebook suggests 27 characters, Snapchat takes 34 at most, X's card headline 70 and Google's short headline 30. The table on this page lists every placement.
Why is the Instagram label Ad and the Facebook one Sponsored?
Meta is changing its ad label from Sponsored to Ad. Instagram already shows Ad; Facebook has been testing the change at a small scale. The mockup follows that by default, and you can pick either label for both.
Why does the button say something different on Snapchat or LinkedIn?
Each platform has its own list of buttons. Snapchat has no Learn More on website ads, and LinkedIn has no Shop Now, so the mockup shows each platform's nearest button and says so under the mockup. X's website card has no button at all: the whole card opens the site.
Is my picture or video uploaded?
No. The mockups are drawn in your browser from the file on your device, and the PNG download is made from the page. Nothing is sent to Wiro. The platforms' names are used only to say which placement is which; Wiro is not affiliated with any of them.