advanced content

Ad Creative Generator

Generate platform-specific ad copy for Google Ads, Meta, LinkedIn, and TikTok with character limits enforced and performance iteration built in.

Works with: claude-code
View source

Writing ads that fit platform specs is tedious. Google RSA headlines need to be under 30 characters. Meta primary text shows 125 characters before the fold. LinkedIn gives you 70 for a headline. This skill handles all of that — it generates ad copy that respects every platform’s character limits, grouped by creative angle, and can iterate on existing ads using performance data.

What Makes This a Claude Code Skill

Claude Code reads your product and brand context files, then writes ad creative sets as structured output files — not chat responses you have to copy somewhere. It enforces hard character limits per platform, groups variants by creative angle, and can export as CSV for bulk upload into ad platforms. When you feed it performance data, it generates new variants weighted toward what’s working.

Based on the ad-creative skill from coreyhaines31/marketingskills.

Two Modes

Generate from Scratch — Give it your product, audience, and goal. It produces ad sets across platforms.

Iterate from Performance Data — Feed it CTR, CPC, or conversion data from existing ads. It identifies which angles and copy patterns perform, then generates new variants that lean into what works.

Platform Specs Enforced

PlatformComponentCharacter Limit
Google RSAHeadline30 characters
Google RSADescription90 characters
MetaPrimary text (visible)125 characters
MetaHeadline40 characters
LinkedInIntro text150 characters
LinkedInHeadline70 characters
TikTokAd text80 characters
Twitter/XFull post280 characters

Creative Angles

Output is grouped by angle so you can test different approaches:

  • Pain point — lead with the problem
  • Outcome — lead with the result
  • Social proof — lead with numbers or testimonials
  • Curiosity — tease without revealing
  • Comparison — position against alternatives
  • Urgency — time or scarcity pressure
  • Identity — speak to who they want to be
  • Contrarian — challenge a common belief

Setup

Create .claude/commands/ad-creative.md:

mkdir -p .claude/commands

Then add this content to .claude/commands/ad-creative.md:

Generate platform-specific ad creative based on $ARGUMENTS.

## Step 1: Determine Mode

If $ARGUMENTS includes performance data or references existing ads:
**Iterate Mode**: Analyze what's working, generate improved variants
Otherwise:
**Generate Mode**: Create ad sets from scratch

## Step 2: Gather Context

Read from project files:
- `.claude/brand-voice.md` for tone and banned words
- `.claude/` directory for product details, audience, USPs
- `src/content/` for existing positioning and messaging

Ask the user if not clear:
- Target platforms (Google, Meta, LinkedIn, TikTok, Twitter/X)
- Campaign goal (awareness, traffic, conversions, app installs)
- Target audience description
- Key offer or product to promote

## Step 3: Generate Creative

For each target platform, produce 3-5 variants per creative angle.
Enforce these character limits strictly — truncate nothing, rewrite to fit:
- Google RSA: 30-char headlines, 90-char descriptions
- Meta: 125-char primary text (visible), 40-char headline
- LinkedIn: 150-char intro text, 70-char headline
- TikTok: 80-char ad text
- Twitter/X: 280-char full post

Group output by angle: pain point, outcome, social proof, curiosity, comparison, urgency, identity, contrarian.

## Step 4: Output

Write to `./ad-creative/[platform]-[campaign-goal].md`
Also write `./ad-creative/bulk-upload.csv` with columns: platform, angle, headline, description, primary_text, cta
Print angle summary and total variant count to terminal.

Usage

/project:ad-creative Google and Meta ads for our free trial, targeting marketing managers

Claude generates ad sets with every variant fitting the exact character limits, grouped by creative angle, and writes both human-readable files and a CSV ready for bulk upload.

Tips

  • Start with 2-3 angles, test them, then come back with performance data for Iterate Mode
  • The CSV export saves hours of manual entry into Google Ads Editor or Meta Business Suite
  • Run the Brand Voice Linter on the output if you have strict tone guidelines