# Meta Ads Generator

> One-prompt Meta ad generator. Input a product URL — extract brand voice/colors/imagery, scrape competitors and customer reviews, build a psychology pillar map, then generate 4 on-brand ad creatives. Trigger via `/meta-ads-generator` or when the user says "make meta ads for [product/url]".

- Skill: `tenfoldmarc/meta-ads-generator` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add tenfoldmarc/meta-ads-generator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tenfoldmarc/meta-ads-generator/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: tenfoldmarc (https://skillmd.com/u/tenfoldmarc)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tenfoldmarc/meta-ads-generator

---


# Meta Ads Generator

End-to-end pipeline: product URL → brand guidelines → psychology pillar map → 4 finished ad creatives in the brand's own style.

Backend-agnostic: works with Higgsfield MCP, kie.ai, OpenAI, or any OpenAI-compatible image API the user prefers.

---

## First-run check

Before doing anything, look for a `config.json` in this skill's directory.

- **If it exists,** read it and proceed.
- **If it does not exist,** open `setup.md` and run the setup wizard. Do not attempt to generate images until config is written.

---

## Inputs (ask once at start)

1. **Product URL** (required) — the actual landing/product page.
2. **Ad goal** (required, default = `purchase`) — purchase, lead, install, demo, etc.
3. **Primary audience** (optional — infer from page if skipped).
4. **Output folder** (optional — default `~/meta-ads-generator-output/<brand-slug>/`).

If the user just drops a URL, assume goal = purchase and proceed. Don't interrogate.

---

## Pipeline

### Step 1 — Extract brand guidelines

Use `WebFetch` (or the `clone-website` / `crawl` skill if installed) on the product URL. Pull:

- **Copy samples** — headlines, subheads, CTAs, body voice
- **Tone** — formal/casual, technical/playful, fear/aspiration
- **Color palette** — dominant + accent (sample from CSS or screenshots)
- **Typography** — font families used
- **Product imagery** — download all hero/product shots to `<output>/assets/product/`
- **Logo** — pull SVG/PNG to `<output>/assets/logo/`

Save to `<output>/brand-guidelines.md` with sections: Voice, Palette (hex), Fonts, Visual motifs, Do/Don't.

### Step 2 — Competitor + customer research

Run in parallel:

- **Competitors** — use `WebSearch` for "[product category] facebook ads" and Meta Ad Library lookups. Pull 5-10 active competitor ads in the same category. Note: hooks used, formats, claims, visual patterns. (If the `competitive-ads-extractor` skill is installed, use it.)
- **Customer reviews** — scrape Trustpilot / Google reviews / Amazon / G2 / app store reviews via `WebSearch` + `WebFetch` (or `tavily-research` / `crawl` if installed). Pull 30-50 reviews minimum. Capture verbatim phrases.

Save raw findings to `<output>/research/competitors.md` and `<output>/research/reviews.md`.

### Step 3 — Psychology pillar map

Synthesize Step 2 into 4-6 **psychology pillars** — the emotional/rational drivers behind why this audience buys. Each pillar gets:

- **Name** (e.g. "Status anxiety", "Time scarcity", "Insider knowledge")
- **Trigger** — the underlying fear/desire
- **Customer phrase** — verbatim quote from reviews proving it exists
- **Competitor angle** — how rivals address it (or miss it)
- **Ad angle for us** — how this brand should hit it differently

Save to `<output>/pillar-map.md`.

### Step 4 — Generate 4 ad concepts

Pick the **top 4 pillars** (highest emotional charge × least covered by competitors). For each, draft:

- **Hook** (3-7 words, on-screen text)
- **Headline** (the typeset focal line)
- **Subhead/proof** (one short line)
- **CTA**
- **Visual direction** (composition, product placement, palette use, mood)

Save to `<output>/ad-concepts.md`. Show the user — wait for approval or edits before generating images.

### Step 5 — Generate creatives (backend-routed)

Read `config.json`. Route to the correct backend doc:

- `backend: "higgsfield"` → follow `backends/higgsfield.md`
- `backend: "kie"` → follow `backends/kie.md`
- `backend: "openai"` → follow `backends/openai.md`
- `backend: "custom"` → follow `backends/custom.md`

**Reference ads injection:** before calling the backend, list any image files in the user's `reference_ads_folder` (set during setup). For each backend, pass these as visual reference inputs (Higgsfield: `media_upload` + `media_confirm`; OpenAI gpt-image-1: `image[]` parameter; kie / custom: per their schema). If a backend doesn't support image refs, summarize the references in plain language ("the user's saved reference ads tend to use [X] composition, [Y] color, [Z] type treatment") and prepend that to the prompt.

**Universal prompt template** (each backend's doc shows how to wrap it in the right request shape):

```
On-brand Meta ad in {brand} style.
Palette: {hex primary} dominant with {hex accent} accent.
Typography mood: {brand font feeling}.
Composition: {visual direction from concept}.
Headline (typeset prominently): "{headline}"
Subhead (smaller): "{subhead}"
CTA pill: "{cta}"
Product: use the uploaded product image as the hero element.
Logo: small, top-left or bottom-right.
1080×1350 safe zone — keep top 100px and bottom 100px clear of critical text.
Match the design language of the user's reference ads (provided as visual references).
NO purple-on-white gradient. NO Inter / Roboto / Arial. NO AI-generated faces unless the brand uses photography of real people.
```

Run **one image generation call at a time** (parallel calls time out on most providers).

### Step 6 — Review + save

Save all 4 to `<output>/`. On macOS run `open -a Preview <output>/*.png` so the user can scan them. Stage approved ones in `<output>/keepers/`.

If the user wants to launch directly to Meta, they need the Meta Ads CLI or Meta Ads MCP installed and authenticated separately — this skill stops at creative generation.

---

## Hard rules

- **No em dashes** in any ad copy.
- **One image generation call at a time.**
- **Always present concepts before generating images.** Don't burn API spend on unapproved directions.
- **Brand voice over user voice.** This skill writes in the *client's / product's* voice, not the operator's.
- **Cite sources in pillar map.** Every pillar needs a real customer quote — no fabricated psychology.
- **Safe zones** — 1080×1350 output, keep 100px top/bottom clear.
- **Reference ads matter.** If the user has saved reference ads in their `reference_ads_folder`, always include them. They're the strongest signal of what the user considers a "good ad."

---

Built by [@tenfoldmarc](https://instagram.com/tenfoldmarc). Follow for daily AI automation builds — real systems, not theory.

