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.

For video served through a third-party ad server, Microsoft Invest says to transcode into FLV, MP4 and WebM and provide multiple bitrates: 500 kbps for mobile on cellular, 1200 kbps, and 2500 kbps for fast connections. Sume produces the single master; the three renditions come from your ad server or transcoder.
The VAST rules on the page
Microsoft does not restrict size or format for videos served by external ad servers, but VAST documents must pass its VAST Check, secure tags are required, and VAST URLs must avoid invalid characters. If you serve on Google inventory, it says duration should be a maximum of 15 or 30 seconds, and a skippable element is recommended for anything over 15.
| Item | Microsoft guidance |
|---|---|
| Renditions | FLV, MP4 and WebM |
| Mobile bitrate | 500 kbps |
| Mid bitrate | 1200 kbps |
| Fast connection bitrate | 2500 kbps |
| Length on Google inventory | 15 or 30 seconds maximum |
| Longer than 15 seconds | Skippable element recommended |
| Tags | Secure tags in all cases |
Cutting the master to 15 and 30
A trim job with duration of 15 and another with 30 gives two MP4 masters from one source, at $0.02 each according to the trim docs. The result URL is a new media.sume.com artifact and the source is untouched.
Because the output is a re-encode to H.264 in MP4 with AAC audio, it is a clean input for whatever creates the 500, 1200 and 2500 renditions.
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": "vast-cut-15"},
json={
"video_url": "https://media.sume.com/artifacts/artf_demo/master.mp4",
"start": 0,
"duration": 15,
"mode": "sync",
},
timeout=60,
)
resp.raise_for_status()
print(resp.json())
Limits
Sume's docs list no WebM or FLV output for trim, and no bitrate field. If your ad server needs the three renditions delivered, it must transcode, and many do this on ingest. Check yours before you build a step for it.
The page metadata shows a 2025 update, so confirm the bitrates with your Microsoft contact before a large buy.
Sources
Related posts
More in Use cases
- 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.
- Google Ads video action campaigns: 10 s minimum, three ratios
Google's spec page gives video action campaigns a minimum length of 10 seconds in 16:9, 9:16 and 1:1. Cut a master to length and ratio with Sume.
- Video ad end card images: Mintegral, Liftoff, Unity and Axon sizes
End card image sizes differ: Mintegral 1200x627, Liftoff portrait 1080x1920 up to 1 MB, Axon page image 270x480 minimum. Make them with Sume's Images API.
- Episode chapter timestamps and Reel cutdowns from one transcript
Instagram's own series lists timestamped segments for each episode. Build a chapter list and Reel cutdowns from one Sume transcript with video inspect and trim.
Written by Sume