---
name: "Ad campaign management"
repo: https://github.com/manojbajaj95/claude-gtm-plugin
source: https://github.com/manojbajaj95/claude-gtm-plugin/blob/HEAD/skills/ad-campaign-management/SKILL.md
license: "MIT"
install: "npx skills add manojbajaj95/claude-gtm-plugin --skill ad-campaign-management"
page: https://100xlab.com/resources/agent-skills/manojbajaj95-claude-gtm-plugin--ad-campaign-management--24vupo
---

# Ad Campaign Management

## Workspace Context

Read bootstrap context before asking questions: `strategy/brand.md` for brand, audience, offer, channels, tools, constraints, and metrics; `about/me.md` for personal voice; `content/ideas.md` and `content/calendar.md` for content planning. Use legacy product-marketing context files only as fallback. Save generated drafts to `content/<platform>/drafts/YYYY-MM-DD_short-topic-slug.md`, and route durable learnings back to `strategy/brand.md`, `about/me.md`, or `content/ideas.md`.

## Operating Contract

This skill is self-contained for its frontmatter scope: use its local instructions, references, scripts, and assets as the playbook; ask only for missing task-specific inputs; hand off to adjacent skills instead of expanding scope; and return an actionable artifact, decision, plan, draft, or diagnostic.



End-to-end paid advertising: write ad copy, develop creative strategy, manage campaigns, and analyze competitor ads.

Use the Workspace Context above first; only ask for ad-platform inputs not covered there.

---

## 1. Ad Copy Creation

### Platform Constraints

| Platform | Element | Limit |
|----------|---------|-------|
| Google Ads (RSA) | Headline | 30 chars × 15 |
| Google Ads (RSA) | Description | 90 chars × 4 |
| Meta (FB/IG) | Primary text | 125 chars visible |
| Meta (FB/IG) | Headline | 40 chars |
| LinkedIn | Intro text | 150 chars recommended |
| LinkedIn | Headline | 70 chars recommended |
| TikTok | Ad text | 80 chars recommended |
| Twitter/X | Tweet | 280 chars |

For full format specs, see [references/platform-specs.md](references/platform-specs.md).

### Copywriting Frameworks

**AIDA** — Attention → Interest → Desire → Action
**PAS** — Problem → Agitate → Solution
**4Ps** — Promise → Picture → Proof → Push
**Before-After-Bridge** — Current pain → Desired state → Your solution

### Headlines That Work

- Specific over vague: "Cut reporting time 75%" not "Save time"
- Benefits over features: "Ship code faster" not "CI/CD pipeline"
- Include numbers when possible: "3x faster," "in 5 minutes," "10,000+ teams"
- Each RSA headline must stand alone — they're combined randomly
- Include at least: 1 keyword headline, 1 benefit headline, 2–3 CTA headlines

### Platform Best Practices

**Google**: Include keywords; use numbers/stats; power words (Free, Proven, New)
**Meta**: Hook in first 3 words; ask questions; social proof performs well; emojis B2C only
**LinkedIn**: Professional but not boring; lead with value; stats resonate with B2B
**TikTok**: Casual/authentic tone; hook in 1–2 seconds; strong CTA at end

### A/B Testing Variables

- Headlines: Question vs. statement; benefit-led vs. feature-led; with/without numbers
- Primary text: Short vs. long; problem-focused vs. solution-focused; with/without social proof
- CTAs: Direct ("Buy Now") vs. soft ("Learn More"); benefit-based vs. action-based
- **Protocol**: One variable at a time; min 7 days or 1,000 impressions; 95% significance before declaring winner

### Output Format

Organize by angle with character counts:

```
## Angle: [Pain Point — Manual Reporting]

### Headlines (30 char max)
1. "Stop Building Reports by Hand" (29)
2. "Reports Done in 5 Min" (21)

### Descriptions (90 char max)
1. "Marketing teams save 10+ hours/week. Start free." (49)
```

Offer CSV format for 10+ variations:
```csv
headline_1,headline_2,description_1,platform
"Stop Manual Reporting","Automate in 5 Min","Save 10+ hrs/week. Start free.","google_ads"
```

---

## 2. Creative Strategy

### Define Angles First

Before writing copy, establish 3–5 distinct angles (different reasons someone clicks):

| Category | Example |
|----------|---------|
| Pain point | "Stop wasting time on X" |
| Outcome | "Achieve Y in Z days" |
| Social proof | "Join 10,000+ teams who..." |
| Curiosity | "The secret top companies use" |
| Comparison | "Unlike X, we do Y" |
| Identity | "Built for [specific role]" |
| Contrarian | "Why [common practice] doesn't work" |

### Generate Variations Per Angle

Vary: word choice, specificity (numbers vs. general), tone (direct/question/command), structure (short punch vs. full benefit).

### Iterating from Performance Data

1. **Analyze winners** — identify winning themes, structures, word patterns by CTR/CVR/ROAS
2. **Analyze losers** — find what falls flat (too generic, wrong tone, too long)
3. **Generate new creative** — double down on winning themes, test 1–2 new angles, avoid loser patterns
4. **Document iterations**:

```
## Iteration Log
- Round: [N] | Date: [date]
- Top performers: [list with metrics]
- Winning patterns: [summary]
- New angles tested: [list]
- Angles retired: [list]
```

### Generating Ad Visuals

For image and video creative, use AI tools. See [references/generative-tools.md](references/generative-tools.md) for:
- **Image generation**: Flux, Ideogram, Nano Banana Pro (Gemini) for static ad images
- **Video generation**: Veo, Kling, Runway, Sora, Seedance, Higgsfield
- **Voice/audio**: ElevenLabs, OpenAI TTS for voiceovers
- **Code-based video**: Remotion for templated, data-driven video at scale

**Recommended workflow**: Generate hero creative with AI → build Remotion templates from winners → batch-produce variations at scale.

---

## 3. Campaign Management

### Key Metrics

| Type | Metrics |
|------|---------|
| Cost | CPM, CPC, CPL, CPA/CAC |
| Performance | CTR, CVR, ROAS, LTV:CAC |

### Campaign Structure

**Google Ads**: Account → Campaign (budget, geo) → Ad Group (keyword theme) → Keywords + Ads

**Meta Ads**: Campaign (objective) → Ad Set (audience, placement, budget) → Ads (creative, copy)

**Bidding strategies**:
- Target CPA — optimize for conversions at target cost
- Target ROAS — optimize for conversion value
- Maximize conversions — spend budget for max conversions
- Manual — full control, time-intensive

### Audience Targeting

**Meta**:
- Core: demographics, interests, behaviors, location
- Custom: website visitors, customer lists, engagement audiences
- Lookalike: based on high-value customers, 1–10% similarity

**LinkedIn**:
- Company: industry, size, name
- Job: title, function, seniority
- Professional: skills, groups, interests

### Optimization Cadence

**Daily**: Budget pacing, cost metrics, major anomalies
**Weekly**: CTR/CVR trends, top/bottom performers, search term review (Google)
**Monthly**: Overall ROAS/ROI, audience performance, creative fatigue, strategic adjustments

### Quick Optimization Wins

1. Pause underperforming ads
2. Increase bids on top performers
3. Add negative keywords (Google)
4. Refine audience targeting
5. Refresh fatigued creative

### Budget Allocation

- **Testing phase**: 10–20% on new ideas
- **Proven performers**: 60–70% of budget
- **Retargeting**: 10–20% of budget
- **Scaling**: increase budget gradually (max 20%/week) on winning audiences/creative

---

## 4. Competitive Intelligence

Use ad libraries (Facebook Ad Library, LinkedIn Ad Library) to extract and analyze competitor ads.

### Extraction Process

```
Extract all current ads from [Competitor] on Facebook Ad Library
Scrape ads from [Company A], [Company B], [Company C] — compare approaches
Get LinkedIn ads from [Competitor] — analyze their B2B positioning
```

### Analysis Output

For each competitor, deliver:

```
# [Competitor] Ad Analysis

## Overview
- Total ads: [N] active | Primary themes: [breakdown]
- Ad formats: [static/video split] | CTA patterns: [list]

## Key Problems They're Highlighting
1. [Pain point] ([N] ads) — Copy: "..." — Why it works: [reason]

## Successful Creative Patterns
- Pattern 1: [description + frequency]
- Pattern 2: [description + frequency]

## Best Headlines
1. "[headline]" → [why it works]

## Recommendations for Your Ads
1. [Actionable insight based on their patterns]
```

### What to Analyze

- **Messaging**: What problems they emphasize, how they position vs. competitors
- **Creative patterns**: Visual styles, video vs. static, layout trends
- **Copy formulas**: Headline structures, CTA patterns, length and tone
- **Campaign strategy**: Seasonal campaigns, retargeting patterns, feature announcements

### Competitive Intelligence Workflows

**Ad Campaign Planning**: Extract competitor ads → identify patterns → note messaging gaps → draft test variations

**Positioning Research**: Analyze 5 competitors → map their positioning → find underserved angles → develop differentiated messaging

**Trend Tracking**: Compare competitor ads across quarters to spot messaging evolution

### Legal & Ethical

✓ Use for research and inspiration only
✓ Adapt patterns — don't copy ads directly
✓ Respect intellectual property
✗ Don't plagiarize copy or steal designs

---

## 5. References

- [references/platform-specs.md](references/platform-specs.md) — Full character limits and format specs for all platforms
- [references/generative-tools.md](references/generative-tools.md) — AI image/video/audio tools for ad creative production

---

## Supporting file: references/platform-specs.md

# Platform Specs Reference

Complete character limits, format requirements, and best practices for each ad platform.

---

## Google Ads

### Responsive Search Ads (RSAs)

| Element | Character Limit | Required | Notes |
|---------|----------------|----------|-------|
| Headline | 30 chars | 3 minimum, 15 max | Any 3 may be shown together |
| Description | 90 chars | 2 minimum, 4 max | Any 2 may be shown together |
| Display path 1 | 15 chars | Optional | Appears after domain in URL |
| Display path 2 | 15 chars | Optional | Appears after path 1 |
| Final URL | No limit | Required | Landing page URL |

**Combination rules:**
- Google selects up to 3 headlines and 2 descriptions to show
- Headlines appear separated by " | " or stacked
- Any headline can appear in any position unless pinned
- Pinning reduces Google's ability to optimize — use sparingly

**Pinning strategy:**
- Pin your brand name to position 1 if brand guidelines require it
- Pin your strongest CTA to position 2 or 3
- Leave most headlines unpinned for machine learning

**Headline mix recommendation (15 headlines):**
- 3-4 keyword-focused (match search intent)
- 3-4 benefit-focused (what they get)
- 2-3 social proof (numbers, awards, customers)
- 2-3 CTA-focused (action to take)
- 1-2 differentiators (why you over competitors)
- 1 brand name headline

**Description mix recommendation (4 descriptions):**
- 1 benefit + proof point
- 1 feature + outcome
- 1 social proof + CTA
- 1 urgency/offer + CTA (if applicable)

### Performance Max

| Element | Character Limit | Notes |
|---------|----------------|-------|
| Headline | 30 chars (5 required) | Short headlines for various placements |
| Long headline | 90 chars (5 required) | Used in display, video, discover |
| Description | 90 chars (1 required, 5 max) | Accompany various ad formats |
| Business name | 25 chars | Required |

### Display Ads

| Element | Character Limit |
|---------|----------------|
| Headline | 30 chars |
| Long headline | 90 chars |
| Description | 90 chars |
| Business name | 25 chars |

---

## Meta Ads (Facebook & Instagram)

### Single Image / Video / Carousel

| Element | Recommended | Maximum | Notes |
|---------|-------------|---------|-------|
| Primary text | 125 chars | 2,200 chars | Text above image; truncated after ~125 |
| Headline | 40 chars | 255 chars | Below image; truncated after ~40 |
| Description | 30 chars | 255 chars | Below headline; may not show |
| URL display link | 40 chars | N/A | Optional custom display URL |

**Placement-specific notes:**
- **Feed**: All elements show; primary text most visible
- **Stories/Reels**: Primary text overlaid; keep under 72 chars
- **Right column**: Only headline visible; skip description
- **Audience Network**: Varies by publisher

**Best practices:**
- Front-load the hook in primary text (first 125 chars)
- Use line breaks for readability in longer primary text
- Emojis: test, but don't overuse — 1-2 per ad max
- Questions in primary text increase engagement
- Headline should be a clear CTA or value statement

### Lead Ads (Instant Form)

| Element | Limit |
|---------|-------|
| Greeting headline | 60 chars |
| Greeting description | 360 chars |
| Privacy policy text | 200 chars |

---

## LinkedIn Ads

### Single Image Ad

| Element | Recommended | Maximum | Notes |
|---------|-------------|---------|-------|
| Intro text | 150 chars | 600 chars | Above the image; truncated after ~150 |
| Headline | 70 chars | 200 chars | Below the image |
| Description | 100 chars | 300 chars | Only shows on Audience Network |

### Carousel Ad

| Element | Limit |
|---------|-------|
| Intro text | 255 chars |
| Card headline | 45 chars |
| Card count | 2-10 cards |

### Message Ad (InMail)

| Element | Limit |
|---------|-------|
| Subject line | 60 chars |
| Message body | 1,500 chars |
| CTA button | 20 chars |

### Text Ad

| Element | Limit |
|---------|-------|
| Headline | 25 chars |
| Description | 75 chars |

**LinkedIn-specific guidelines:**
- Professional tone, but not boring
- Use job-specific language the audience recognizes
- Statistics and data points perform well
- Avoid consumer-style hype ("Amazing!" "Incredible!")
- First-person testimonials from peers resonate

---

## TikTok Ads

### In-Feed Ads

| Element | Recommended | Maximum | Notes |
|---------|-------------|---------|-------|
| Ad text | 80 chars | 100 chars | Above the video |
| Display name | N/A | 40 chars | Brand name |
| CTA button | Platform options | Predefined | Select from TikTok's options |

### Spark Ads (Boosted Organic)

| Element | Notes |
|---------|-------|
| Caption | Uses original post caption |
| CTA button | Added by advertiser |
| Display name | Original creator's handle |

**TikTok-specific guidelines:**
- Native content outperforms polished ads
- First 2 seconds determine if they watch
- Use trending sounds and formats
- Text overlay is essential (most watch with sound off)
- Vertical video only (9:16)

---

## Twitter/X Ads

### Promoted Tweets

| Element | Limit | Notes |
|---------|-------|-------|
| Tweet text | 280 chars | Full tweet with image/video |
| Card headline | 70 chars | Website card |
| Card description | 200 chars | Website card |

### Website Cards

| Element | Limit |
|---------|-------|
| Headline | 70 chars |
| Description | 200 chars |

**Twitter/X-specific guidelines:**
- Conversational, casual tone
- Short sentences work best
- One clear message per tweet
- Hashtags: 1-2 max (0 is often better for ads)
- Threads can work for consideration-stage content

---

## Character Counting Tips

- **Spaces count** as characters on all platforms
- **Emojis** count as 1-2 characters depending on platform
- **Special characters** (|, &, etc.) count as 1 character
- **URLs** in body text count against limits
- **Dynamic keyword insertion** (`{KeyWord:default}`) can exceed limits — set safe defaults
- Always verify in the platform's ad preview before launching

---

## Multi-Platform Creative Adaptation

When creating for multiple platforms simultaneously, start with the most restrictive format:

1. **Google Search headlines** (30 chars) — forces the tightest messaging
2. **Expand to Meta headlines** (40 chars) — add a word or two
3. **Expand to LinkedIn intro text** (150 chars) — add context and proof
4. **Expand to Meta primary text** (125+ chars) — full hook and value prop

This cascading approach ensures your core message works everywhere, then gets enriched for platforms that allow more space.
