TikTok non-Spark ad file check: 500 MB, 10 minutes, 516 kbps floor
TikTok's non-Spark spec: 9:16 at 540x960 or more, up to 10 minutes, 500 MB or less, 516 kbps minimum. A 15-second 1080p cut sits far inside the limits.

A TikTok in-feed ad that is not a Spark Ad needs at least 540x960 pixels in 9:16, a duration up to 10 minutes, a file of 500 MB or less, and a bitrate of at least 516 kbps (TikTok Ads Help, read 2026-10-05). Holiday cuts are short, so the one limit most likely to bite is the bitrate floor, not the size cap.
The limits side by side
Spark Ads are different: the same page lists .mp4 or .mov and no duration restriction for them. The table is for the plain in-feed path.
| Item | Requirement | What it means for a 15 s holiday cut |
|---|---|---|
| Vertical size | 9:16, at least 540x960 px | A 1080x1920 render clears it |
| Duration | Up to 10 minutes | 15 s is 2.5% of the cap |
| File size | 500 MB or less | A 15 s clip is nowhere near it |
| Bitrate | At least 516 kbps | The only floor to measure |
| Formats | .mp4, .mov, .mpeg, .3gp, .avi | MP4 is the safe choice |
Doing the arithmetic
The 10-minute cap is 600 seconds, so a 15-second ad uses 15 / 600 = 2.5 percent of it. For file size, 500 MB over 15 seconds would be a bitrate of roughly 266 Mbps, which no ad render approaches. In practice you never hit the size cap on a short ad; you check that the encoder did not squeeze the stream below the floor.
Caption copy has its own rule on the same page: ad text is displayed in white in a uniform font that cannot be customized, and it does not support clickable links, @ symbols, or hashtags. Keep the offer inside the video frame as burned text and the post text plain.
Why the bitrate floor is the real check
Encoders for short clips often target a low bitrate, and a flat-colored holiday graphic can compress below 516 kbps without looking bad. That is exactly the file TikTok will refuse. If a probe shows a rate under the floor, re-render rather than uploading and hoping.
Duration and size checks are the same at any length, which is why the table keeps the 15-second column: it shows your real margin against each cap.
Trim, then probe
If a longer master has the hook you want, cut it with POST /v1/video-trim ($0.02 per job). It accepts a media.sume.com clip, a start, and one of end or duration (0.2 to 900 seconds), and returns a new MP4. The default precision is exact, a frame-accurate re-encode, which is what you want for an ad cut. Import the source first with POST /v1/media-imports, since the API does not fetch from the open internet.
Then check the finished file's probed bitrate against 516 kbps before uploading. A preflight takes seconds; a rejected upload on launch morning does not.
Sources
Related posts
More in Use cases
- TikTok has labelled 1.3 billion videos: what that means for your ads
TikTok says it had labelled over 1.3 billion videos by Nov 2025 and uses C2PA Content Credentials. What an ad account should assume about AI clips.
- TikTok Shop allows AI dubbing: localize a product video
TikTok Shop's AI policy lists AI-assisted translation and dubbing as permitted. Disclose synthetic voices, and note LIVEs ban AI voices. Batch per language.
- Prove an AI clip still shows the right color and size
TikTok Shop bans AI that alters a product's size, color, material or features. Pull 1-24 stills with Sume video frames and compare them to the listing.
- TikTok Shop bans AI-enhanced before-and-after clips: claims checklist
TikTok Shop bars digitally enhanced before-and-after, instant-result claims and medical claims. Lint caption text before you burn it into a video.
Written by Sume