Ad versioning is the process of turning one approved ad into many finished versions, each tailored with its own headline, product, image, offer line, language or size, without rebuilding the ad by hand each time. In After Effects, the practical way to do it is to build one template, tag the parts that change as dynamic layers with Templater, put one row per version in a data source such as a Google Sheet, a tab-delimited file or a JSON array, and let Templater batch render every row. When you need a codec After Effects cannot write, Templater’s Replicate option saves a copy of the project for each row with the data already inserted, and Adobe Media Encoder renders those copies. There is no fixed number of versions where this starts to pay off. It depends on how often the same layout repeats with different content, and the simplest test is this: if your team keeps duplicating a project to swap text and pictures, the ad is ready to be versioned from data.
What Ad Versioning Means in Practice
An ad campaign rarely ships as one file. The same spot gets asked for in several placements, for several products, for several regions or dealers, and often in more than one language. Each request is small. The trouble is the count. Every product multiplies against every language and every placement, and a short list of each turns into a long list of files that someone has to build, check, name and deliver.
Ad versioning is the name for producing that long list in an organized way. The design is decided once. The differences between versions are written down as data. Software then merges the two and outputs a finished file for each version. The person who designed the ad keeps control of how it looks, and the person who knows the products, offers and markets keeps control of what it says.
In After Effects, this is what Dataclay’s Templater extension for After Effects was built to do. Templater versions After Effects compositions from a data source, so one template renders many customized videos. Each row in a spreadsheet, or each object in a JSON array, represents one render job. Each column or property key represents a dynamic layer in the template. The cells hold the text, the URLs, the image file paths or the hex color values that should appear in that version.
Why Versioning by Hand Breaks Down
Most teams start versioning by duplicating the project. They save a copy, swap the photo, retype the headline, adjust the layout so the new text fits, export, rename the file and move on to the next one. Each step is easy. The problem is that every step is repeated for every version, and every repeat is a chance to make a mistake that nobody notices until the ad is live.
Hand versioning also locks the knowledge in one person’s head. The designer knows which layer to change and which layer to leave alone. When that designer is busy, the versions wait. When the offer changes right before launch, every version has to be opened and edited again.
Data-driven versioning moves the repeated work out of the timeline. The template is built once. The list of versions lives in a sheet that anyone on the team can edit. A change to an offer becomes a change to a cell, and the next render picks it up. If you want the background on how the rendering side of this works, our explainer on what batch rendering in After Effects means covers it in plain terms.
How Templater Turns One Ad Into Many Versions
The Templater workflow has three parts: a rigged After Effects project, a data source, and an output step. Here is how they fit together for an ad campaign.
1. Rig the template with dynamic layers
You tag the layers that change by applying the Templater Settings effect to them. Supported dynamic layer types include text, solid, footage, pre-composition, adjustment and JSON layers. The Templater Settings effect cannot be applied to shape layers, so the documented workaround is to pre-compose the shape layer and apply the effect to the pre-composition.
The name of each dynamic layer matters. Column names or property keys in the data source must match the names of the dynamic layers. If the headline layer is called headline, the sheet needs a column called headline. For Google Sheets, keep column headers simple and consistent so Templater can read them reliably.
2. Build the data source, one row per version
Templater reads Google Sheets, tab-delimited files and JSON object arrays as data sources. It can also read a remote JSON URL feed or a QUE campaign. Each row is one ad version. A typical ad versioning sheet might have columns for the headline, the product image, the offer line, a background color and the end card. If your team already keeps its product or offer list in Excel, our guide to making After Effects videos from an Excel file shows how to bring that data in as a tab-delimited export. If the list lives in a system that produces JSON, the walkthrough on driving After Effects videos from JSON data covers that path.
Tab-delimited and JSON text files must be UTF-8 encoded so Templater can read every international character. That detail matters for ad versioning in several languages.
3. Preview, then render or replicate
Before rendering anything, you can preview how each version will look. In manual preview mode, Templater pulls data from the data source and updates every dynamic layer, and you can step from row to row. In cycle mode, it moves through a range of rows automatically. Templater re-reads the data source each time you preview manually, so a fixed typo shows up on the next preview. Dataclay’s tip is to preview a small range of rows to keep previews fast.
When the previews look right, you either render the batch inside After Effects or replicate it for Adobe Media Encoder. Both paths are covered below.
Keeping Every Version on Brand When the Content Changes
The hardest part of ad versioning is not the rendering. It is making sure the layout holds when a headline is twice as long as the one the designer used, or when a product photo is tall instead of wide. Templater handles this with layout rules.
Layout rules, set in the Templater Settings effect, define how each dynamic layer behaves when new data arrives. A text layer can be told to scale to a percentage of its composition and align to a corner. A footage layer can follow its own rules. The walkthrough on making a graphic follow a changing text layer shows that technique step by step. One limit to know: layout rules do not work correctly on layer properties that have Separate Dimensions enabled.
Timing can change too. If one version uses a longer clip than another, Time Sculpting lets you set time-based rules so Templater can adjust layer timing and the length of the composition. You must set a target composition to use any Time Sculpting feature. Our guide on making a comp match its content length automatically goes deeper on this.
A few other data-driven controls are useful for ad versions:
- Flags. Writing
in a cell hides that dynamic layer for that version, which is handy when one market has no legal line or one product has no badge. - Switching compositions. A
targetcolumn lets each row pick which composition gets processed, so wide and tall versions of the same ad can live in one project. Theaepcolumn can even switch between project files on a per-row basis, as long as each project opens without missing fonts or effects. - Text styling per row. In Templater 3.4 or later, a column named after a text layer with
@styleadded to the end can set the font face, the text direction and, in 3.4.1 or later, the justification for that row. This helps when versions run in languages that need a different font or a right-to-left direction.
Option One: Batch Render Inside After Effects
The most direct way to produce the versions is a batch render. According to Dataclay’s documentation, a Templater batch render needs a data source, a footage folder, an output folder, a target composition and a valid row range. The full checklist before you click Render looks like this:
- The Templater Settings effect is applied to every layer meant to be dynamic.
- Column names or property keys in the data source match the dynamic layer names.
- The data source, footage folder and output folder are entered in the Batch Assets section of the Templater panel.
- A target composition is set.
- A render settings template and an output module are chosen under Output Options.
- A valid row range is entered under Transport. For Google Sheets and tab-delimited files, the start row must be greater than 1, because row 1 holds the column names. For JSON arrays, the start row must be greater than 0. The end row must be greater than or equal to the start row.
- A job prefix is entered, so every file from this batch shares the same prefix.
Templater installs a set of Dataclay output module and render settings templates. The draft render settings let you push through many test renders quickly at low quality. The best quality settings are meant for production output. For quality checks, Dataclay suggests setting the target composition’s work area to a single frame and using a PNG sequence output module, so you get one still per version and can scan how the data landed in each one.
Option Two: Replicate to Adobe Media Encoder for Other Codecs
Sometimes the ad versions need to be delivered in a format After Effects does not write. That is what Replicate is for. Replicate saves a copy of the project with the data inserted, so Adobe Media Encoder can render codecs After Effects lacks.
The steps from Dataclay’s documentation are:
- Confirm the same basics as a batch render: dynamic layers are tagged, names match, and the data source, footage folder and output folder are set.
- Open Templater Preferences and, under Replication, enable Send replicates to Adobe Media Encoder.
- If Adobe Media Encoder runs on a system without Templater installed, also enable Remove Templater Settings from replica’s layers. Dataclay notes this slows replication, and the machine running Media Encoder must have the same drive mappings and fonts as the machine that created the project.
- Enter a valid row range under Transport.
- Open Adobe Media Encoder and add a watch folder pointed at the output folder you set in Templater.
- Click Replicate in the Templater panel and confirm Media Encoder is picking up the replica files.
Two cautions from the documentation are worth planning around. First, a cloud-based sync folder used for output can cause errors with Media Encoder, so use a local or networked folder. Second, when sending replicates to Media Encoder, Templater removes unused footage references from the project and saves the master project file after each replication. Keep a backup of the master template before the first replication run. During the process, Templater creates replicas of the composition for each data row.
Naming and Sorting the Finished Versions
Once a batch produces many files, names matter. Templater gives you three tools. By default, it identifies each output by the row index. A column named id lets you assign your own label to each row, and A column named output sets the full file name for each row and overrides the id value.
The output column can also sort files into subfolders. If the value is spring/headline-a, the file lands in a subfolder called spring inside the output destination. That makes it easy to group ad versions by market, placement or product line. Dataclay’s tips are to build output names with your spreadsheet’s concatenate function and to avoid periods in custom output names, which can cause After Effects output errors.
What to Prepare Before You Start
A versioning project goes faster when the inputs are ready before anyone opens After Effects. Here is a working checklist built from Dataclay’s documentation.
- A finished, approved ad. Version the design after it is signed off. Changes to the template after the sheet is built mean re-checking every row.
- A list of what changes. Decide which elements vary between versions: headline, product image, offer line, logo, color, end card or audio. Each of these becomes a dynamic layer and a column.
- A footage folder. Create one folder per project, with subfolders for audio, images and video. File paths in the data source must be relative to the footage folder path set in the Templater panel.
- A clean data source. One row per version, header names that match layer names, and no reserved column names used as layer names. The reserved names include
id,target,output,aep,render-status,bot,moduleandrender-settings. - Fonts installed everywhere. Any machine that renders or replicates needs the fonts the template uses, including fonts for every language in the sheet.
- An output plan. Decide the codec, the naming pattern and the folder structure before the first render, so the files arrive ready to hand to the media team.
Scaling Up: The Bot, the Command Line and QUE
For a single campaign, a batch render from the Templater panel is often enough. When ad versions are requested all the time, it helps to run versioning in the background.
Templater Bot checks the data source on a schedule for rows with a render-status of ready. It marks them queued, then processing, versions and outputs the target composition, and marks each row done. If something fails, it writes an error code such as ERR::MEDIA for an asset problem or ERR::AFXHOST for an After Effects error. Dataclay’s documentation also describes a command line interface for pushing data in to create renders, and the Bot can be set to replicate for Media Encoder instead of rendering in After Effects.
For teams that need to spread jobs across several computers, QUE, Dataclay’s render queue and API, sends jobs to satellite machines running Templater. A job moves through the same statuses: ready, queued, processing and done, with canceled or an error code when it stops or fails. That gives producers one place to see where every version stands.
Delivering the Versions
Rendering is not the end of the job. The versions still have to reach the people and platforms that use them. Dataclay’s Projector deploys finished videos to Vimeo, JW Player, Frame.io and an AWS S3 archive. It runs on the same computer as Templater, with After Effects 2021 to 2026, on macOS 11 or later or Windows 10 or later.
To be clear about the limits: Dataclay does not post to Instagram or other social networks. If your ad versions are headed to a social ad platform, Templater produces the files and your team or your existing tools upload them. Projector covers the hosting and review destinations listed above.
Trying It Before You Commit
Templater’s free trial includes every feature for every version, with a watermark on dynamic layers, and the command line works in the trial. That makes it practical to rig one real ad, build a short sheet of versions, and test both the batch render and the Replicate path before deciding how to run the full campaign.
The Bottom Line
Ad versioning in After Effects works best when the design and the differences are kept apart. Build one approved template, tag the changing layers with Templater, list each version as a row in a Google Sheet, tab-delimited file or JSON array, preview a few rows, then batch render or replicate to Adobe Media Encoder for other codecs. Name the outputs from the data, keep fonts and footage paths consistent across machines, and move to the Bot or QUE when versioning becomes a routine request rather than a single project.
Frequently Asked Questions
What is ad versioning, and how do you make many ad versions in After Effects?
Ad versioning is turning one approved ad into many finished versions with different text, images, offers, languages or sizes. In After Effects, you build one template, tag the changing layers with Templater, put one row per version in a data source, and batch render or replicate every row. There is no fixed number of versions where this starts to pay off. If your team keeps duplicating a project to swap content, it is ready to be versioned from data.
What data sources can Templater use for ad versions?
Templater reads Google Sheets, tab-delimited files and JSON object arrays. It can also use a remote JSON URL feed or a QUE campaign. Column names or property keys must match the names of the dynamic layers.
How do I render ad versions in a codec After Effects does not support?
Use Replicate. Enable Send replicates to Adobe Media Encoder in Templater Preferences, point a Media Encoder watch folder at your output folder, and click Replicate. Templater saves a copy of the project for each row with the data inserted, and Media Encoder renders it.
Can one project produce both wide and tall versions of an ad?
Yes. A target column in the data source lets each row choose which composition Templater processes, so different sizes can live in one project. The aep column can also switch between project files on a per-row basis.
How do I keep long headlines from breaking the layout?
Use Templater’s layout rules in the Templater Settings effect. They let dynamic layers scale and align relative to their composition, and attachments keep related layers together when text length changes.
Can Dataclay post the finished ads to social media?
No. Dataclay does not post to Instagram or other social networks. Projector deploys finished videos to Vimeo, JW Player, Frame.io and an AWS S3 archive. Your team uploads ads to social platforms with its own tools.
Can I test ad versioning before buying Templater?
Yes. The free trial includes every feature for every version, with a watermark on dynamic layers, and the command line works in the trial.