Facebook in-stream ads: video specs and the 15-second rule
Facebook in-stream video ads: 16:9 or 1:1, at least 1080×1080, 5–15 s on desktop. Ads of 15 s or less play in full; longer ones stop at 15 s.

Facebook in-stream ads are video ads that play before, during, or after videos people watch on Facebook, on desktop and mobile. Meta recommends 16:9 or 1:1 video of at least 1080×1080 pixels; an ad of 15 seconds or less plays in full, while a longer one shows its first 15 seconds and then truncates, with a card viewers can click to resume it.
Meta's specs are quoted from its Ads Guide page for Facebook in-stream video, which shows the Awareness objective, read on 2026-09-27; they can change. The Sume facts come from Video generation, Timeline 1.0, and Video captions.
What are Facebook's in-stream video ad specs?
Meta splits the page into design recommendations, text recommendations, and technical requirements. Only the last group is labeled a requirement, and even its durations may vary by objective.
| Spec | Meta's value | Listed as |
|---|---|---|
| File type | MP4, MOV, or GIF | Design recommendation |
| Ratio | 16:9 or 1:1 | Design recommendation |
| Resolution | At least 1080 × 1080 pixels | Design recommendation |
| Video settings | H.264, square pixels, fixed frame rate, progressive scan, stereo AAC at 128 kbps+ | Design recommendation |
| Captions | Optional, but recommended | Design recommendation |
| Sound | Optional, but strongly recommended | Design recommendation |
| Primary text, headline | 125 characters, 40 characters | Text recommendation |
| Duration on desktop | 5 to 15 seconds; may vary by objective | Technical requirement |
| Duration on mobile | 5 seconds to 10 minutes; may vary by objective | Technical requirement |
| Maximum file size | 4 GB | Technical requirement |
How do in-stream ads play, and what happens after 15 seconds?
Meta's page describes the playback like this:
- The ad can play before, in between, or after the main video. An ad in between can show up after 15 seconds of the main video. In-stream ads can also appear in Facebook Live streams from a select group of approved gaming, entertainment, and sports partners.
- An ad of 15 seconds or less plays for its full duration. Ads may also be served as skippable, which lets the viewer skip after the first 5 seconds.
- A longer ad shows its first 15 seconds and then truncates. Viewers can watch it in full by clicking the context card that appears below the main video.
How do I make an in-stream video ad with AI?
Generate a 16:9 or 1:1 clip of 5 to 15 seconds: that fits the desktop range and plays in full. On Sume, POST /v1/videos takes aspect_ratio, resolution, and duration, and GET /v1/videos/models lists each model's supported_aspect_ratios, supported_resolutions, and supported_durations. Most models stop at 15 seconds.
Meta strongly recommends sound. generate_audio defaults to the model's audio capability, and the docs' seedance-2 record reports generate_audio: true, 1:1 and 16:9, 1080p, and 4–15 seconds, as in the request below. Three more things to check:
- Shape: in today's catalog code, the four Seedance ids,
kling-3,wan-3.0,minimax-h3, andminimax-h3-maxlist both 16:9 and 1:1;gemini-omni-flash-1.1takes 16:9 or 9:16 only. - Size: every v1 model reports
supported_sizes: null, so a resolution tier such as1080pis not a published pixel size. To deliver exactly 1920×1080 or 1080×1080, render the clip through Timeline 1.0 with thatoutput(even edges from 256 to 2,160). Today a Timeline render's sound comes only from its audio spine, so detach the clip's audio and pass it asaudio.url. - Captions: Meta recommends them.
POST /v1/video-captionsburns them from the clip's speech, or from timedcuesyou write when the clip has none. Today it takes sources of up to 60 seconds that carry an audio track, which covers any desktop in-stream length.
curl -X POST https://api.sume.com/v1/videos \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: instream-square-001" \
-d '{
"model": "seedance-2",
"prompt": "Slow orbit around a ceramic coffee mug on a walnut table, morning light",
"aspect_ratio": "1:1",
"resolution": "1080p",
"duration": 15,
"generate_audio": true
}'Which in-stream specs can't Sume set for me?
A few parts of the spec sit outside what Sume controls:
- Encoding: which of Meta's video settings a Sume file meets, and which you should check with your own tool, is covered in Meta video ad specs.
- Length past 15 seconds: mobile in-stream allows up to 10 minutes, but a longer ad is truncated at 15 seconds.
seedance-2.5andwan-3.0make clips up to 30 seconds, and Timeline 1.0 joins clips into renders of up to 1,800 seconds. - Objectives: Meta's Ads Guide has a separate in-stream spec page per objective and shows which objectives each placement supports. Sume makes the file; the campaign itself is set up in Meta's tools.
Sources
Related posts
More in Media tools
- How to fix audio delay in a video by shifting the sound
Fix a video whose sound runs late or early: detach the audio and re-render the clip with the offset set as audio.source_in or the slot's source_in.
- How to freeze frame a video: hold the last or any frame
Freeze a video's last frame with one tpad filter call, or hold any frame mid-clip as a still between two parts of the clip in a Timeline render.
- How to generate an SRT file from a video
To generate an SRT file from a video, transcribe it with timestamps and write each timed sentence as a numbered block. Sume's STT returns timed JSON.
- Hard subtitles vs soft subtitles: what's the difference?
Hard subtitles are burned into the picture and always show; soft subtitles are a separate track viewers can turn off. When to use each, and how.
Written by Sume