Primary Text Character Limits by Network (2026)

Primary text is the body copy above or beside your creative on social feeds. Each network truncates at a different visible character count, and the hard limit is almost never what matters — the truncation point is. This page documents both.

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 →

Visible limits vs. hard limits. Every network publishes a hard character limit (the point at which the ad manager rejects your copy) and an unpublished *visible* limit (the point where the platform inserts a 'See more' link or clips the line). The hard limit is a technical ceiling. The visible limit is what actually controls whether your hook gets read. They are rarely the same number.

Network-by-network reference:

  • Meta (Facebook + Instagram) Feed primary text: 125 characters visible on mobile before 'See more'; hard limit 3,000. Stories, Reels, and Carousel inherit the same 125-character mobile truncation.
  • TikTok In-Feed Ad caption: 100 hard limit on paid In-Feed creative; roughly 50 characters visible before the caption clips behind the right-rail UI.
  • TikTok Spark Ads: inherits the organic post limit of 2,200 characters, but feed truncation still hits at ~50 visible.
  • LinkedIn Sponsored Content intro text: 600 hard limit; ~150 visible on desktop before 'See more', and closer to ~100 on mobile depending on viewport.
  • LinkedIn Message Ads body: 1,500 characters, no truncation (rendered in full inside the inbox UI).
  • X (Twitter) Promoted Posts: 280 characters total for standard accounts. X Premium accounts can post up to 25,000, but Promoted Post placement still favors the 280-character render.
  • Reddit Promoted Post body (text): 40,000 characters for text posts; link posts use only title (300).
  • Pinterest Promoted Pin description: 500 hard limit, ~50–75 visible depending on placement.

Why these numbers exist. The 125-character Meta limit isn't arbitrary — it's the line count that fits above the 'See more' fold on a 375px-wide iPhone viewport (the most common mobile screen Meta optimizes for). TikTok's ~50-char visible window exists because the right-rail UI (profile, like, comment, share, sound) eats roughly 60px of horizontal space, leaving very little caption real estate. LinkedIn's 150-char desktop visible reflects the original 2017 feed redesign and hasn't moved since.

What happens when you exceed the limit:

  • Hard limit exceeded: ad rejected at upload, error returned in the editor. No silent fail.
  • Visible limit exceeded: copy truncates mid-sentence with an ellipsis or 'See more' link. The ad still serves; the hook just gets cut.
  • Special characters: emoji count as 2-4 bytes each but typically register as 1-2 characters in Meta's counter. Test before assuming.
  • RTL languages (Arabic, Hebrew): same character limits apply, but the truncation point can render differently because of bidirectional text wrapping. Always preview in the actual feed.
  • Line breaks: each \n counts as one character on Meta and LinkedIn. Three line breaks in a row = three characters of your budget gone for whitespace.

Rules for fitting copy inside the visible window:

  • Front-load the offer or hook in the first 40–50 characters. That's the floor across every network.
  • Treat anything past the truncation point as *qualifier copy* — proof, specs, disclaimers — not the sales pitch.
  • Don't end the visible portion mid-clause. If 'See more' has to appear, make it appear after a natural pause, not 'free shipping on orders over...'.
  • Avoid front-loading brand name. 'Nike — running shoes built for...' wastes 7 characters on a logo that's already visible in the ad.
  • Numerals beat words. '50% off' is 7 characters; 'fifty percent off' is 17.

Example

Original headline (60 chars): Discover our new running shoes designed for marathon training

Trimmed for a 30-char field: Marathon-ready running shoes (28 chars) — keyword front-loaded, brand context dropped, intent preserved.

For a 125-char Meta primary: Marathon-ready running shoes — tested at 26.2 miles. Free returns, ships in 24 hours, sizes 6–14 in stock now. (113 chars, fits with margin.)

Tip — Build your copy against the *visible* limit, not the hard limit. If your value prop doesn't survive being cut at character 125 (Meta), 50 (TikTok), or 150 (LinkedIn), rewrite it. The hard limit is for legal disclaimers and SKU lists, not selling.

Questions

Do emoji and special characters count differently against the limit?
Yes, but inconsistently across platforms. Most emoji are 4 bytes in UTF-8 but register as 1-2 characters in Meta and LinkedIn ad counters. TikTok counts most emoji as 2 characters. Smart quotes, em-dashes, and zero-width joiners can also count as multiple characters. Always paste your final copy into the actual ad manager to confirm — never trust an external counter for the last 10% of your budget.
Does longer primary text hurt ad performance on Meta?
Not directly — Meta's auction weights engagement signals (CTR, video watch time, conversions) far more than copy length. The indirect cost is real though: anything past 125 characters sits behind 'See more' on mobile, which means the qualifying detail that would have closed the click is invisible to most of your audience. Long copy that front-loads the offer in the first 125 chars performs fine. Long copy that buries the hook converts worse than a tight 80-character version.

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