TikTok Spark Ads: no duration limit listed, MP4 or MOV, 4 lines
TikTok's in-feed ads page lists Spark Ads as .mp4 or .mov, no duration restriction, caption taken from the organic post up to four lines.

TikTok's Auction In-Feed Ads specifications page lists Spark Ads as .mp4 or .mov with no video duration restriction, and says the ad caption is extracted directly from the organic video's caption, up to four lines. Every other spec on that page (ratio, size, bitrate, 10-minute cap) is listed under Non-Spark Ads only.
That is a change of emphasis from older write-ups, including our earlier Spark Ads post, which described a 10-minute ceiling. This post follows the page as I read it on 2026-10-02: TikTok Auction In-Feed Ads | TikTok Ads Manager. If your Ads Manager shows something else, trust Ads Manager.
What does the page list for Spark vs non-Spark?
The split matters because a Spark Ad reuses an organic post, so the organic post's own rules apply. The page itself says nothing about Spark ratio, resolution or file size, which is not the same as saying there are none.
| Spec | Spark Ads | Non-Spark Ads |
|---|---|---|
| Format | .mp4 or .mov | .mp4, .mov, .mpeg, .3gp, .avi |
| Duration | No restrictions | Up to 10 minutes |
| File size | Not listed | 500 MB or less |
| Ratio and size | Not listed | 9:16 min 540x960, 16:9 min 960x540, 1:1 min 640x640 |
| Caption | From the organic caption, max 4 lines | White, uniform font, no links, @ or hashtags |
If duration is open, what limits the organic post?
The organic upload does. For API posting, the Content Posting API's creator info call returns max_video_post_duration_sec for that specific creator, and a video longer than that cannot be posted by the API. TikTok's Direct Post reference also limits the caption (title) to 2200 UTF-16 runes and the access token to 6 requests per minute for the post call.
So the practical duration ceiling for a Spark candidate is whatever the creator's account can post, not a number on the ad spec page.
How do I keep an AI clip safe for either path?
Export to .mp4, which satisfies both columns. Sume's trim returns a new MP4, so a cut clip lands in a format both rows accept. Trim with precision: "exact" (the default) for a frame-accurate cut:
- Poll
GET /v1/jobs/:id/status, then readvideo_urlfromGET /v1/jobs/:id/result. - Source up to 1800 s and output up to 900 s are the trim caps, so very long cuts need a split.
- If the Spark caption matters, write it in the organic post: four lines are used, and Sume has no hand in the caption field.
curl -X POST https://api.sume.com/v1/video-trim \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: spark-cut-001" \
-d '{"video_url":"https://media.sume.com/artifacts/artf_demo/ad.mp4","start":0,"duration":30}'What should I still verify in Ads Manager?
Run the upload through Ads Manager preview before spending. The page does not list a Spark ratio, so a landscape organic post may render differently from a vertical one. Sume cannot preview the ad placement and does not call the TikTok Marketing API; it prepares the file and nothing else.
Sources
Related posts
More in Use cases
- TikTok Spark Ads translation skips text burned into the video
TikTok's viewer-side Spark Ads translation does not translate text inside the creative or AI-generated ads. Burn captions per market instead.
- Symphony Creative Studio reference clips must be under 10 seconds
TikTok's Symphony help page limits reference videos to under 10 seconds and single scenes. Cut your clip first with Sume's video trim, then upload it.
- TikTok Translate and Dub: lip-sync limits and the AI label
TikTok's Translate and Dub in Symphony Creative Studio can clone the voice and lip-sync, but not for crowds or covered mouths. Texas and Illinois are excluded.
- Preflight an AI UGC ad for TikTok: is the disclosure on screen?
Undisclosed commercial content can be reach-limited, one summary reports. Use Sume video frames and inspect to confirm the burned-in line before you upload.
Written by Sume