Skip to content

marek-kujda/ad-creative-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ad Creative Generator — Figma Plugin

Generate display ad creative variations from Figma templates. Select a template frame, paste copy variations (CSV), map columns to text layers, generate all permutations with one click.

Pairs with Ad Copy Skill Pack — paste the generated CSV directly into this plugin.

How It Works

  1. Design your template — create a frame with text layers for headline, description, CTA, etc.
  2. Select the frame in Figma and click Identify template layers
  3. Paste CSV with copy variations (header row + data rows)
  4. Map columns — the plugin auto-matches CSV columns to text layers by name
  5. Generate — one click creates all variations, positioned in a grid

The plugin preserves all text styling (font, size, color, alignment) — it only replaces the text content.

Install as Local Plugin

  1. Clone or download this repo
  2. In Figma desktop app: Plugins → Development → Import plugin from manifest...
  3. Select the manifest.json file from this folder
  4. Open any design file → Plugins → Development → Ad Creative Generator

CSV Format

The plugin accepts two formats and auto-detects which one you're using:

Ad Copy Skill Pack format (auto-transposed)

If the plugin detects columns named Headline 1, Headline 2, ..., Description 1, ... it automatically transposes the data — each headline becomes a separate variation, paired with descriptions that rotate cyclically:

Campaign,Ad Group,Headline 1,Headline 2,Headline 3,...,Description 1,Description 2
Acme,Brand,Get Insights,Try Free,Analytics,...,Track campaigns,Turn data into pipeline

Becomes 15 variations: v1 = H1+D1, v2 = H2+D2, v3 = H3+D1, v4 = H4+D2, etc. The plugin shows a confirmation: "Ad Copy Skill Pack format detected — transposed 15 headlines × 2 descriptions into 15 variations."

Standard format (rows = variations)

Any CSV where each row is a variation with columns matching your text layer names:

label,headline,description,cta
v1,Try Claude Today,AI that works for you,Get Started
v2,Build Faster,Ship code in half the time,Start Free

Template Naming Convention

Name your text layers descriptively — the plugin auto-matches CSV columns to layers by name similarity. For example:

Text Layer Name Auto-matches CSV Column
Headline Headline 1
Description Description 1
CTA CTA

Generated frames are automatically named: {original_name}_{width}x{height}_v{number}

Features

  • Works with any frame size (responsive ad templates, social, display)
  • Handles multiple selected frames — generates variations for each
  • Auto-matches CSV columns to text layers by name
  • Character count warnings if replacement text is significantly longer
  • Handles quoted CSV fields and commas in text
  • Grid layout for generated variations
  • Preserves all text styling and formatting

Multilingual Campaigns

If your CSV has a Language column, generate one batch per language. The plugin processes all rows — filter your CSV by language before pasting if you want language-specific batches.

License

Copyright (C) 2026 Marek Kujda — https://www.linkedin.com/in/marekkujda/

This program is free software under the GNU General Public License v3.0 or later. See LICENSE for full terms.

Disclaimer

This plugin is provided "as is" without warranty of any kind. The author is not responsible for ad creatives that violate platform policies, incorrect text replacements, or any damages resulting from use. Review all generated creatives before publishing.

About

Generate display ad creative variations from Figma templates. Swap headlines, descriptions, and CTAs across multiple ad sizes with one click. Pairs with Ad Copy Skill Pack.

Topics

Resources

License

Stars

Watchers

Forks

Packages