Facebook Primary Text: The 125-Character Truncation Line

Meta's primary text field accepts up to 3,000 characters, but mobile feeds truncate at roughly 125 characters with a 'See more' link. Anything past that line is invisible until a user taps — and most won't. This is the spec page for writing to that line.

Use the Ad Specs Validator

Paste your copy once. See if it fits Google, Meta, LinkedIn, TikTok, and 8 more ad networks — instantly.

Open the Specs Validator →

The actual limits. Meta's documented maximum for primary text across Feed, Reels, Stories, and Carousel placements is 3,000 characters. The truncation threshold is not officially published as a fixed number — it's a layout-driven cutoff that lands near 125 characters on mobile feed and around 200 on desktop feed. In practice, plan to 125 and you'll be safe across iOS, Android, and the in-app browser variants.

What 'character' means here. Meta counts Unicode code points, not bytes. A standard Latin letter, a space, and a punctuation mark each count as 1. A single emoji counts as 1 in Meta's counter, but it occupies roughly 2x the visual width of a letter on mobile, so two emoji at the start of your copy can shave 4–6 effective characters off your visible window. Combined emoji (skin-tone modifiers, ZWJ sequences like 👨‍👩‍👧) render as one glyph but may count as 2–5 code points depending on the build.

Truncation behavior. Meta does not reject ads that exceed 125 characters — it silently truncates the rendered preview and appends 'See more' as a tappable link. The full text is delivered in the ad payload; users just don't see it. Ads Manager will, however, warn you with a yellow notice ('Your text may be shortened') once you cross the threshold. The warning is informational, not blocking.

Why the limit exists. Mobile feed cards are designed around a fixed vertical budget: profile row, primary text, media, headline/description strip, CTA button. Meta caps text height to roughly three lines on most devices so the creative and CTA stay above the fold as the user scrolls. 125 characters is what fits in those three lines at the default font size on a 390pt-wide iPhone viewport. Larger phones get slightly more; smaller and accessibility-text users get less.

Common gotchas:

  • Line breaks (\n) count as 1 character but consume a full line of vertical space, so two line breaks can push your visible copy from 125 to ~80 effective characters.
  • Curly quotes (“ ”) and em-dashes (—) count as 1 but break some third-party copy counters that assume ASCII.
  • RTL languages (Arabic, Hebrew) get the same code-point budget but Meta sometimes truncates earlier due to glyph width.
  • Hashtags count fully — #summersale2025 is 15 characters of your budget.
  • The first character cannot be whitespace; Meta strips leading spaces before counting.

Rules for fitting copy.

  • Front-load the offer or hook in the first 40 characters. That's what displays even on the smallest mobile breakpoints and in notification previews.
  • Keep the visible window self-contained. If a sentence ends at character 130, the user sees a fragment and a 'See more' — rewrite to close the thought by 122.
  • Avoid one long run-on. A short sentence at 60 characters plus a short sentence at 60 reads better than a 120-character compound.
  • Use line breaks deliberately for scannability, but count them against your budget.
  • Save URLs for the headline or description fields. A URL in primary text wastes 20–30 characters that the link preview already provides.

Worked rewrite. Original at 168 characters: 'Our brand-new noise-cancelling wireless earbuds deliver up to 36 hours of battery life and ship free anywhere in the US — try them risk-free for 60 days.' Trimmed to 124: 'New noise-cancelling earbuds. 36-hour battery, free US shipping, 60-day risk-free trial.' Same offer, hook lands at character 4, full sentence closes before truncation.

Example

A meal-kit advertiser tested two versions of the same offer. Version A (142 chars) truncated at 'Get 8 free meals plus free shipping on your first…'. Version B (118 chars): 'Get 8 free meals + free shipping on box one. Cancel anytime.' CTR on B was 1.8x higher and CPA dropped 31% — same landing page, same creative, same audience.

Tip — Paste your draft into the validator and watch the counter against the `125` mark, not the `3,000` max. If your offer or proof point lands between characters `100` and `140`, rewrite it to land before `100` — that's the danger zone where the most important word gets eaten by 'See more.'

Questions

Is the 125-character cutoff hard or does it shift by device?
It shifts. `125` is a safe planning number, but the actual cutoff is determined by line-height and viewport width at render time. iPhone SE users may see `~110` characters; iPhone Pro Max users may see `~135`. Users with accessibility text scaling enabled can see as few as `~80`. Designing to `125` covers roughly 90% of the install base, but front-loading the hook in the first `40` covers everyone.
Do emoji and special characters count differently than letters?
Meta's counter treats most emoji as `1` character, but compound emoji with ZWJ joiners (family emoji, professions with skin tones) can register as `2`–`5`. Visually, emoji are wider than letters, so they consume more of the rendered line even when the count says otherwise. Test in Ads Manager preview rather than trusting the raw counter — what matters is where the truncation actually falls on a real mobile render.

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