Why a vertical-only YouTube ad may not serve, and the 16:9 fix
Google says campaigns with only vertical videos may not serve in YouTube in-feed. Render a 16:9 twin of your 9:16 ad from one audio spine with Sume Timeline.

A campaign that uploads only 9:16 videos can fail to deliver, and Google says so directly: "Campaigns may not serve if they only have vertical videos as these assets will no longer serve in our YouTube in-feed environments." The fix is to add a horizontal (16:9) or square (1:1) version of the same ad. With Sume Timeline you can render that twin from the same audio and clips by changing only the output size and the fit mode.
This post covers what the Google page says about the missing placement, the two sizes Google recommends for the twin, and the exact Timeline request that produces it.
What Google's pages say
Two Google Ads Help pages matter. "Use square and vertical video to engage mobile customers" gives the warning above and recommends three ratios: horizontal 16:9, vertical 9:16 and square 1:1, with ratios between them allowed. "About video ad specs" lists the recommended resolutions: 1920x1080 horizontal, 1080x1920 vertical, 1080x1080 square.
The Shorts-specific page adds the other half of the story. Horizontal assets in the vertical Shorts experience "serve with blurred tops and bottoms", so a horizontal file is not wasted on Shorts either. That is the reason a pair beats a single vertical file: the pair covers in-feed and Shorts.
| Asset | Aspect ratio | Recommended size | Source page |
|---|---|---|---|
| Vertical master | 9:16 | 1080x1920 | About video ad specs |
| Horizontal twin | 16:9 | 1920x1080 | About video ad specs |
| Square twin | 1:1 | 1080x1080 | About video ad specs |
Choosing the twin
Pick 16:9 if the campaign serves in-feed on desktop and mobile and you only add one extra file. Pick 1:1 if the page names square for your campaign type: Google says square is still recommended for App, Demand Gen and Performance Max campaigns.
Fit matters when the master was shot vertically. In Timeline each slot has fit: cover (default) fills the frame and crops, contain letterboxes, stretch distorts, and blur fills the bars with a blurred copy. For a vertical clip placed into a 1920x1080 frame, blur keeps the whole subject visible; cover would cut the top and bottom.
The twin request
Both renders can share one voice file, so the audio is identical. Every URL must be a media.sume.com artifact or asset of your workspace, and each submit needs its own Idempotency-Key. The script below renders the vertical master and the horizontal twin; swap the sizes to 1080 and 1080 for a square.
A 15-second ad is under one minute, so each call bills one Timeline minute at the documented $0.10 rate, which makes the pair $0.20. Confirm the live rate in GET /v1/catalog before budgeting.
async function main() {
const base = {
audio: {
url: "https://media.sume.com/artifacts/artf_demo/voice.wav",
duration_seconds: 15,
},
video: [{
source_url: "https://media.sume.com/artifacts/artf_demo/hero.mp4",
start: 0, duration: 15, fit: "blur",
}],
};
for (const [name, width, height] of [["vertical", 1080, 1920], ["wide", 1920, 1080]]) {
const res = await fetch("https://api.sume.com/v1/timeline-1.0/render", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SUME_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": `ad-${name}-001`,
},
body: JSON.stringify({ ...base, output: { width, height } }),
});
console.log(name, res.status, (await res.json()).request_id);
}
}
main();Check before you upload
The default response is 202 with a job; poll GET /v1/jobs/:id/status until result_ready, then read /result for video_url. Check warnings[] for padded or looped short sources: they are soft warnings, not failures, but a padded clip means your source was shorter than the slot.
Finally, open both files and look at the first frame. A blurred fill is a design choice, and Google's page does not say it is required for your campaign; it only says what it does to horizontal assets in the Shorts experience.
Keeping the pair consistent
Two files of one ad should differ in framing and nothing else. Use one voice file, one set of slot start and duration values, and the same transitions in both requests. If you change the cut points between the vertical and the horizontal file, any difference in results mixes framing with editing, and you will not know which one moved the metric.
Name the files by ratio and keep the job ids in your own log. Sume returns one video_url per job, and the Idempotency-Key makes a retried submit return the same job instead of billing a second render. When a render fails with a stable refusal code such as unsupported_media_source, the cause is almost always a URL that is not a workspace media.sume.com artifact: import the clip and resubmit.
A last practical point: a vertical clip in a horizontal slot loses most of its pixels to the fill. If the vertical master was generated for the purpose, ask for a 16:9 version at generation time instead, so the twin is native rather than a blurred pillarbox. That costs a model call, so weigh it against the free blur fit for low-spend campaigns.
Sources
Related posts
More in Use cases
- Business Profile video takes 24-48 hours to show: plan the clip early
Google says Business Profile photos and videos can take 24 to 48 hours to appear; clips run up to 30 seconds and 75 MB at 720p or higher. A restaurant plan.
- GPT Image 2.5 background: opaque for listings, transparent
The background field takes auto, transparent or opaque on GPT Image 2.5 only. Use opaque with a white-backdrop prompt for listings, transparent for stickers.
- GPT Image 2.5 Sunburst: a five-turn product photo edit loop
OpenAI positions Sunburst for tighter control over repeated edits. A five-turn loop on Sume: one source photo, one change per call, a preserve list each time.
- Grok Imagine video plus voice and music: a 15-second ad for $0.42
Grok Imagine Video is silent at $0.0125 a second. Add text to speech, a music track and a Timeline join: about $0.42 for a finished 15 s ad on Sume.
Written by Sume