mcpbeat

05 Ad Copy Global

minhnv0807/05-ad-copy-global

6 ad copy variations (2 TOFU + 2 MOFU + 2 BOFU) for global markets. Frameworks: AIDA, PAS, BAB. Platforms: Meta, Google, TikTok. INCLUDES Dropshipping Mode (4 templates) for Shopify dropshippers. Trigger: 'ad copy', 'Facebook ads', 'TikTok ads', 'Google Ads copy', 'dropshipping ads', 'Shopify ads'.

4k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
519
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/minhnv0807/ai-business-skills --skill 05-ad-copy-global

The instruction itself

34 sections, as written by the author

Ad Copy (Global)

Step 0: Check context file

Before writing ad copy, read context file (if exists):

  • .agents/product-marketing-context.md (product marketing)
  • .agents/personal-brand-context.md (personal brand)

Decide mode:

  • Only product-marketing-context.md exists -> MODE A (default — 6 TOFU/MOFU/BOFU variations)
  • Only personal-brand-context.md exists -> MODE B (Personal Brand Mode)
  • Both exist -> ASK 1 question: "Are you running ads to sell a product or boost personal brand?"
  • Neither exists -> Suggest creating appropriate context

Information gathering

Ask up to 4 questions before writing:

  • What product / service? Short description, main USP, price, current promotion (if any).
  • Which ad platform? Meta Ads (Facebook/Instagram), TikTok Ads, Google Ads. If not specified — default to Meta Ads.
  • Target audience? Gender, age range, main pain point, decision maker. Cold (unaware) or Warm (engaged)?
  • Ad objective? Messages (DM), Lead form, Traffic, Conversions. If not specified — default to Messages.

Core principles

125-character rule

On Meta Ads, only the first 125 characters show before "See more" button. Line 1 of primary text must:

  • Spark curiosity OR hit pain point
  • Include USP or specific number
  • Be self-contained (don't cut mid-sentence)
GOOD:  "Tired of acne for 3+ years? A 28-day routine — guaranteed clear skin or refund."  (76 chars)
BAD:   "Hello there, thank you for your interest in our services. Today I want to share..." (cut mid-sentence)

Emotional trigger library

| # | Trigger | Description | Example |

|---|---------|-------------|---------|

| 1 | Pain | Hit current problem — create empathy | "Tired of breakouts? You're not alone..." |

| 2 | Aspiration | Paint a better future image | "Imagine clear, confident skin without filters" |

| 3 | FOMO | Fear of missing out, scarcity | "Only 12 slots left this month — 89 people booked" |

| 4 | Social Proof | Others did and succeeded | "1,200 customers tried — 4.8/5 stars" |

| 5 | Authority | Experts, certifications, experience | "10 years experience — board-certified dermatologist consults directly" |

| 6 | Curiosity | Spark questions, want to know more | "There's 1 thing 90% of skincare users get wrong — do you know?" |

Trigger rules by funnel:

  • TOFU: Curiosity (6), Pain (1), Aspiration (2)
  • MOFU: Social Proof (4), Authority (5), Pain (1)
  • BOFU: FOMO (3), Social Proof (4), Pain (1)

6 Professional Copy Frameworks

Choose framework by audience temperature

| Temperature | Priority frameworks | Why |

|-------------|---------------------|-----|

| Cold (unaware) | AIDA, Star·Story·Solution | Logic from scratch; storytelling without ad-feel |

| Warm (engaged, no purchase) | PAS, 4P | Re-trigger pain; build trust with proof |

| Hot (high intent, near purchase) | FAB, BAB | Hammer specific benefits; visual transformation |

| Retarget (viewed, no purchase) | PAS or BAB | Reinforce consequences or transformation |

Framework summary

| Framework | Structure | When to use | Best platforms |

|-----------|-----------|-------------|----------------|

| AIDA | Attention -> Interest -> Desire -> Action | Cold audience, new product launch | Meta feed, TikTok, YouTube pre-roll |

| PAS | Problem -> Agitate -> Solution | Warm audience, clear pain (spa, health, edu) | Meta feed, LinkedIn, Google RSA |

| BAB | Before -> After -> Bridge | Transformation offer (spa, fitness, edu) | Meta Reels/Stories, TikTok |

| 4P | Promise -> Picture -> Proof -> Push | High-ticket, requires trust (real estate, courses, B2B) | LinkedIn, Google, long Meta feed |

| FAB | Features -> Advantages -> Benefits | High-intent, comparison stage | Google RSA, Meta retarget |

| Star·Story·Solution | Star -> Story -> Solution | Brand storytelling, UGC-style, no ad-feel | TikTok, Reels, YouTube Shorts |

> Common mistake: Writing freeform (intro -> features -> CTA) instead of using a framework. Result: bland copy, low CTR. Each of the 6 variations should use a different framework.

Andromeda Warning — Don't clone ads

> Meta 2026: Andromeda system clusters ads with Creative Similarity Score > 60% — auto-reduces delivery. 100 minor variations (color swap, clip cut, font change) is NOT better than 10 truly distinct creatives.

Safety thresholds:

| Similarity Score | Status | Action |

|------------------|--------|--------|

| < 40% | Safe | Continue |

| 40-60% | Warning | Re-check — may cluster |

| > 60% | Danger | Andromeda clusters -> auto delivery cut |

5 dimensions of diversity:

  • Different hooks — Pain vs Curiosity vs Aspiration (not just text swap, change angle)
  • Different formats — Vertical 9:16 vs Square 1:1 vs Carousel
  • Different characters — Founder vs Customer review vs KOC/expert
  • Different audio — Trending music vs Inspirational vs Voiceover
  • Different settings — Studio vs Outdoor vs UGC living room

6 ad hook types — Line 1 decides everything

First 125 chars = ad hook. Each variation should use a different hook type:

| # | Hook type | Formula | Example |

|---|-----------|---------|---------|

| 1 | Number | Specific, surprising stat | "1,247 customers tried — 98% returned for round 2" |

| 2 | Counterintuitive | Flip common belief | "Running MORE ads won't get you more customers" |

| 3 | Before/After | Specific transformation | "From 5 orders/week to 40 orders/week — in 60 days" |

| 4 | Borrowed authority | Name expert/cert/brand | "Top dermatologist with 15 years experience recommends — surprising reason" |

| 5 | Confession | Share real mistake/lesson | "I burned $200K on bad ads — here's what I do now" |

| 6 | Urgency | Time/quantity limit | "8 slots left this June — 34 people waiting" |

Hook selection by funnel:

  • TOFU (cold): Hook 1 (number), 2 (counterintuitive) — grab attention
  • MOFU (warm): Hook 3 (before/after), 4 (authority) — build trust
  • BOFU (hot): Hook 5 (confession), 6 (urgency) — drive action

Hook check:

  • [ ] Line 1 <= 125 chars and self-contained
  • [ ] Includes specific number or detail (not generic)
  • [ ] Sparks curiosity or emotional hit — reader WANTS to click "See more"
  • [ ] 6 variations use 6 DIFFERENT hook types

Copy Scoring — Score before delivery

Score on 5 criteria, 1-10 each. Only deliver if >= 35/50.

| Criterion | 8-10 points | 5-7 points | 1-4 points |

|-----------|-------------|------------|------------|

| Hook strength | Strong curiosity, specific number/detail, funnel-fit | Acceptable but unimpressive | Generic, no anchor |

| Emotional trigger | Clear trigger (Pain/FOMO/Social proof), felt | Has trigger but mild | No trigger, no feeling |

| CTA clarity | Specific, clear action, single step | CTA exists but unclear | Vague ("Learn more", "Click here") |

| Compliance | 0 policy violations | 1 mild warning | Clear violation = rejected |

| Platform fit | Char limit correct, voice matches platform | Close enough | Wrong limit or wrong voice |

| Total | Rating | Action |

|-------|--------|--------|

| 45-50 | Excellent | Ship now, monitor performance |

| 35-44 | Good | Ship with improvement notes |

| 25-34 | Average | Revise before shipping |

| < 25 | Weak | Rewrite from scratch |

> Add this line to every output: Copy Score: [X]/50 — [Rating]


Platform rules

| Rule | Meta Ads | TikTok Ads | Google Ads |

|------|----------|------------|------------|

| Primary text length | 125 char line 1 + 300-500 full | 80-100 char (text overlay) | No primary text |

| Headline | Max 40 char | None | Max 30 char x 3 |

| Description | Max 30 char | None | Max 90 char x 2 |

| Voice | Professional but friendly | Young, natural, conversational | Direct, keyword-driven |

| CTA button | Pick from Meta list | No button — CTA in text | No button — CTA in headline |

| Image / Video | 1:1 (feed), 9:16 (story/reel) | 9:16 mandatory | N/A (search) |

CTA — Priority order

Specific > vague. Clear action > ambiguous.

| Strength | CTA | When to use |

|----------|-----|-------------|

| Strongest | "Message us to book a slot" | Messages goal, BOFU |

| Strong | "Book free consultation" | Lead form, MOFU/BOFU |

| Medium | "See pricing details" | Traffic, MOFU |

| Light | "Learn more" | Awareness, TOFU |

Avoid: Generic CTAs without action ("Click here", "Contact now").

Ad policy compliance checklist

| Rule | Detail | Violation = ad rejected |

|------|--------|------------------------|

| No absolute claims | Avoid "guaranteed", "100%", "definitely" | Yes |

| No "free" in headline | Meta flags "free" in headline — use in body instead | Yes |

| No excessive "promo" | Once in body — no repeat | Yes |

| No personal attributes | Avoid "Are you fat?", "Do you have acne?" — use "Many people experience..." | Yes |

| Realistic before/after | No heavy retouching of before/after photos | Yes |

| No sensitive imagery | No close-up acne, wounds, body parts | Yes |

| Mandatory disclaimer | Supplements, medical — disclaimer required | Yes |


Output structure

General info

# Ad Copy: [Product/Campaign Name]
Date: [YYYY-MM-DD]
Platform: [Meta Ads / TikTok Ads / Google Ads]
Goal: [Messages / Lead / Traffic / Conversion]
Audience: [Brief description]
Main USP: [1 sentence]

TOFU — Awareness (Cold audience)

Variation 1: [Angle name — e.g., "Hit the pain"]

| Component | Content |

|-----------|---------|

| Trigger | [Pain / Curiosity / Aspiration] |

| Primary text (125 char) | [Line 1 — shown before "See more"] |

| Primary text (full) | [Full content — 300-500 char] |

| Headline | [Max 40 char] |

| Description | [Max 30 char] |

| CTA button | [Learn More / Send Message] |

| Creative note | [Image/video brief] |

Variation 2: [Angle name — e.g., "Curiosity"]

_(Same structure, different angle and trigger)_


MOFU — Persuasion (Warm audience)

Variation 3: [Angle — e.g., "Social Proof"]

| Component | Content |

|-----------|---------|

| Trigger | [Social Proof / Authority] |

| Primary text (125 char) | [Line 1] |

| Primary text (full) | [Full content — emphasize proof, reviews, numbers] |

| Headline | [Max 40 char] |

| Description | [Max 30 char] |

| CTA button | [Send Message / Book Now] |

| Creative note | [Use review/before-after creative] |

Variation 4: [Angle — e.g., "Expert"]

_(Same structure, different angle)_


BOFU — Close (Hot audience + Retarget)

Variation 5: [Angle — e.g., "FOMO"]

| Component | Content |

|-----------|---------|

| Trigger | [FOMO / Social Proof] |

| Primary text (125 char) | [Line 1 — emphasize urgency, scarcity] |

| Primary text (full) | [Full content — deadline, quantity, specific offer] |

| Headline | [Max 40 char] |

| Description | [Max 30 char] |

| CTA button | [Book Now / Send Message / Buy Now] |

| Creative note | [Numbers, countdown] |

Variation 6: Retarget — [Angle — e.g., "Reminder"]

For users who messaged but didn't book / viewed but didn't purchase.

| Component | Content |

|-----------|---------|

| Trigger | [Pain + FOMO] |

| Primary text (125 char) | [Reminder — "Last week you asked about..."] |

| Primary text (full) | [Re-trigger pain, add new proof, limited offer] |

| Headline | [Max 40 char] |

| Description | [Max 30 char] |

| CTA button | [Send Message / Book Now] |

| Creative note | [Different from first ad — avoid ad fatigue] |


Summary table

| # | Funnel | Angle | Trigger | Hook (125 char) | CTA |

|---|--------|-------|---------|-----------------|-----|

| 1 | TOFU | [Angle 1] | [Trigger] | [125 char] | [CTA] |

| 2 | TOFU | [Angle 2] | [Trigger] | [125 char] | [CTA] |

| 3 | MOFU | [Angle 3] | [Trigger] | [125 char] | [CTA] |

| 4 | MOFU | [Angle 4] | [Trigger] | [125 char] | [CTA] |

| 5 | BOFU | [Angle 5] | [Trigger] | [125 char] | [CTA] |

| 6 | BOFU | Retarget | [Trigger] | [125 char] | [CTA] |

A/B test guide

| Test | Variation A | Variation B | Metric | Duration |

|------|-------------|-------------|--------|----------|

| Hook | Variation 1 | Variation 2 | CTR, CPMess | 3-5 days |

| CTA | Variation 3 | Variation 4 | Conversion rate | 3-5 days |

| Offer | Variation 5 | Variation 6 | ROAS, CPA | 5-7 days |

Test rules:

  • Test 1 element per test (hook OR CTA OR offer)
  • Test budget: minimum $10/day/variation
  • Min data: 1,000 impressions or 50 clicks before concluding
  • Win/loss: >20% gap = statistically significant

Dropshipping Mode

> Activates when user mentions: "dropshipping", "shopify product", "winning product".

> Different from regular ad copy — focused on impulse purchase, urgency, scarcity.

4 Dropshipping Ad Templates

Template 1: Urgency Hook

  • Primary text: "Selling out FAST — only 27 units left in stock! Get yours before midnight..."
  • Headline: "Almost Gone"
  • CTA: "Shop Now"

Template 2: Scarcity Hook

  • Primary text: "We can only restock this every 6 weeks. If you've been thinking about it..."
  • Headline: "Limited Restock"
  • CTA: "Order Now"

Template 3: Problem-Aware Hook

  • Primary text: "Tired of [pain point]? This [product] solves it in 30 seconds. Watch how ->"
  • Headline: "Solved In 30 Seconds"
  • CTA: "Learn More"

Template 4: Transformation Hook

  • Primary text: "Before: [problem image] -> After: [solution image]. Real customer photo, no editing."
  • Headline: "Before & After"
  • CTA: "See How"

Dropshipping Ad Copy Rules

  • Use specific numbers — "27 units" not "limited stock"
  • Photo-first creative — text overlays, not text-only ads
  • Always have urgency or scarcity — countdown, limited stock, restock date
  • Social proof tile — "1,247 ordered today" in primary text
  • Free shipping mention — if applicable, primary text line 2

Reference

For full dropshipping pipeline, see skill 29-dropshipping-mastery-global and reference dropshipping-tools-global.md.


  • 04-script-video-global — Use ad copy as voiceover/text overlay for video ads
  • 02-campaign-brief-global — Ad copy is part of overall campaign brief
  • 17-pricing-strategy-global — Pricing affects offer in BOFU copy
  • 29-dropshipping-mastery-global — Full dropshipping pipeline

Quality checklist

Check before delivery:

  • [ ] Has 6 variations: 2 TOFU + 2 MOFU + 2 BOFU (1 retarget)
  • [ ] Line 1 of each variation <= 125 chars
  • [ ] Headline <= 40 chars
  • [ ] Each variation uses different emotional trigger
  • [ ] CTA specific, actionable — not generic
  • [ ] No policy violations (see compliance checklist)
  • [ ] No "free" in headline
  • [ ] No personal attributes ("Are you...?", "You have...?")
  • [ ] Has creative note (image/video) for each variation
  • [ ] Voice matches platform (Meta vs TikTok vs Google)
  • [ ] Has clear A/B test guide
  • [ ] Retarget creative differs from first ad
  • [ ] Each variation uses framework matching audience temperature (Cold/Warm/Hot)
  • [ ] No 2 variations using same framework + same hook -> Andromeda risk
  • [ ] Creatives truly differentiated — not just color/clip swap

How to use it

Copy the folder

Take minhnv0807/05-ad-copy-global from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.