TikTok in-feed ad caption rules: no hashtags, @ or clickable links
TikTok non-Spark in-feed ad captions are white in a fixed font, cannot hold links, @ symbols or hashtags. Where a burned-in caption fits instead.

A non-Spark TikTok in-feed ad caption is shown in white in a uniform font you cannot customise, and it cannot include clickable links, @ symbols or hashtags. Anything you want styled, coloured or timed has to be part of the video itself, which is what burned-in captions are for.
The rules are from TikTok's Auction In-Feed Ads specifications, read 2026-10-02. The Sume part is Video captions.
What does the ad caption field allow?
The page lists three constraints for Non-Spark captions. Display is white in a uniform font. There is no customising it. No links, no @ mentions and no hashtags.
For Spark Ads the page says the caption is extracted from the organic video's caption, up to four lines. Hashtags and mentions are supported in the Content Posting API title field per TikTok's Direct Post reference, so a Spark Ad's caption comes from a field that accepts them, though the in-feed page does not say how they render in the ad.
| Ad type | Caption source | Rules listed |
|---|---|---|
| Non-Spark | Typed in Ads Manager | White, uniform font, no links, @ or hashtags |
| Spark | Organic post caption | Max 4 lines |
Can a burned-in caption carry what the field cannot?
Burned-in text is pixels, so it is not the ad caption field and TikTok's caption rules do not govern its font. It is still subject to TikTok's ad review like any creative, and the page does not say otherwise, so keep claims accurate and avoid link-like text you cannot make clickable.
Sume's POST /v1/video-captions burns styled speech captions (slam, punch, tiktok-green, black-outline and others) or authored cues. It costs $0.20 per job for videos up to 60 seconds. The design field overrides colours and placement for one request, except on punch and tiktok-green.
How do I add a hook line without a hashtag?
Use authored cues for the first seconds, then let speech captions take over in a second pass if needed. Fields script_text, words, cues and segments are mutually exclusive in one request, so run two jobs rather than mixing them.
curl -X POST https://api.sume.com/v1/video-captions \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: hook-cue-001" \
-d '{"video_url":"https://media.sume.com/artifacts/artf_demo/ad.mp4","style":"black-outline","cues":[{"text":"Free shipping this week","start":0,"end":2.5}]}'What does Sume not do?
Sume does not fill the Ads Manager caption field and does not enforce TikTok's caption rules; a hashtag you burn into pixels is not blocked by the API. Check the final video against the ad policy, and see AI disclaimers on TikTok ads if the clip is AI-generated.
Sources
Related posts
More in Use cases
- TikTok video package opening and end scenes: 1-10 seconds, 720x1280
TikTok's video package page lists opening and end scenes of 1 to 10 seconds in MP4, MOV, FLV, MKV or WebM, and Lottie templates under 16 s. Trim with Sume.
- Auto-select creative assets missing in TikTok Ads Manager? Why
TikTok limits auto-selected creatives to Smart+ app promotion and select lead gen advertisers; a July notice widens lead gen. Check, then self-supply.
- TikTok auto-selected creatives: the five exclusion filters
TikTok lets you exclude auto-selected videos by source, creator, caption text, date or single video. Batch your clips by date so one rule retires a round.
- TikTok auto-selected creatives not adding my new videos: why
After you publish, TikTok keeps adding new creator content but not new videos from your own content. Add them by editing ad settings; batch the variants first.
Written by Sume