TikTok ad minimum 540x960: Sume's 1080x1920 default clears it
TikTok's ad page sets minimums of 540x960 (9:16), 960x540 (16:9) and 640x640 (1:1). Timeline renders 1080x1920 by default, and width and height are settable.

TikTok's ad specification page lists minimum sizes for non-Spark video ads: 540x960 for vertical 9:16, 960x540 for 16:9 and 640x640 for 1:1. A Sume Timeline render defaults to 1080x1920, which is twice the vertical minimum on each side. For the other two ratios you set output.width and output.height yourself.
The three minimums against what Timeline can output
The Timeline doc says width and height are even integers from 256 to 2160. All three TikTok minimums fit inside that range with room above them.
| Ratio | TikTok minimum | Timeline output.width x height to set |
|---|---|---|
| 9:16 (page recommends) | 540x960 | 1080x1920 (the default) |
| 16:9 | 960x540 | 1920x1080 |
| 1:1 | 640x640 | 1080x1080 |
Setting the size
Only send width and height when you need something other than the default. Sources that are not the same shape as the output are placed by video[].fit, which is cover by default, so a clip that is 16:9 gets cropped to fill a 9:16 frame. Use contain or blur to keep the whole picture.
Stay inside the range: width and height must be even integers from 256 to 2160. The doc also says you cannot send codec or filtergraph keys. The size is the only geometry knob.
{
"audio": { "mode": "silence", "duration_seconds": 15 },
"video": [{ "source_url": "https://media.sume.com/artifacts/artf_demo/clip.mp4", "start": 0, "duration": 15 }],
"output": { "width": 1080, "height": 1080 }
}Reading the file back
Do not trust the settings alone. After the render, read the real width and height from the file with ffprobe and compare them to the page's minimums. A Timeline job that you configured at 1080x1920 should report that, but a clip from another route, such as a trim with an output conform or a crop from the video filter, may not.
The conform on video trim accepts width and height from 256 to 2160 and applies to exact mode only. Pick values that keep the ratio you want, since the doc describes the fields but this post did not test how a mismatched ratio is handled. If you conform to a size with a different ratio from the source, look at the result before you publish.
Also remember what the TikTok page does not give: minimums are floors, and the page does not say that larger is always better. A 1080x1920 file is a safe vertical default, and the 500 MB cap and 516 kbps floor still apply on top of it.
Caveats
The TikTok page calls 9:16 the recommended ratio and puts the minimums on non-Spark ads. It lists no size rows for Spark Ads, so do not apply these numbers to them. If you start from a short 720p landscape clip, cropping it to vertical may leave you under 540 pixels wide. The reframe guide shows when to regenerate instead.
Sources
Related posts
More in Use cases
- TikTok ad safe zones vs burned-in captions: anchor_ratio
TikTok says its safe zone varies with ratio, caption length and format. Sume caption design has an anchor_ratio to move a burned-in line.
- TikTok 6-slide 9:16 carousel: Qwen Image n=4 plus n=2 is 15 cents
A six-slide 9:16 slideshow takes two Sume image calls because n caps at 4. Qwen Image bills $0.025 per slide, so the set is $0.15. Code and cost table.
- TikTok Spark Ads vs standard ad video specs: what to render
TikTok lists .mp4 or .mov and no duration limit for Spark Ads, but 9:16 minimums, 500 MB and up to 10 minutes for non-Spark ads. Sume returns MP4.
- Make a Top 5 vertical video from five stills with Sume Timeline
Five images, a 30-second silent Timeline at 1080x1920, then burned captions: the slot math, the still-motion limit and the cost in Sume.
Written by Sume