Meta Reels ads convert non-9:16 media: send your own 9:16 clip
Meta says Reels placement can apply automatic templates that convert non-9:16 media. Render the 9:16 yourself with Sume timeline fit modes and keep the framing.

If you hand Meta a 16:9 or 1:1 video for a Reels placement, Meta may reframe it for you. Its Reels ads update lists "automatic templates that convert non-9:16 media to 9:16 media" among the creative and format optimizations available on Reels, and says some of them may be applied automatically when you select the Reels placement (read 2026-10-04). The way to keep your own framing is to hand over a finished 9:16 file. On Sume that is one Timeline 1.0 render with a fit mode you pick.
A caveat on the source: the Meta page we read is dated October 10, 2023, so treat it as a description of the feature family, not of today's exact defaults. Check your ad's preview in Ads Manager before you spend.
What Meta's page says, and what it does not
The same page names other Reels optimizations: 3D motion and depth, aspect ratio variance, and image and video enhancements such as filters that sharpen color and improve resolution. It does not publish how the template decides where to crop or where to put bars, and it does not give a pixel size for the converted file.
That gap is the reason to render your own. If a speaker sits left of center in a 16:9 master, an automatic crop is a guess. A render you made is a decision you can look at.
| Meta lists | Who decides the framing | What you do about it |
|---|---|---|
| Automatic templates, non-9:16 to 9:16 | Meta, when applied | Upload a 9:16 file so there is nothing to convert |
| Aspect ratio variance | Meta | Preview each placement before launch |
| Filters for color and resolution | Meta, when applied | Judge the preview against your own render |
| Music for single image Reels ads | You, at campaign creation | Choose a track or ship a finished soundtrack |
Pick the 9:16 on purpose with Timeline fit modes
Timeline 1.0 renders 1080x1920 by default and gives every video slot a fit of cover, contain, stretch or blur (Timeline 1.0 docs). cover fills the frame and crops the overflow. contain keeps the whole picture and leaves bands. blur keeps the whole picture and fills the bands with a blurred copy of the clip. stretch fills the frame by distorting the picture, so it is almost never what you want for people.
If cover crops the wrong part of a 16:9 shot, crop first. The video filter takes a crop op as fractions of the source frame (x, y, width, height from 0 to 1, with x+width and y+height at most 1), so you can move the window to the speaker without knowing the pixel size. The filter is $0.02 per encode and POST /v1/video-filter/check validates the program for free.
- Product on a neutral background:
coverusually works. - Wide scene where every edge matters:
blurkeeps it all in frame. - Off-center subject: crop with the video filter, then
cover.
Preview the render before it bills
POST /v1/timeline-1.0/plan is unbilled. It validates the document, checks that every URL is a Sume-hosted file, and returns the duration, segment count and estimated cost without creating a job. Media must already be on media.sume.com. The script below plans a one-clip 9:16 render with blur and prints the estimate.
import json, os, sys, urllib.request
video_url = sys.argv[1] # a media.sume.com clip in your workspace
body = {
"audio": {"mode": "silence", "duration_seconds": 8},
"video": [{"source_url": video_url, "start": 0, "duration": 8, "fit": "blur"}],
"output": {"width": 1080, "height": 1920},
}
req = urllib.request.Request(
"https://api.sume.com/v1/timeline-1.0/plan",
data=json.dumps(body).encode(),
headers={
"Authorization": "Bearer " + os.environ["SUME_API_KEY"],
"Content-Type": "application/json",
},
method="POST",
)
with urllib.request.urlopen(req) as res:
plan = json.load(res)
print(plan["object"], plan["duration_seconds"], plan["estimated_cost_usd_micros"])
Render it and upload the file
Send the same body to POST /v1/timeline-1.0/render with an Idempotency-Key. Timeline renders cost $0.10 per output minute, rounded up, so an 8 second clip is one billable minute. The result is an MP4 at media.sume.com; download it and upload it to Meta as the Reels creative.
Sume does not talk to Meta's ad tools, and it cannot switch off anything Meta applies on its side. If an optimization still shows in the preview, use the controls in Ads Manager. For the Advantage+ side of that, see turning off Advantage+ creative enhancements.
Sources
Related posts
More in Media tools
- Product still 30%, clip 70%: compose stack ratio in pixels
Sume compose stack ratio is the still's share of the frame, 0.1 to 0.9, and the video takes the rest. Pixel table for 1080x1920 plus a request that sets 0.3.
- Pull a voice track from AI video, then join takes gaplessly
Extract a wav or mp3 from a Sume-hosted video with POST /v1/audio-detach, then join up to 20 audio parts with Timeline audio. Fields, caps, $0.01 rate.
- Swapped the voice? Re-time the visuals from word timestamps
A new voice speaks at a new pace, so cuts set for the old one drift. Take each scene's start from the new take's word timestamps and re-plan the timeline.
- Reference ingest coverage: how many frames OCR read
The reference-ingest coverage block reports frames decoded, frames OCR read and the OCR rate. Use it to decide when on-screen text needs a second look.
Written by Sume