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.
- TikTok bans AI-generated endorsements: avatar demo or testimonial?
A brand-agency summary reports TikTok prohibits AI-generated endorsements. How to tell an avatar product demo from a testimonial before you write the script.
- TikTok AI label penalties: the four tiers one summary reports
A third-party summary lists four TikTok penalty tiers for unlabeled AI content, from a warning to a ban. What it says, what it leaves out, and what to log.
- TikTok AI label triggers mapped to the Sume tools that cause them
A reported list of TikTok label triggers, matched to the Sume surface that produces each one: Avatar 1.0, Face Swap Beta, Images, and Video.
Written by Sume