Skip to content
Marketing
Skill

/ad-creative-generation

Generate on-brand ad creatives — visuals + copy — for Google, Meta (Facebook / Instagram), and other paid platforms via the Hyper MCP. Extracts brand identity from a website, writes ad copy variants, and produces brand-consistent images using reference-based image generation.

From plugin
hyper-marketing
10830 skills1 MCP

Claude Code

$ npx -y skills add hyperfx-ai/marketing-skills --skill ad-creative-generation --agent claude-code

SKILL.md

ad-creative-generation.SKILL.md
name: ad-creative-generation
description: Generate on-brand ad creatives — visuals + copy — for Google, Meta (Facebook / Instagram), and other paid platforms via the Hyper MCP. Extracts brand identity from a website, writes ad copy variants, and produces brand-consistent images using reference-based image generation. Use when the user asks for ad creative, ad copy variants, RSA headlines, Meta ad creative, display ads, carousel ads, or A/B test variants.
metadata:
  version: 1.1.0
requires_toolkits:
  - image_gen
icon: image_gen
short_description: Brand extraction, ad copy variants, and on-brand images for Google and Meta placements.

Ad Creative Generation

Generate ad creatives — both visuals and copy — that match a brand's identity. This skill orchestrates brand extraction, copywriting, and image generation into a single workflow.

Requirements

This skill assumes the [Hyper MCP](https://app.hyperfx.ai/mcp) is connected to your agent so the tools below are available. Brand extraction also requires Firecrawl to be configured under your Hyper integrations.

How to run the tools in this skill

Every tool in this skill is named by its canonical tool name. Run it with the call your surface gives you:

| Surface | Find a tool | Run it | | --- | --- | --- | | Hyper chat | Call the tool by its name; `search_tools(queries=["<provider> <action>"])` shows its parameters | `<name>(...)` | | MCP client (Claude, Cursor, Codex, ChatGPT) | `search("<what you want to do>")`, then `describe("<name>")` | `call_read("<name>", {...})`, `call_write` or `call_destructive`: the one that `describe` names in `call_with` | | Hyper CLI | `hyperai search "<what you want to do>"`, then `hyperai describe <name>` | `hyperai call <name> --json '{...}'` |

If a tool is not found: in Hyper chat, find its toolkit id with `discover_toolkits` and pass it to `enable_toolkit`. On an MCP client or the CLI, tell the user which integration to connect in Hyper.

Tool surface

| Group | Tools | |-------|-------| | Brand extraction | `firecrawl_branding_extract` | | Competitor ads | `marketing_queries_start`, `marketing_queries_continue` (stream `ads.meta_library`) | | Image generation (default) | `images_generate` (`model="gpt-image-2"`) | | Image generation (text-heavy) | `images_generate` (`model="nano-banana-pro"`) | | Image generation (photoreal product shots) | `images_generate` (`model="seedream-4.5"`) |

For deeper image-tool selection guidance see the `image-generation` skill. To turn finished creatives into running campaigns see `google-ads` and `meta-ads`.

Out of scope

  • Picking the right image model when the task isn't ad creative — use `image-generation`.
  • Creating, launching, or budgeting actual ad campaigns — use `google-ads`, `meta-ads`, `tiktok-ads`, `pinterest-ads`, or `amazon-ads`.
  • Searching live competitor ads — use `meta-ads-library`. To read the Meta ads of a known competitor by its domain or Meta page in one query, use `marketing_queries_start` with the `ads.meta_library` stream; a repeated query within a day reads the stored run at no cost.

Critical rules

  • **Always extract branding first** before generating visuals for a website/brand.
  • **Always pass both logo and screenshot** as reference images — SVG logos are auto-converted to PNG.
  • **DO NOT display image URLs** — they are automatically shown in chat.
  • **Read `brand.screenshot.description`** to understand the product — never guess from the company name.
  • **Default to logo + headline + product screenshot** for SaaS / product ads unless the user requests a different style.
  • **Use `model="gpt-image-2"` for the initial ad creative by default** — with reference images for branded work, or without for loose first-pass concepts.
  • **Do not default to `model="nano-banana-pro"` for the first creative pass** — use it when the user explicitly asks or when readable text inside the image is the main requirement.
  • **Set `aspect_ratio` to the placement** — `1:1` (feed), `9:16` (story), `16:9` (banner) — and `quality` (`"draft" | "standard" | "high"`); `images_generate` takes those, not raw pixel sizes.
  • **Respect character limits** — Google RSA headlines are 30 chars, descriptions 90 chars; Meta primary text is 125 chars visible.
  • **Change one variable per variant** so test results are attributable.
  • **Match aspect ratio to placement** — feed is 1:1, story is 9:16 (use `1024x1536`), banner is 16:9 (use `1536x1024`).

Routing Table

Based on what the user needs, read the appropriate reference file:

| User Need | Reference | |-----------|-----------| | "Extract branding from this site" / brand colors, logo | `references/brand-extraction.md` | | "Write ad copy" / headlines / variants / hooks | `references/ad-copy-frameworks.md` | | Google RSAs / display ads / Performance Max assets | `references/google-ads-creatives.md` | | Meta / Facebook / Instagram ads / carousel / stories | `references/meta-ads-creatives.md` |

When the task spans multiple areas (e.g., "create ad creatives for this website"), follow the full workflow below.

Core Workflow

Phase 1: Brand Extraction

Call `firecrawl_branding_extract` with the website URL. This single call returns branding data, a saved logo, and a website screenshot:

brand = firecrawl_branding_extract(url="https://example.com")

The result contains:

  • `brand.logo.file_id` — logo image to use as reference
  • `brand.screenshot.file_id` — website screenshot to use as reference
  • `brand.branding` — colors, typography, spacing, personality

Both `logo` and `screenshot` are saved images ready to pass as `reference_images` to image generation tools. SVG logos are automatically converted to PNG, so always include the logo — no need to filter by format.

**Read `references/brand-extraction.md` only when the site gives no logo, colors or screenshot.**

Phase 2: Ad Copy Generation

Using the brand personality, tone, and value proposition from the extraction, write ad copy va

Read more
@hyperfx-ai
Ships withhyper-marketing

Agent Skills for marketing — paid ads, social media, SEO, AI search, competitor research, ad creative generation, email lifecycle, analytics, operations, and more.

10830 skills1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
108
Star history of hyperfx-ai/marketing-skills on GitHub, a chart by star-history.com

Other skills on hyper-marketing.

amazon-ads

amazon-ads

Plan and create Amazon Sponsored Products campaigns end-to-end via the Hyper MCP. Use when the user wants to launch Amazon Ads,…

brand-context

brand-context

Create and maintain a single brand-context.md — positioning, audience, personas, pain points, customer language, voice, proof…

More skills from other plugins.

seo

seo

Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…

@agricidaniel@agricidanielInstall Skill
brag

brag

Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…

brag2w21k
@latent-spaces@latent-spacesInstall Skill
geo-audit

geo-audit

Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…

Questions about ad-creative-generation.

Which coding agents can use ad-creative-generation?
ad-creative-generation installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.