Mobile game ad cutdowns: one master to 6, 15, 30 and 60 seconds
Mintegral recommends 6/15/30/60 s, Unity and Axon cap at 60 s, Liftoff at 180 s. Cut one portrait master to each length with Sume's trim API for $0.02 a job.

Four app-install networks publish their video limits, and one master can serve all four if you cut it to length. Mintegral recommends 6, 15, 30 and 60 seconds, Unity allows 60 or less, AppLovin Axon allows up to 60, and Liftoff lists 180 for portrait. Sume's video trim does the cutting.
The limits side by side
A 60 second portrait cut is inside every one of these networks, and a 30 or 15 second cut is too.
| Network | Length on its page | Portrait size |
|---|---|---|
| Mintegral | 6, 15, 30 or 60 recommended, up to 120 | 1080x1920 |
| Unity | 60 seconds or less | 9:16 |
| AppLovin Axon | Up to 60 seconds, unskippable | 9:16, minimum 270x480 |
| Liftoff | 180 seconds maximum | 1080x1920 |
The cutdown loop
Each trim job is its own call, with its own idempotency key, so use a key per length. The default precision is a frame-accurate re-encode, so each result is a new MP4 and the master is untouched. Four cuts cost $0.08 at the docs' rate.
The cut starts where you say. A 6 second version needs its own start, usually the strongest beat, so pass a different start per length instead of always 0.
import os
import requests
key = os.environ["SUME_API_KEY"]
cuts = {6: 12.0, 15: 8.0, 30: 0.0, 60: 0.0}
for seconds, start in cuts.items():
resp = requests.post(
"https://api.sume.com/v1/video-trim",
headers={"Authorization": f"Bearer {key}", "Idempotency-Key": f"game-cut-{seconds}"},
json={
"video_url": "https://media.sume.com/artifacts/artf_demo/master.mp4",
"start": start,
"duration": seconds,
"mode": "sync",
},
timeout=60,
)
resp.raise_for_status()
print(seconds, resp.json())
Limits
If the master is shorter than start plus duration, the docs say the end clamps and the result warns trim_clamped_to_source, so a 60 second request on a 45 second master returns 45. Check duration_seconds.
None of these pages publishes a performance claim for a given length beyond Mintegral's remark that 60 seconds or under generally performs best. Treat the rest as test cells, not rules.
Sources
Related posts
More in Use cases
- Move an object in a photo with AI: erase, then place with two masks
No Sume image model has a move operation. Move an object by erasing it with one mask and placing it with a second, using GPT Image 2.5 and Python.
- Movember 2026 team update videos from phone photos, one per week
Movember asks people to talk about men's health. Make four weekly update clips for a fundraising team page from phone photos, with caption cues you wrote.
- Movie and TV clip Shorts: what YouTube's help calls original
Unedited movie or TV clips are ineligible on Shorts. What YouTube's pages allow instead, and how to cut trailer-style Shorts from your own film or series.
- Multi-speaker dub: 32 speakers on ElevenLabs, a voice per line on Sume
ElevenLabs dubbing handles up to 32 speakers per file. On Sume you give each speaker a voice, make TTS jobs per line, and join up to 20 parts per concat.
Written by Sume