Skippable YouTube ads: check the first 5 seconds with stills
Skippable in-stream ads can be skipped after 5 seconds and Google recommends under 3 minutes. Sample the pre-skip frames of a Sume clip with video inspect.

A skippable in-stream YouTube ad can be skipped after 5 seconds, and Google's format page puts no maximum on its length while recommending that it stay under 3 minutes. Whatever the total length, the viewer decides on the opening five seconds, so those are the frames to check before you spend on a render. A Sume video inspect call returns stills at timestamps you name, which is enough to review the pre-skip window.
What Google lists for the in-stream formats
The Google Ads format page, read on 2026-10-03, lists the video ad lengths by format.
| Format | Length |
|---|---|
| Bumper | 6 seconds (5-second minimum) |
| Non-skippable in-stream | 15 to 60 seconds, depending on subtype |
| Skippable in-stream | No maximum; under 3 minutes recommended; skippable after 5 seconds |
| In-feed | No maximum |
Why the first five seconds are a separate deliverable
With the skip control arriving at 5 seconds, a skippable ad has a short stretch that every viewer sees and a long remainder that only some do. Treat them as two separate checks. The pre-skip window needs the message or the reason to keep watching. The remainder carries the detail for people who stayed.
The page gives no rule about what must appear in those seconds, and this post does not invent one. It only fixes the boundary: anything you want every viewer to see has to land before second 5.
Pull the pre-skip stills with video inspect
Video inspect reads one clip already on media.sume.com and returns stills as durable image artifacts. The docs say frames.at takes 1 to 24 explicit timestamps, each at least 0, and every value must fall inside the clip or the call fails with frame_time_out_of_range. The default max_edge is 768, and the default mode is sync, which waits up to 30 seconds for a 200 or returns 202 to poll. The route needs an Idempotency-Key, and the clip must be imported first with POST /v1/media-imports.
This request samples the opening in one-second steps plus one frame just before the skip control appears.
curl -X POST https://api.sume.com/v1/video-inspect \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: preskip-check-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/ad.mp4",
"frames": { "at": [0, 1, 2, 3, 4, 4.8], "format": "jpeg", "max_edge": 768 }
}'Why sampling beats scrubbing
A batch of twenty ad variants is too many to scrub through by eye, and a fixed set of timestamps makes the comparison fair: every variant is judged on the same instants. Because video inspect returns durable image artifacts, the strips can be stored next to the job that produced the clip, so a later question about why one variant lost can be answered from the stills rather than from memory. The call reserves its compute and is billed by its own container seconds, so a probe-only call with frames: false is the cheaper first step if you only need duration and whether the clip has audio.
Reading the stills
Open the six stills as a strip. Frame 0 shows what a viewer sees the instant the ad starts, which for a generated clip is sometimes a soft or empty first beat. The frame at 4.8 seconds is the last thing seen before the skip option is available. If the strip does not tell a coherent story on its own, re-prompt the opening rather than trimming from the middle.
When the opening is right but the clip is too long for the slot, video trim takes a start and a duration and returns a new MP4 for $0.02 per job, with the source untouched. Re-run the inspect on the trimmed file, because the first seconds of the new clip are what you actually ship.
Sources
Related posts
More in Use cases
- Snap ad video size: API says 1080x1920, ad specs page says 720x1280
Snap's Ads API lists 1080x1920 for top snap video while its ad specs page lists 720x1280. Render one 9:16 file at 1080p and check the pixels with Sume.
- Snap image ads become 5-second videos: generate a real clip instead
Snap's Ads API converts a top snap image into a 5-second video. If you want camera motion, generate a 5-second clip from the same image with Sume.
- Snapchat ad specs: 9:16 only, 3 to 180 s, a simple batch target
Snap's ad formats page lists 9:16 at 720x1280 and 3 to 180 s for most formats. The Ads API page says 1080x1920. How to render one file that fits both.
- SynthID on every Gemini Omni Flash video: check it after you edit
Google says SynthID is applied to all Gemini Omni Flash output. A short plan for confirming the mark and recording it before and after a trim or re-encode.
Written by Sume