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.

5 min readSume
All posts

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.

Instagram Reels ad exclusions, Meta Ads Guide (read 2026-10-05)
Not allowed in a Reels adWhat to check on an AI clip
Licensed musicWhere did the audio come from, and do you hold the right to use it in an ad?
Face or camera effectsIs any effect baked in from an editing app?
GIFsIs any element a looping animated GIF composited in?
Product tagsTags are added in the Instagram product, not in the file; leave them off the ad
Edit lists or special boxes in the containerRe-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.url to 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

All Use cases posts

Written by Sume