TikTok Non-Spark Ad Upload Specs: Check Your Render Before You Upload

TikTok non-Spark ads need 9:16 at 540x960 or more, up to 500 MB, 516 kbps or higher. Use Timeline 1.0, video trim and video inspect to meet and check them.

5 min readSume
All posts

The short answer

TikTok's ad specification page lists, for non-Spark ads: vertical 9:16 at 540 by 960 pixels or more, horizontal 16:9 at 960 by 540 or more, square 1:1 at 640 by 640 or more; formats .mp4, .mov, .mpeg, .3gp and .avi; a duration of up to 10 minutes; a size of 500 MB or less; and a bitrate of 516 kbps or more (read 2026-10-09). Sume's Timeline 1.0 default is 1080x1920, which is above the vertical minimum.

The spec as a checklist

Treat the table as a gate on the file that leaves your pipeline, not on the prompt. A generated clip can look fine and still miss a number, especially bitrate and size after an extra re-encode.

TikTok non-Spark ad specs (TikTok Ads Help, read 2026-10-09)
ItemRequirement
Vertical9:16, at least 540x960 px
Horizontal16:9, at least 960x540 px
Square1:1, at least 640x640 px
Formats.mp4, .mov, .mpeg, .3gp, .avi
DurationUp to 10 minutes
File size500 MB or less
Bitrate516 kbps or more
Ad captionsWhite, uniform font that cannot be customized; no clickable links, @ symbols or hashtags

Where Sume helps

Timeline 1.0 returns an MP4 and defaults to 1080x1920. output.width and output.height take even values from 256 to 2160, so you can set 720x1280 to cut size. The default frame rate matches the sources, and a forced rate that differs from the source adds judder, which the job reports as output_fps_resamples_sources.

Video trim with precision: exact can conform an output to { width, height, fps } with fps 24, 25, 30 or 60, at $0.02 per job. Run video inspect on the result; it returns probe facts for the clip. Check the probe result for the fields it returns; if bitrate is not among them, read it with your own tool and check file size from the download header.

Do the check on the final file, after captions and any trim, because each step can re-encode. Then keep the passing render as the master and name it with its resolution, so the next variant starts from a known good spec. If an upload is refused, change one number at a time and rerun the check instead of re-generating the clip. A re-render in Timeline 1.0 with a different output.width is $0.10 per minute, far cheaper than a new generation. Also confirm the fit of every clip slot: cover fills the frame and crops the edges, while contain leaves bars, and bars inside a 9:16 file still count as part of the 9:16 picture.

  • Burned-in captions from Sume's caption job are part of the picture; TikTok's own ad captions are separate and white.
  • Keep links, @ symbols and hashtags out of the ad caption field, which TikTok says does not support them.
  • A 15-second 1080x1920 ad at 8 Mbps is about 15 MB, far below 500 MB; the bitrate floor is the check that matters.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume