Creative Optimizations VS Code ExtensionThe Creative Optimizations VS Code Extension helps you create, develop, preview, QA, and export HTML5 advertising templates directly from Visual Studio Code. It is designed to keep the repetitive setup out of your workflow so you can focus on the creative itself. IndexGetting startedInstallation
Connect to Creative OptimizationsConnecting to Creative Optimizations is optional when starting a project. You only need to log in when you want to use CO-connected functionality, such as importing placeholders from a CO ad set or loading advertiser-specific fonts and other platform data. To connect, choose Connect to Creative Optimizations from the extension sidebar and complete the WPP login in your browser. Create your first templateChoose Create New Template from the extension sidebar to open the template wizard. You do not need to connect to Creative Optimizations before starting a project. You can create the project first and connect your Creative Optimizations account later when you need to import platform data, fonts, or use other CO-connected features. The wizard is made up of five steps. 1. Template nameEnter the name you want to use for the template. The extension automatically uses the currently open VS Code folder as the project workspace. If no folder is currently open, the wizard gives you an option to open or select a folder before continuing. The template name is also used when exporting the template. 2. DimensionsFirst, select the template type: Single size or Responsive. Then select the creative sizes your template needs to support. The wizard includes these default dimensions:
You can select multiple dimensions for the same project. You can also use Add custom size to enter your own width and height when the required size is not included in the default list. 3. PlaceholdersDefine the dynamic content your template will use by importing placeholders from either a CSV feed or Creative Optimizations (CO). Import from feedUse Import from feed to create placeholders from a local CSV file or a remote feed URL. The feed import allows you to:
The Identifier column is automatically detected when the feed contains a column named:
The Dimensions column is automatically detected when the feed contains a column named:
If no dimensions column is provided, the placeholders will use the dimensions selected in the previous step. Auto-mapAuto-map determines the placeholder type by examining the first non-empty value in each selected column. The following rules are used:
You can review and change the automatically detected type for any placeholder before finishing the import. Collection placeholdersWhen a placeholder is mapped as a collection, you can configure the collection and map its fields to product data. After mapping a collection placeholder:
This allows collection placeholders in the template to be populated from the advertiser's product store.
Import placeholders from COUse Import placeholders from CO to import existing placeholder and content definitions from a Creative Optimizations ad set. The import requires you to:
Imported placeholders and their content are then available in the wizard and can be reviewed for each variant and dimension.
4. FontsSelect the fonts required by the template. Where available, fonts can be loaded from Creative Optimizations for the selected advertiser and included in the project setup.
5. Create boilerplateThe final step creates the template boilerplate and generates the project files. This step includes options for:
For example, selecting three frames generates the corresponding frame structure so you can build a three-frame animation directly in the project. Once the boilerplate has been created, the project is ready for development in VS Code. Working with a templateOnce the wizard has created a project, work on the creative files normally in Visual Studio Code. The generated project separates:
You can edit the HTML, CSS, JavaScript, images, and other assets just like any other local web project. Template settingsThe template configuration is stored in:
This contains the project-level information used by the extension, including items such as:
Dynamic example content is stored separately in:
You normally do not need to edit these files manually unless you have a specific reason to do so. Adding your creativeThe main source files are inside:
The standard generated project includes:
Use these files for the creative's markup, styling, animation, and LemonPi helper functionality. You can add additional files and folders as needed. PlaceholdersPlaceholders allow the same template to receive different dynamic content. A project can contain common types such as:
The generated content configuration keeps the placeholder name and type so the template can use the correct content at preview and export time. Auto-filled contentWhen auto-fill is enabled during template creation, the generated For example, image placeholders can be assigned to image elements and text placeholders can be inserted into text elements. You can then replace or extend the generated implementation with your own creative logic. Multiple dimensionsA single project can support multiple creative sizes. Dimension-specific CSS can be placed in:
For example:
The base styles remain in When a dimension has its own CSS file, the extension uses that file for the relevant size during export. This lets you share common styling while keeping size-specific changes isolated. Multiple framesTemplates can contain multiple animation frames. The generated project creates a GSAP timeline for each frame, for example:
Frame animations are combined into the main creative timeline in sequence. Each individual frame timeline includes a For example:
This means that When the individual frame timelines are added to the main timeline, the corresponding
These labels point to the correct position in the main creative timeline, regardless of where the individual frame starts. For example:
The preview uses these labels to pause the creative at the correct point for QA mode. This means you only need to define where each frame is preview-ready in its own timeline. The preview system handles the rest. PreviewOpening the previewUse Launch Preview / Preview from the extension. The extension starts a local preview server for the current workspace and opens the preview in your browser. The preview reads:
Changes to the local project can then be checked in the preview. Selecting variantsThe preview includes a variant list. Use the variant list to switch between the available content variants. A search field is available when you need to find a specific variant quickly. The selected variant is applied to the preview cards. Selecting sizesThe preview includes size controls for the dimensions configured in the project. Use the size buttons to:
This is useful when testing a project that contains many dimensions. QA modeEnable QA mode in the preview header when you want to inspect the individual animation frames. Instead of showing one normal creative preview per dimension, QA mode creates a preview for each detected frame. For example, a three-frame creative can show:
Each frame is automatically paused at its corresponding preview point. This makes it easier to inspect:
You do not need to manually change animation timings in the preview to inspect a frame. StoryboardsWhen storyboard images are available in the project's Storyboard files are matched to:
This allows you to compare the rendered HTML5 creative against the intended storyboard. A project may therefore contain files such as:
The exact filename does not have to follow this example, but the preview uses the dimension and frame information when locating the storyboard. OverlayQA mode includes an Overlay control for a frame. Enable it to place the storyboard over the creative so you can compare the two visually. An opacity control appears when the overlay is enabled. This is useful for checking:
The overlay is only a preview/QA tool; it does not modify the creative source files. ZoomUse the preview's zoom slider to change the size of the entire preview card. The zoom applies to the complete card rather than only the iframe, so the following scale together:
The preview layout also recalculates around the resized cards, making it easier to inspect several creatives at once. Reloading previewsUse Reload all when you want to reload every preview iframe at the same time. This is useful after making changes that you want to test across all currently displayed sizes and frames. ExportZIP exportThe extension can export the local template as ZIP files. Before exporting, make sure the project contains:
The project must also have at least one configured dimension. For a project with multiple dimensions, the extension creates one ZIP per dimension in:
The files are named using the project name and creative dimensions. For example:
What is includedThe ZIP contains the exportable contents of Dimension-specific CSS is merged into the exported The The export also contains a The extension updates the This means the exported package is prepared for upload without requiring you to manually create a separate package for every size. Creative Optimizations exportThe extension can upload your template directly to Creative Optimizations. Connect to Creative Optimizations, then configure the export:
The filename is generated automatically from the project name and dimension:
The dimension is always added using Click Upload to Creative Optimizations to upload the selected sizes. Project structureA newly generated project follows this general structure:
You can add your own assets and source files to the project. RequirementsThe extension is intended to be used with:
Some features, such as advertiser-specific data, platform fonts, folders, and placeholder imports, require Creative Optimizations authentication. |