Meta Ads Character Limits: Facebook & Instagram Specs
Meta's limits look generous on paper but the platform truncates aggressively on mobile, where ~95% of impressions render. The number that matters isn't the maximum — it's the visible threshold before See more collapses your copy.
Use the Ad Specs Validator
Paste your copy once. See if it fits Google, Meta, LinkedIn, TikTok, and 8 more ad networks — instantly.
Feed placements (Facebook + Instagram)
- Primary text:
125 charactersvisible on mobile beforeSee moretruncation. Hard limit is2,200 charactersbut anything past 125 is invisible to most users. - Headline:
27 charactersvisible on most placements,40 charactershard cap. The shorter visible window is why Meta's own playbook recommends staying under 27. - Description (link description):
27 charactersvisible,30 characterscap. Often hidden entirely on mobile feed — treat it as optional.
Stories & Reels
- Primary text overlay on Stories ads:
125 charactersvisible before truncation. - Reels in-video overlay text:
20 charactersis the practical safe zone before the CTA sticker covers it. Anything longer will be partially obscured on most devices. - CTA button text is fixed — you choose from Meta's predefined list, no custom copy.
Carousel
- Headline per card:
40 characterscap,27 charactersvisible. - Description per card:
20 charactersis the safe display threshold. - Primary text (above the carousel): same
125 charactermobile truncation rule.
Messenger and Click-to-Message ads
- Message body:
600 characterscap. - Message intent buttons:
20 characterseach, max 3 buttons.
Why these limits exist
The 125-character truncation isn't arbitrary. It's the number of characters that fit in roughly 3 lines of text at the standard mobile font size before the feed card would push the image too far down the screen. Meta optimizes for image-first, copy-second. The 27-character headline visible width matches the link preview card width on a 360-380px viewport (most Android phones).
Counting gotchas
- Emoji count varies. Most basic emoji (😀, ❤️) count as one character in Meta's UI counter but transmit as
4 bytesin UTF-8. Newer emoji using zero-width joiners (👨👩👧, 🏳️🌈) can count as 5-7 characters depending on whether the renderer collapses the sequence. Test in Ads Manager preview, not a Word doc. - Curly quotes and em-dashes (
',—) count as one character but render inconsistently across Android WebView versions. Use straight quotes if you're at the limit. - RTL languages (Arabic, Hebrew) count by character but the visible truncation point shifts because text aligns right; your value prop needs to land at the start (right side) of the line.
- Line breaks count as characters. Two
\n\nparagraph breaks = 4 characters out of your 125. - URLs in primary text count fully even if Meta auto-shortens the displayed version. A 60-character URL eats half your visible budget.
Rules for fitting copy
- Front-load the offer or hook in the first
40 characters. That's what survives every truncation scenario including small screens and low-bandwidth previews. - Use sentence fragments. Full grammatical sentences waste characters on connective tissue.
- Numbers beat words:
40% off(7 chars) vsforty percent off(17 chars). - Cut the brand name from primary text — your page name is already shown above the ad.
- Save curiosity hooks (questions, ellipses) for after the 125 mark only if you've earned the click on the visible portion.
Rejection vs. truncation
Exceeding character caps doesn't get your ad rejected — Meta will accept up to the hard limit and silently truncate display. What gets rejected: more than 20% text in image (still enforced for some objectives despite the 2021 policy change), prohibited unicode characters, and excessive capitalization flagged by automated review.
Example
Original headline: Premium Organic Cotton T-Shirts Now 40% Off Sitewide (52 chars). Trimmed to fit the 27-char visible width: Organic Tees — 40% Off (22 chars). The brand context moves to the page name slot, the product category leads, and the offer survives truncation on a 360px viewport.
Questions
Does Meta count emoji as one character or more?
What happens if I exceed Meta's character limits?
AdPlus is live — free Starter tier
One login for 12 ad networks. AI plans your campaign, validates every asset automatically, and publishes across every connected account. Start on the free Starter tier.
Get started