Free SKILL.md scraped from GitHub. Clone the repo or copy the file directly into your Claude Code skills directory.
npx versuz@latest install minhnv0807-ai-business-skills-skills-en-05-ad-copy-globalgit clone https://github.com/minhnv0807/ai-business-skills.gitcp ai-business-skills/SKILL.MD ~/.claude/skills/minhnv0807-ai-business-skills-skills-en-05-ad-copy-global/SKILL.md---
name: 05-ad-copy-global
description: "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'."
metadata:
version: 1.0.0
category: content
license: MIT
triggers:
- "ad copy"
- "Facebook ads"
- "TikTok ads"
- "Google Ads copy"
- "dropshipping ads"
- "Shopify ads"
related:
- product-marketing-context-global
- 04-script-video-global
- 02-campaign-brief-global
- 17-pricing-strategy-global
- 29-dropshipping-mastery-global
- references/hook-formulas-global
---
# Ad Copy (Global)
## Step 0: Check context file
Before writing ad copy, read context file (if exists):
1. `.agents/product-marketing-context.md` (product marketing)
2. `.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:
1. **What product / service?** Short description, main USP, price, current promotion (if any).
2. **Which ad platform?** Meta Ads (Facebook/Instagram), TikTok Ads, Google Ads. If not specified — default to Meta Ads.
3. **Target audience?** Gender, age range, main pain point, decision maker. Cold (unaware) or Warm (engaged)?
4. **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:**
1. **Different hooks** — Pain vs Curiosity vs Aspiration (not just text swap, change angle)
2. **Different formats** — Vertical 9:16 vs Square 1:1 vs Carousel
3. **Different characters** — Founder vs Customer review vs KOC/expert
4. **Different audio** — Trending music vs Inspirational vs Voiceover
5. **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
```markdown
# 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
1. **Use specific numbers** — "27 units" not "limited stock"
2. **Photo-first creative** — text overlays, not text-only ads
3. **Always have urgency or scarcity** — countdown, limited stock, restock date
4. **Social proof tile** — "1,247 ordered today" in primary text
5. **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`.
---
## Related skills
- **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