TikTok Ads Character Limits & Caption Specs

TikTok has two different limits that matter: the technical cap the ad platform enforces, and the visible window before the caption gets truncated by the ... more clip. Most teams optimize for the wrong one. Here's the full spec sheet, with the truncation thresholds copywriters actually need.

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 hard limits (enforced by TikTok Ads Manager)

  • In-Feed Ads caption: 100 characters
  • Spark Ads caption: 2,200 characters (inherits from organic post limits)
  • TopView caption: 100 characters
  • Display Name (advertiser name shown above caption): 20 characters for English, 10 characters for double-byte languages (Japanese, Chinese, Korean, Thai)
  • Profile bio text: 80 characters
  • App name (for App Install ads): 40 characters
  • Brand name field (Spark Ads): 20 characters
  • CTA button: fixed picklist (Shop Now, Learn More, Download, etc.) — no custom text
  • Landing page URL: 1,024 characters including UTM parameters

The soft limit nobody tells you about

The caption visually truncates at roughly 40-50 characters on a standard iPhone, behind a ... more tap. Anything past that point only appears if the user taps to expand — which a single-digit percentage of viewers do. On smaller Android devices and when the CTA card is overlaid, the visible window can shrink to ~34 characters.

This is why "100 chars max" is a misleading spec. You're writing for ~40 characters of guaranteed visibility, with 60 more characters of fallback room for hashtags, mentions, and secondary context.

Why these limits exist

TikTok's caption sits in a vertical UI stack competing with the username, music attribution, CTA button, and side rail (like, comment, share, save). The platform clips captions to keep the video frame dominant — this is a design choice, not a technical one. The 100-char hard cap on In-Feed exists because TikTok originally treated paid placements as feed-native posts; Spark Ads inherit the organic 2,200 limit because they ARE organic posts being boosted.

Character counting gotchas

  • Emoji: count as 1 character in TikTok's UI counter, but consume 4 bytes in the underlying string. This matters if you're piping captions through an MMP or ad ops tool with a byte-based field limit.
  • Hashtags: the # counts. #fyp is 4 characters, not 3.
  • @mentions: same — the @ counts.
  • Line breaks: count as 1 character each. Two line breaks for a paragraph gap costs you 2.
  • CJK / Thai / Arabic: render as 1 character in the counter. RTL languages (Arabic, Hebrew) render right-to-left but the truncation point is still at the same character index from the start of the string.
  • Zero-width joiners (used in compound emoji like 👨‍👩‍👧): each ZWJ counts. A family emoji can eat 5-7 characters.

What happens when you exceed a limit

TikTok Ads Manager rejects the ad at upload — you can't even submit. There's no silent truncation on the ad itself. But the visible caption *will* silently truncate in feed at the ~40-char mark, with a ... more affordance. Users who don't tap never see the rest.

Fitting copy into the visible window

  • Front-load the hook or value prop in the first ~30 characters
  • Use a question or pattern interrupt as the opener (Wait — this actually works?)
  • Move hashtags to position 60+ so they're past the clip
  • Mentions and credits go after hashtags
  • Don't waste the first 40 chars on "Hey TikTok!" or "Check this out" — that's 20 characters of zero information
  • One emoji max in the visible window. Two or more eat your character budget without adding clarity.

Example

Original 60-char caption: Tired of breakouts ruining your week? Try our new serum today! (60)

Trimmed for the visible ~40-char window: Breakouts ruining your week? Fix in 7 days (42) — hook in the first 30, payoff before the clip. Hashtags #skintok #acne then land at character 45+, past the truncation.

Tip — Paste your caption into a notes app and add a `|` at character 40. Anything left of the bar is what 90%+ of viewers will read. If the `|` falls mid-word or before your hook, rewrite — don't just hope the truncation lands kindly.

Questions

Why does my TikTok caption look fine in Ads Manager but clipped in feed?
Ads Manager shows the full caption in its preview pane because the preview is wider than a real phone screen. In actual feed delivery, the caption truncates at roughly 40-50 characters behind a `... more` tap. Always test on a real device before launching, not in the desktop preview.
Do Spark Ads really allow 2,200 characters, and should I use them?
Yes, because Spark Ads boost an existing organic post and inherit the `2,200`-char organic limit. But the same `~40`-char visibility rule applies — the extra room is useful for SEO-style hashtag stacks, creator credits, and product details that motivated viewers will tap to read. Don't put your CTA at character 800.

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