Reels ads ban GIFs, face effects and licensed music: AI clip preflight
Meta's Reels ad spec says no licensed music, face or camera effects, GIFs or product tags. A five-point preflight for an AI-made 9:16 clip before upload.

Meta's Instagram Reels video ad spec says Reels ads cannot contain licensed music, face or camera effects, GIFs, product tags, or videos with edit lists or special boxes in the file container. An AI-generated MP4 is not automatically clean on all five, so run a short preflight before you upload.
The five exclusions, from Meta's page
The list below is quoted from the Meta Ads Guide page for Instagram Reels video ads (read 2026-10-05). The same page lists a 9:16 aspect ratio, 1440 x 2560 pixels, a duration of 0 seconds to 15 minutes, MP4 or MOV, a 4 GB maximum, H.264 compression with square pixels, fixed frame rate, progressive scan and stereo AAC at 128 kbps or more.
| Not allowed in a Reels ad | What to check on an AI clip |
|---|---|
| Licensed music | Where did the audio come from, and do you hold the right to use it in an ad? |
| Face or camera effects | Is any effect baked in from an editing app? |
| GIFs | Is any element a looping animated GIF composited in? |
| Product tags | Tags are added in the Instagram product, not in the file; leave them off the ad |
| Edit lists or special boxes in the container | Re-encode the file through a clean cut if an earlier tool added them |
What Sume does and does not add
Nothing in the Sume media endpoints I read in the docs adds an Instagram face effect, a product tag or a GIF to a video. Those are in-app features or composited assets that you would have to put there on purpose. So the preflight is mostly about what you bring in: a reference clip, a soundtrack URL or a composited overlay.
A five-point preflight
Open each result and ask the same five questions. Where a question touches the container, the cleanest fix is to re-encode:
- Audio source. If you passed a
soundtrack.urlto a timeline render, you chose that file, and you carry its rights. A model's built-in audio is part of the model's output, and you should read the model's terms. - Visual effects. Look at the first and last stills for baked-in effect overlays.
- Animated elements. A GIF composited through a still slot would be static anyway, since timeline stills are static holds.
- Container. Re-encode with an exact trim or a timeline render if an upstream editor produced the file.
- Pixels and frame rate. Read the probe and stills before upload.
Re-encoding with trim or timeline
Video trim with precision: exact is a frame-accurate re-encode (libx264, yuv420p), and it remuxes kept audio as AAC. Timeline 1.0 renders a new MP4 from slots and a spine. Both produce a new file, not an edit of the old one. I did not read anything in the docs that says Sume strips edit lists specifically, so treat the re-encode as a likely fix and verify with Meta's upload check, not as a guarantee.
A minimal re-encode
A 15 second Reels ad with no edit changes still takes one trim call:
curl -X POST https://api.sume.com/v1/video-trim \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: reel-ad-clean-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/ad.mp4",
"start": 0,
"duration": 15,
"precision": "exact",
"audio": "keep"
}'Cost and result
The job costs $0.02. Read video_url, duration_seconds and warnings[] from the result, and keep the new file as your upload master.
Optional but recommended
Meta's page also notes that captions and sound are optional but recommended. If the clip is silent, burn authored cues with the captions API; speech-to-text on a silent clip fails with caption_no_speech.
Keep a log
Keep a one-line log per ad: the source of the footage, the source of the audio, the tool that last touched the file, and the date you ran the five checks. When an ad is rejected, that log tells you in a minute which step to redo, instead of guessing. It also helps when a teammate re-cuts the ad weeks later, because the new cut starts from the same checklist, and nobody assumes an earlier version was cleared for audio rights when it was not.
Recheck the page
The preflight is deliberately short. Meta can change its Ads Guide at any time, so reopen the page before a large campaign and compare it with the table above. The label on this table says when it was read, and nothing in it should be treated as current after that date without a new check.
Who signs off
Assign one person to own the preflight for each ad, even on a small team. The checks are quick, but they only work if someone actually runs them and writes down the answers. A shared checklist that nobody owns is the usual reason a rejected ad reaches the platform twice.
The takeaway
Audio rights and container cleanliness are the two failures a file inspection will not show you. Decide both before upload.
Sources
Related posts
More in Use cases
- Reels and Shorts both name 3 minutes: one 180-second master
Instagram does not recommend Reels over 3 minutes to new audiences, and Shorts run up to 3 minutes. Build one 180-second master in Timeline 1.0 for both.
- One Seedance 2.5 clip in 9:16 and 16:9: Timeline fit blur or cover
Re-generate for each ratio, or reframe a finished clip? Timeline 1.0 fit modes cover, contain, stretch and blur, with output sizes, on Sume.
- Release notes to video: three features, three shots, one Wan 3.0 clip
Turn a changelog into a 30 s Wan 3.0 video on Sume: one shot per feature, UI screenshots as references, exact labels burned as captions. Prompt and request.
- Relight a product shot with Ideogram 4.5: 3 lighting passes, cost
Three lighting variants of one product photo through POST /v1/images with Ideogram 4.5 cost $0.1125 at low and $0.225 at medium on Sume. Prompts and checks.
Written by Sume