From claude-ads
Generates platform-specific ad images from campaign-brief.md and brand-profile.json using banana-claude. Supports Meta, Google, TikTok, LinkedIn, YouTube, Microsoft specs.
npx claudepluginhub agricidaniel/claude-ads --plugin claude-adsThis skill uses the workspace's default tool permissions.
Generates platform-sized ad creative images from your campaign brief and brand
Generates structured campaign concepts, messaging pillars, and copy briefs for paid ads from brand-profile.json and optional audit results. Outputs campaign-brief.md for ad workflows.
Generates Meta (Facebook/Instagram) ad creatives including feed ads, stories, reels, carousels, and videos using each::sense AI, optimized for ad formats and best practices.
Generates AI ad creatives, tests performance variants, manages creative fatigue, and optimizes paid media for Meta, Google, TikTok, YouTube, LinkedIn using Advantage+, Performance Max, and tools like Runway, Midjourney.
Share bugs, ideas, or general feedback.
Generates platform-sized ad creative images from your campaign brief and brand profile. Uses banana-claude as the image generation provider.
| Command | What it does |
|---|---|
/ads generate | Generate all images from campaign-brief.md |
/ads generate --platform meta | Generate Meta assets only |
/ads generate --prompt "text" --ratio 9:16 | Standalone generation without brief |
Required before running:
/banana setup to configure API key and MCPscripts/generate_image.py (deprecated)If banana-claude is not installed, this skill will display setup instructions and stop. It will never fail silently.
If banana-claude is unavailable, alternatives include: OpenAI gpt-image-1 ($0.040/image), Stability SD 3.5 ($0.065), or Replicate FLUX.1 Pro ($0.055). Configure via ADS_IMAGE_PROVIDER env var.
Verify banana-claude is installed (run /banana setup to check). If not installed,
display setup instructions and exit.
Check for:
campaign-brief.md → primary source for prompts and dimensionsbrand-profile.json → brand color/style injection (optional but recommended)If campaign-brief.md is found: Use ## Image Generation Briefs section as the
generation job list.
If no campaign-brief.md: Enter standalone mode (Step 2b).
Ask the user:
Then skip to Step 5.
Load ~/.claude/skills/ads/references/image-providers.md to confirm:
For each platform in the campaign brief, load the relevant spec reference:
~/.claude/skills/ads/references/meta-creative-specs.md~/.claude/skills/ads/references/google-creative-specs.md~/.claude/skills/ads/references/tiktok-creative-specs.md~/.claude/skills/ads/references/linkedin-creative-specs.md~/.claude/skills/ads/references/youtube-creative-specs.md~/.claude/skills/ads/references/microsoft-creative-specs.mdCreate banana brand preset from brand-profile.json if one does not already exist
at ~/.banana/presets/{brand-slug}.json.
Select banana domain mode based on campaign brief content:
Spawn the visual-designer agent using the Task tool with context: fork,
passing the selected domain mode and preset name.
The agent will:
./ad-assets/[platform]/[concept]/ directory structuregeneration-manifest.jsonAfter the visual-designer completes, spawn the format-adapter agent
with context: fork to validate dimensions and report missing formats.
Use Claude vision to assess each generated image against the brief (score 1 to 10 on brand alignment, composition, platform fit). If any image scores below 6, regenerate once with an adjusted prompt.
Quality Gate Rubric:
Read banana cost data from ~/.banana/costs.json and include total creative spend
in generation-manifest.json.
Present a summary:
Generation complete:
Generated assets:
✓ ./ad-assets/meta/concept-1/feed-1080x1350.png
✓ ./ad-assets/tiktok/concept-1/vertical-1080x1920.png
✗ ./ad-assets/google/concept-1/landscape-1200x628.png [error reason]
Format validation: See format-report.md
Cost: $[N] total creative spend (from ~/.banana/costs.json)
Next steps:
1. Review assets in ./ad-assets/
2. Check format-report.md for any missing formats
3. Upload to your ad platform managers
Before generating, estimate and show the cost:
When running without a campaign brief:
Platform target → dimensions used:
meta-feed → 1080×1350 (4:5)
meta-reels → 1080×1920 (9:16)
tiktok → 1080×1920 (9:16)
google-pmax → 1200×628 (1.91:1)
linkedin → 1080×1080 (1:1)
youtube → 1280×720 (16:9)
youtube-short → 1080×1920 (9:16)
Use /banana generate directly with the specified prompt and aspect ratio.
~/.claude/skills/ads/references/image-providers.md: provider config, pricing, limits~/.claude/skills/ads/references/[platform]-creative-specs.md: per-platform specs~/.claude/skills/ads/references/brand-dna-template.md: brand injection schema