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.

5 min readSume
All posts

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.

Third-party VAST video guidance, read 2026-10-03
ItemMicrosoft guidance
RenditionsFLV, MP4 and WebM
Mobile bitrate500 kbps
Mid bitrate1200 kbps
Fast connection bitrate2500 kbps
Length on Google inventory15 or 30 seconds maximum
Longer than 15 secondsSkippable element recommended
TagsSecure 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

All Use cases posts

Written by Sume