All posts
templates
placements
tutorial

Render every ad size from one template, no crops

Cropping one master into every placement throws away the frame. Design per-ratio comps once and let Nubu render every ad size from a single flow.

Nubu Team13 minute read
Render every ad size from one template, no crops

Your hero film is 16:9. The media plan is not. It wants Stories and Reels at 9:16, Feed at 4:5 or 1:1, YouTube in-stream at 16:9, Demand Gen in three ratios and a Performance Max asset group that adds a 1.91:1 landscape banner on top. One campaign, one message, at least five shapes.

The usual fix is to crop. Drop the 16:9 master into a resize tool, punch out a vertical slice, export, repeat. It takes minutes, and it quietly wrecks the work. A 9:16 centre crop of a 1920x1080 frame keeps a sliver 608 pixels wide, less than a third of the picture. The product your designer placed on a rule-of-thirds line is now half out of frame, the end card logo clips, and the subtitles sit exactly where Instagram draws its caption UI.

This tutorial walks the other route. Your motion designer builds each ratio once, as separate compositions inside a single After Effects project. You upload that one package to Nubu, wire your campaign data once, and render every size in one build: named, listed in a manifest, and held for approval before anything ships. No cropping anywhere in the pipeline.

Why cropping degrades every ad it touches

Start with the arithmetic, because the loss is larger than most teams intuit. Cropping a 1920x1080 master down to other ratios keeps:

  • 1:1, a 1080x1080 square: 56 per cent of the pixels
  • 4:5, an 864x1080 window: 45 per cent
  • 9:16, a 608x1080 sliver: about 32 per cent

Everything composed into the discarded region is simply gone. Wide product shots lose the product. Two-person dialogue scenes lose one person. Supers written to sit clear of a 16:9 edge now run off a 9:16 one. Even AI-assisted reframing, which tracks the subject and slides the crop window around, can only choose which two thirds to throw away. It cannot move the logo, restack the type or pull the packshot back into frame, because those are composition decisions, not tracking decisions.

Then there are safe areas. Vertical placements draw interface over your ad: a profile chip along the top, a call-to-action button and caption stack along the bottom. Commonly cited guidance for a 1080x1920 Story keeps text and logos out of roughly the top 250 and bottom 340 pixels. A composition designed for a clean 16:9 canvas knows nothing about those bands, so a crop routinely lands the headline under the caption UI and the CTA behind the platform's own button.

The platforms themselves point the same way. Meta's creative guidance has long recommended customising assets to each placement rather than running one file everywhere, and Google's Demand Gen and Performance Max formats explicitly ask for multiple ratios so the system can serve every surface. Read the documentation of any one-click resize tool closely and you will find the same admission in polite wording: the sides get discarded. Cropping is not a workflow, it is a compromise that became one.

The sizes you are actually briefed for

Here is the shape of a typical cross-platform brief. These are commonly published working figures, not official documentation: platforms revise specs without ceremony, so confirm each one against the network's current documentation before you brief a designer.

PlacementCommonly published ratioTypical pixel size
Meta Feed (Facebook and Instagram)1:1 or 4:51080x1080 or 1080x1350
Meta Stories and Reels9:161080x1920
YouTube in-stream16:91920x1080
Google Demand Gen16:9, plus 1:1 and 9:161920x1080, 1080x1080, 1080x1920
Performance Max1.91:1 landscape, plus 1:1 and 9:161200x628, 1200x1200, 1080x1920

Two things stand out. First, no single ratio covers even half the plan. Second, the list mixes media types: the 1.91:1 Performance Max landscape slot is usually a static image, while everything else is video. Any serious pipeline has to handle both from the same campaign, which matters later in this walk-through.

Design once: a comp per ratio in After Effects

The honest foundation of multi-ratio rendering is design work, done once. Your motion designer opens one After Effects project and builds a composition per ratio: a 9:16 comp, a 1:1 comp, a 4:5 comp, a 16:9 comp, and a single-frame 1.91:1 comp for the static banner. Each one is recomposed, not scaled: the type restacks for the tall canvas, the packshot moves to where the safe area allows, the end card breathes differently in a square. This is craft. Ten minutes with a crop tool cannot replace it, and nothing in this tutorial pretends otherwise.

The trick that makes automation possible is discipline with names. Every comp exposes the same dynamic fields under the same names: the same headline text layer, the same offer line, the same packshot footage slot. The wording changes per campaign; the field names never change between ratios.

When the project is exported through Nubu's template Builder, it becomes a single package: a zip containing the After Effects project, the footage, and a schema file that lists every output comp with its dimensions, duration and fields. Each distinct comp in the schema becomes an output comp in Nubu, which means one upload carries every size. The full export steps live in Exporting your template, and Adding template comps covers the per-ratio setup in detail. If you are new to parameterising After Effects projects altogether, start with the After Effects automation guide.

One rule worth knowing now: a comp with exactly one frame renders as a static image, and everything else renders as video. That is how the Performance Max banner lives in the same package as the 15 second films, with no separate image pipeline.

The walk-through: one flow that fans out

From here on you are in Nubu. The plan: upload the package, wire the campaign data once, give each comp its own output and placement, preview the full matrix, build, approve, download. Here is the finished shape you are working towards, one flow fanning a single template out into separate placement outputs:

If you want to follow along in your own workspace rather than read, creating a free account takes a couple of minutes and everything in this walk-through works on it.

Step 1: upload one package, see every size

Drag the exported zip into Templates. Nubu validates the package in the browser before anything uploads: the schema has to parse, the project file has to exist, and every example render has to pair with a comp. If the thumbnail or examples are missing, the upload drawer asks you to supply them rather than failing. Once the upload is confirmed, the template appears in the gallery as a single tile.

The template gallery with the uploaded multi-ratio package as one tile

Open the tile and expand the comps. This is the moment the multi-ratio design pays off: one template, five output comps, each listed with its own dimensions and duration.

The template comps drawer listing 9:16, 1:1, 4:5 and 16:9 comps plus a single-frame static

Note the single-frame comp: Nubu has already classified it as a static, and it will behave differently at the output stage. The templates overview covers everything else the gallery can do, including replacing a package in place when the design evolves.

Step 2: wire dimensions and copy once

Open a campaign, create a flow, and add the Template node. Pick your package and every comp appears on the node, each with its own output handle and the shared field list beneath.

Now wire the campaign data. Add a Market node with your markets, a Language node with your languages, and chain them into the template. These are dimensions: they multiply. Two markets and two languages mean four combinations of every creative downstream, and you declare them exactly once.

Copy works the same way. Pipe a Text node into the headline field and it feeds the headline in all five comps at once, because every comp shares the field name. This is the entire point of the naming discipline from the design stage: there is no per-ratio copy entry anywhere. Change the offer line and five ratios change together. At larger scale you would pipe a spreadsheet instead of typed rows, one creative per row, which is its own tutorial: CSV to video ads.

Step 3: give each comp its own Output and placement

Add an Output node per placement and connect each comp's handle to its Output: the 9:16 comp to a Stories output, the 4:5 comp to a Feed output, the 16:9 comp to a YouTube in-stream output, the static to a Performance Max output.

On each Output you choose a platform and placement from a live catalogue that Nubu maintains, and the choice does real work. Selecting a placement reveals that placement's ad copy fields with the platform's rules attached, validated as you type: exceed a character limit and the field flags before you have finished the sentence, paste a malformed landing URL and the URL field rings. The same rules are enforced again at build time, so the canvas warnings and the build can never disagree.

Two constraints protect you from invalid combinations. Statics and videos can never share an Output node: the editor rejects the connection outright, and the build enforces the same rule again. And the render settings dropdown filters itself by the kind of comp piped in, so a single-frame comp only sees image settings and a video comp only sees video presets.

Each Output also carries a UTM section. Source, campaign and content are generated and locked, derived from the flow, placement, market, language, version, duration and dimensions, so every ratio lands with distinct, consistent tracking. Medium and term stay editable.

The Output node's UTM section with generated locked parameters and editable fields

Preview the matrix, then build

Before rendering anything, look at what the build will produce. The Preview node shows the matrix: every combination of comp, market, language and version, each one a creative that will exist after the build. With five comps, two markets and two languages, that is twenty creatives from one flow, because each wired comp fans out into one creative per combination. You can render a single row as a preview through the real pipeline before committing the lot.

The Preview node showing the matrix of creatives across every ratio and market

If wiring this by hand feels like something you would rather describe than do, tell Nubu's AI assistant what you are running: the template, the markets, the placements. It drafts the whole flow as a proposal card, test-built by the same engine as the real Build, with the expected creative count per size visible before you approve anything. It cannot render or publish on its own; building and shipping stay with you. The AI campaign builder tutorial shows it end to end.

Press Build. Nubu validates the entire graph first and, if anything is wrong, refuses with the complete list of problems rather than the first one it hits; a refused build changes nothing. On a clean pass, every creative is created and rendering takes over. The mechanics of what a build produces are documented in Building a creative.

Approve, and every size arrives named

A successful build does not ship anything. Every creative lands in review, and a human approves each row before it renders; approved rows queue, render, and land in the renders grid together, every ratio side by side.

The renders grid with every ratio of the campaign rendered and ready to review

Every file arrives named by convention, with no manual renaming step anywhere:

CAMPAIGN_FLOW_MARKET_LANGUAGE_NAME_VERSION_DURATION_WIDTHXHEIGHT

So the UK English hero at 9:16 comes out as SUMMERSALE_HEROLAUNCH_UK_EN_HERO_V1_15S_1080X1920, and its Feed sibling differs only in the final segment. A media buyer can read the placement, market and duration off the filename without opening the file.

Downloads carry their own paperwork. Every download bundles a manifest CSV listing, per file: the exact filename, platform, placement, comp, market, language, version, duration, render status, every ad copy field, tags and the full UTM set. The buyer opens it in a spreadsheet and has the entire trafficking sheet without anyone retyping a headline.

When the copy changes, every size stays in sync

Three days after launch, legal amends the claim. In the cropping workflow this means reopening five exports per market and hoping nobody misses one. Here it means editing one Text node and pressing Build again.

Because the flow is the single source of truth, a rebuild regenerates every ratio from the same data. Each creative has a deterministic identity built from its template, comp, output, market, language and version, so the rebuild updates the right rows rather than duplicating them. And the system refuses to destroy history: rows that are queued, rendering or already rendered are never silently overwritten. Changed content arrives as a new revision alongside the original, and the previous files stay reviewable and downloadable. You can always answer what shipped, when, and with which copy, in every size.

The same property is what makes wider variation cheap. Add a third market or another language and the matrix simply grows: every ratio picks up the new combinations on the next build. If languages are your scaling axis, Translate video ads at scale continues from exactly this point.

The honest limits

Template-driven multi-ratio rendering is not magic, and it is worth being precise about where the effort actually sits.

Someone must design each ratio once. The per-ratio comps are real compositions that a motion designer thinks through, and the quality of every future campaign inherits from that work. If the 9:16 comp is secretly a scaled centre crop inside After Effects, you have merely automated the mistake this article opened with. The cost is real, but it is paid once per template rather than once per campaign per market per language, which is where the economics flip.

Statics and videos stay on separate Outputs, by design. A single-frame banner and a 15 second film have different placements, different render settings and different rules, so Nubu will not let one Output node pretend otherwise. In practice this costs you one extra node per static size.

And the spec table above is a snapshot. Nubu validates your copy and media against each placement's rules as you work, but ratios and pixel recommendations are the platforms' to change, so confirm current specs when a campaign is on the line.

What you get in exchange: one package, one flow, one build, and every ad size arriving composed rather than cropped, named by convention, listed in a manifest, and gated by approval before it goes anywhere.

If that beats your current resize routine, the features overview shows where multi-ratio rendering sits in the wider pipeline, pricing is public, and a free workspace is enough to upload your first multi-comp template and watch one build fan out into every size you are briefed for.

More from the blog

EU AI Act and AI generated ads: what to do now
ai
compliance
workflow

EU AI Act and AI generated ads: what to do now

The EU AI Act's transparency rules for AI generated ads are live. What changed, what counts as AI creative, and the workflow to run this month.

12 minute read
AI proposes, humans approve: safe ad automation
ai assistant
safety
opinion

AI proposes, humans approve: safe ad automation

Policy is not architecture. Nubu's assistant cannot render, publish, spend or delete: every change is a card you approve, with the evidence attached.

14 minute read