Unity Ads video specs: 60 s, H.264 MP4, 100 MB cap
Unity's user acquisition docs set video at 60 seconds or less, H.264 in MP4, 16:9 or 9:16, 100 MB max, and an end card. What Sume's trim step can and cannot do.

Unity's video asset specifications for user acquisition ask for an MP4 with H.264, 60 seconds or less, in 16:9 or 9:16, under 100 MB, and every video ad must also carry an end card. Sume can cut a master to length and conform it to H.264 MP4, but it has no file-size field, so the 10 MB recommendation is something you check on the finished file.
This page covers the video side only. The end card is a separate asset that Unity documents on its own page, which this post does not cover.
What Unity lists
Unity re-encodes uploads for different bitrates and network speeds, so the file you send is a source, not the final delivery. It also says long video ads of 30 to 60 seconds are in beta, so features and documentation may change.
| Item | Unity value |
|---|---|
| Maximum duration | 60 seconds or less |
| Codec and container | H.264 in MP4 |
| Aspect ratio | 16:9 landscape or 9:16 portrait |
| File size | 10 MB recommended, 100 MB maximum |
| End card | Required on every video ad |
| Apple app badges | Only the Apple App Store logo may appear |
Cutting to Unity's length with Sume
Video trim takes one clip already on media.sume.com and returns a new MP4 for a start and a duration. The default exact precision is a frame-accurate re-encode with libx264 and yuv420p, and kept audio is remuxed as AAC, which lines up with Unity's H.264 and MP4 requirement. The cut can be 0.2 to 900 seconds, so a 60 second ceiling is yours to enforce.
Trim is priced at $0.02 per job according to the docs, and the docs tell you to confirm the live rate in the catalog. This script cuts the first 30 seconds of a master in sync mode.
import os
import requests
key = os.environ["SUME_API_KEY"]
resp = requests.post(
"https://api.sume.com/v1/video-trim",
headers={"Authorization": f"Bearer {key}", "Idempotency-Key": "unity-cut-30"},
json={
"video_url": "https://media.sume.com/artifacts/artf_demo/master.mp4",
"start": 0,
"duration": 30,
"mode": "sync",
},
timeout=60,
)
resp.raise_for_status()
print(resp.json())
What Sume does not control
The trim docs list codec and crf among the fields the server rejects, because it compiles ffmpeg itself. So you cannot tune bitrate to land under 10 MB. Check the finished file size, and if it is over, shorten the cut or drop to a lower output size using the output width and height, which accept 256 to 2160.
Orientation is your call. Unity's page does not say one orientation is required, so decide per campaign and keep the master in the orientation you will upload. Conforming a landscape source to portrait through output is a pixel conform, not a reframe, so look at a still before you upload.
Sources
Related posts
More in Use cases
- Upload AI-made sound to Freesound or Pixabay: tags and labels
Freesound allows generative AI sounds with a GenAI tag and the model named; Pixabay wants an AI-generated checkbox. How to record the model from a Sume job.
- Use a trending TikTok as a reference for an original YouTube Short
Study a trend without re-uploading it. Sume's trending search returns TikTok metadata, not video files, which fits YouTube's Oct 2026 originality push.
- VAST video ads: Microsoft wants 500, 1200 and 2500 kbps files
For third-party VAST video, Microsoft Invest recommends three bitrates and 15 or 30 s on Google inventory. What a Sume master gives you and what it lacks.
- Veterans Day 2026 tribute: a silent photo slideshow with caption cues
Veterans Day is Wed, Nov 11, 2026. Build a respectful, silent tribute from employee-provided photos with caption cues and a Timeline join, with consent first.
Written by Sume