| name | ads_engine |
| description | Write paid traffic ad copy for Facebook, Instagram, Google, YouTube, and display networks using classic direct-response patterns. Use this skill whenever the user asks to create ads, write ad copy, generate Facebook ads, write Google ads, create a YouTube script, or produce any paid media creative. Also trigger for "ad angles", "ad variations", "split test copy", or "retargeting ads". Outputs platform-ready copy with multiple angle variations.
|
Skill: ads_engine
Purpose
Create paid traffic ad copy using classic DR headline/creative patterns and modern funnel alignment. Outputs platform-ready variations with testing notes.
Platform Character Limits (Enforced)
| Platform | Field | Limit |
|---|
| Facebook / Instagram | Primary text | 125 chars (feed preview) / 500 chars (expanded) |
| Facebook / Instagram | Headline | 40 chars |
| Facebook / Instagram | Description | 30 chars |
| Google RSA | Headline | 30 chars each (up to 15) |
| Google RSA | Description | 90 chars each (up to 4) |
| YouTube | Hook (first 5 sec) | ~15 words spoken |
| YouTube | Body script | 60–90 seconds for skippable pre-roll |
All outputs must respect these limits. If a variation exceeds the limit, flag it and provide a trimmed version.
Inputs
| Field | Type | Description |
|---|
platform | enum | facebook, instagram, google_search, youtube, display |
objective | enum | leads, sales, traffic, book_call, retargeting |
audience | string | Segment + awareness level |
offer | string | Offer name and main promise |
destination | string | Funnel/page type and URL if available |
brand_voice | string[] | 2–4 adjectives (default: ["direct", "no-BS", "punchy"]) |
existing_copy_examples | string[] | Past ads, emails, or posts that feel on-brand |
style_preset | enum | See presets below |
angle_list | string[] | e.g. ["mistakes", "how_to", "status", "fear", "speed", "price"] |
variations_per_angle | int | Number of variants per angle (default: 2) |
constraints | string[] | Platform rules, compliance notes, forbidden claims |
Style Presets
caples_headlines
Headline-first, formula-based. Best for cold audiences who need a clear benefit.
- Generates multiple headline ideas per angle
- Patterns: "They laughed when…", "Do you make these mistakes in…?", "How to [result] without [pain]"
- Short primary text that supports the headline
sugarman_curiosity
Story-based, curiosity-heavy. Best for cold audiences, content-adjacent ads.
- Opens with an intriguing or unusual first line
- Builds a short narrative before revealing the offer
- Curiosity gap drives the click, not the benefit
halbert_raw
Starving crowd, blunt. Best for audiences that are pain-aware and ready to act.
- Calls out the audience and result directly in line 1
- Minimal setup, maximum benefit language
- Feels like a "barstool" conversation — no polish, all punch
kennedy_direct_response
No-BS DR. Best for warm/hot audiences or retargeting.
- Clear offer, price anchor, and hard CTA
- Includes deadline, limit, or strong reason to act now
- Qualifies the prospect: "If you [X], this is for you"
brunson_funnel_match
Ad mirrors the funnel's big idea. Best for webinar and VSL traffic.
- Uses the same language as the landing page headline
- Pre-frames the webinar or offer structure
- Bridges the gap so ad-to-page feels seamless
Outputs
Facebook / Instagram
For each angle:
angle_name: [name]
testing_note: [what this angle tests — benefit vs fear, price vs speed, etc.]
PRIMARY TEXT (125 chars):
[variation 1]
[variation 2]
PRIMARY TEXT (expanded, up to 500 chars):
[variation 1]
[variation 2]
HEADLINES (40 chars):
[variation 1]
[variation 2]
[variation 3]
DESCRIPTION (30 chars):
[variation 1]
CTA BUTTON: [Learn More | Sign Up | Book Now | Shop Now]
Google Search (RSA)
HEADLINES (30 chars each — provide 10–15):
1.
2.
...
DESCRIPTIONS (90 chars each — provide 4):
1.
2.
3.
4.
YouTube Pre-Roll
HOOK (first 5 seconds / ~15 words):
[hook line]
BODY SCRIPT OUTLINE (60–90 seconds):
0:05 — Problem statement: [1–2 sentences]
0:20 — Agitate: [1–2 sentences why it matters]
0:35 — Solution reveal: [what you're offering]
0:50 — Proof / credibility: [specific result or authority]
1:05 — CTA: [one clear next step]
CTA LINE:
[exact spoken CTA]
Rules / Guardrails
- Hook first. Opening line must stop the scroll. If it doesn't, it fails.
- One idea per ad. Every variation makes one promise and one ask.
- Stand-alone. Each variation works without prior exposure to the brand.
- No vague outcomes. "More leads" is not a promise. "47 booked calls in 30 days" is.
- CTA must be explicit. "Click below", "Book your call", "Register now" — not "learn more" alone.
- Respect character limits. Flag any variation that exceeds limits and provide trimmed version.
- Match funnel message. Ad promise must match what the landing page delivers.
- No banned claims. Default to
[INSERT_RESULT_PLACEHOLDER] for sensitive outcomes.