Skip to main content
ClaudeWave
Skill458 estrellas del repoactualizado 2mo ago

paid-ad-copy-writer

This Claude Code skill generates compliant, platform-specific paid ad copy for affiliate offers across Facebook, Google Search, Google Display, TikTok, and Pinterest. Use it when scaling profitable organic campaigns to paid media, when a user requests ad copy for specific platforms, or when chaining from a landing page (S4) to drive traffic. The skill outputs multiple ad variants formatted for each platform, includes targeting suggestions and FTC compliance guidance, and requires product name and platform type as minimum inputs.

Instalar en Claude Code
Copiar
git clone --depth 1 https://github.com/Affitor/affiliate-skills /tmp/paid-ad-copy-writer && cp -r /tmp/paid-ad-copy-writer/skills/automation/paid-ad-copy-writer ~/.claude/skills/paid-ad-copy-writer
Después abre una sesión nueva de Claude Code; el skill carga automáticamente.

SKILL.md

# Paid Ad Copy Writer

Write paid ad copy for affiliate offers — Facebook Ads, Google Search Ads, Google Display Ads, TikTok Ads, and Pinterest Ads. Each output includes multiple ad variants, targeting suggestions, compliance notes, and campaign setup guidance. Output is platform-formatted ad copy ready to deploy.

## Stage

S7: Automation — When organic content proves profitable, paid ads let you scale 10x faster. But affiliate ad copy has unique constraints: platform policies around affiliate links, FTC disclosure requirements, and the need to drive clicks to a landing page (not direct-link). This skill writes compliant, high-converting ad copy for each platform.

## When to Use

- User wants to run paid traffic to affiliate offers
- User says "write ad copy", "Facebook ad", "Google Ads", "TikTok ad"
- User wants to scale a profitable organic campaign with paid media
- User has a landing page (from S4) and wants ads driving traffic to it
- User wants multiple ad variants for testing
- Chaining from S4 (landing page) → write ads pointing to the landing page

## Input Schema

```yaml
product:
  name: string                 # REQUIRED — product name
  description: string          # OPTIONAL — one-line product description
  reward_value: string         # OPTIONAL — commission info
  url: string                  # OPTIONAL — product URL (for research)
  key_benefits: string[]       # OPTIONAL — top 3 benefits

platform: string               # REQUIRED — "facebook" | "google_search" | "google_display"
                               # | "tiktok" | "pinterest"

audience:
  description: string          # REQUIRED — target audience
  pain_points: string[]        # OPTIONAL — problems the audience has
  demographics: string         # OPTIONAL — age, gender, interests

budget: string                 # OPTIONAL — daily/monthly budget (e.g., "$20/day")

landing_url: string            # OPTIONAL — destination URL (from S4 or a bridge page)
                               # Note: most platforms don't allow direct affiliate links
```

**Chaining context**: If S1 product data exists, pull name, benefits, commission. If S4 landing page was created, use its URL as `landing_url`.

## Workflow

### Step 1: Analyze Product and Audience

Gather product info and audience details. If `key_benefits` is not provided, infer from product name and description using training knowledge.

Identify:
- Primary value proposition
- Emotional triggers for the audience
- Competitive angle (what makes this product different)

### Step 2: Select Ad Format

Each platform has specific formats:

**Facebook Ads**:
- Primary text (125 chars above fold, 500+ total)
- Headline (40 chars)
- Description (30 chars)
- CTA button (from predefined list)

**Google Search Ads**:
- Headlines (3 × 30 chars)
- Descriptions (2 × 90 chars)
- Sitelink extensions (4 × 25 chars + 35 char descriptions)

**Google Display Ads**:
- Short headline (30 chars)
- Long headline (90 chars)
- Description (90 chars)
- Business name

**TikTok Ads**:
- Video script (15-30 seconds)
- Hook (first 3 seconds)
- CTA overlay text
- Ad text (100 chars)

**Pinterest Ads**:
- Pin title (100 chars)
- Pin description (500 chars)
- Image text suggestions

### Step 3: Write Ad Variants

Create 3-5 variants per platform, each testing a different angle:
- **Pain Point**: Lead with the problem
- **Benefit**: Lead with the outcome
- **Social Proof**: Lead with results/numbers
- **Curiosity**: Lead with an intriguing question or statement
- **Urgency**: Lead with a time-sensitive offer (only if real)

### Step 4: Add Compliance Notes

Per platform:
- **Facebook**: "Paid Partnership" label if required. No misleading claims. Landing page must match ad claims. Affiliate links may be flagged — use a bridge/landing page.
- **Google**: Ad must match landing page content. No superlative claims without proof. Affiliate disclaimer on landing page required. Follow Google Ads affiliate policies.
- **TikTok**: #ad or Paid Partnership toggle. No medical/financial advice. Must feel native to platform.
- **Pinterest**: Disclosures in pin description. Must link to content page, not direct affiliate link.

### Step 5: Suggest Targeting

Recommend targeting parameters:
- Interest-based audiences
- Lookalike audiences (if pixel data exists)
- Keyword targeting (Google)
- Demographic filters

### Step 6: Budget Allocation

If budget is provided, suggest:
- Daily spend per variant (for A/B testing phase)
- When to kill underperformers (after 500+ impressions with <0.5% CTR)
- When to scale winners (after 3+ days of profitable ROAS)

### Step 7: Self-Validation

Before presenting output, verify:

- [ ] 3-5 ad variants generated per platform
- [ ] Character counts within platform limits (Google: 30/90 headline/description, Facebook: 40/125/27000)
- [ ] No prohibited claims (income guarantees, before/after without evidence)
- [ ] CTA uses platform-native action verbs
- [ ] Test budget recommendation is realistic ($5-20/day per variant)

If any check fails, fix the output before delivering. Do not flag the checklist to the user — just ensure the output passes.

## Output Schema

```yaml
output_schema_version: "1.0.0"  # Semver — bump major on breaking changes
campaign:
  product: string
  platform: string
  num_variants: number
  landing_url: string

variants:
  - label: string              # "Variant A: Pain Point", etc.
    angle: string              # the approach used
    copy:
      headline: string         # or headlines[] for Google
      description: string      # or descriptions[] for Google
      primary_text: string     # Facebook only
      cta: string
      video_script: string     # TikTok only
    character_counts: object   # per field

compliance:
  notes: string[]              # platform-specific requirements
  warnings: string[]           # things that might get the ad rejected

targeting:
  interests: string[]
  demographics: string
  keywords: string[]           # Google only

budget_s