# Paid Ads

> Plan, launch, and optimize paid ad campaigns across Meta, Google, and LinkedIn with audience targeting, budget allocation, and creative testing.

- Skill: `oyi77/paid-ads` (Agent Skill)
- Install (CLI): `npx skillmds add oyi77/paid-ads`
- Raw SKILL.md: https://api.skillmd.com/api/skills/oyi77/paid-ads/raw
- Safety review: PASS (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth, Ads & Campaigns
- Tags: Audience Targeting, Budget Optimization, Conversion Tracking, Creative Testing, Google Ads, Linkedin Ads, Meta Ads, Roas
- License: Apache-2.0
- Author: oyi77 (https://skillmd.com/u/oyi77)
- Updated: 2026-08-22
- Page: https://skillmd.com/skills/oyi77/paid-ads

---


# Paid Ads

## When to Use

**Trigger phrases:**
- "paid ads"
- "Setting up paid ad campaigns"
- "Optimizing existing ad performance"
- "Designing ad creative and copy"


- Setting up paid ad campaigns
- Optimizing existing ad performance
- Designing ad creative and copy
- Implementing conversion tracking


## When NOT to Use

- When the audience is too small to justify the effort
- For regulated industries without compliance review
- When the campaign budget does not support the channel


## Overview

Paid Ads drives growth marketing with data-driven strategies across Meta, Google, and LinkedIn platforms.

## Money-Making Overview

Run high-ROI paid ad campaigns that generate 3-5x ROAS within 30 days. Every $100 ad spend = $300-500 return when properly optimized. This skill covers the full paid media lifecycle — campaign structure, audience targeting, creative testing, budget management, and performance optimization — turning ad spend into predictable revenue.

## Revenue Streams

| Stream | Description | Monthly Income |
|---|---|---|
| **Client Ad Management** | Manage ad accounts for local businesses, e-com stores, SaaS companies — strategy, execution, reporting | $500–5K/month per client |
| **Affiliate Ad Arbitrage** | Send paid traffic to affiliate offers with high commissions; profit = commission - ad cost | $1–10K/month |
| **DTC / E-com Ads** | Run Meta/Google Shopping for direct-to-consumer brands with product catalog feeds | $2–10K/month |
| **Agency / SaaS Upsell** | Package paid ads into a broader growth retainer (ads + funnel + creative) | $5–20K/month |
| **Lead Gen for Service Businesses** | Google Local Services / LinkedIn lead gen for high-ticket services (legal, home services, B2B) | $1–5K/month per client |

## Platform-Specific Campaign Setup

### Meta Ads Manager

**Campaign Structure:**
- **Awareness** (Reach, Brand Awareness) — cold audiences, prospecting
- **Consideration** (Traffic, Engagement, Video Views) — retargeting warm audiences
- **Conversion** (Sales, Leads) — bottom-funnel, highest intent

**Ad Set Level:**
- One interest/ lookalike per ad set — never mix audiences in the same set
- Budget: CBO (Campaign Budget Optimization) at $50–200+/day
- Bid strategy: Lowest cost with or without cost cap
- Placement: Advantage+ (let Meta optimize) or Manual (FB Feed + IG Feed + Reels only)

**Ad Level:**
- 3–5 creative variations per ad set
- Split-test: Image vs. Video, Single Image vs. Carousel
- Primary text: 40–80 characters with hook, benefit, CTA
- Headline: 27 characters max for News Feed

### Google Ads

**Search Campaigns:**
- Exact match keywords for high-intent queries
- Phrase match for broad discovery
- Negative keyword list built before launch
- Ad groups: 1 theme per ad group with 5–10 tightly related keywords
- RSA (Responsive Search Ads): 15 headlines + 4 descriptions

**Shopping Campaigns:**
- Product groups segmented by product type, brand, item ID
- Optimize titles with top search terms
- Negative keywords at campaign level
- Standard Shopping + Performance Max for full coverage

**Display / YouTube:**
- In-market audiences + custom intent for prospecting
- Remarketing lists for existing site visitors
- Video campaigns with skippable in-stream for top-of-funnel

### LinkedIn Sponsored Content

- **Single Image Ads** — best for lead gen, clear CTA
- **Document Ads** (PDF lead magnets) — highest conversion rates for B2B
- **Video Ads** — thought leadership, product demos
- **Lead Gen Forms** (native) — reduce friction, pre-filled profiles
- Targeting: Job title + industry + company size + seniority (start narrow, widen if CPA permits)

## Audience Targeting Formulas

### Lookalike Audiences
```
Source: 1,000+ customer emails / purchasers in 180 days
LAL 1% = closest match (narrowest, highest intent)
LAL 1-3% = sweet spot for scaling
LAL 3-10% = prospecting (wider reach, lower CVR)
```
- Refresh source audiences every 30 days
- Create separate LALs for purchasers, add-to-carts, content engagers

### Retargeting Windows
| Window | Audience | Bid Multiplier |
|---|---|---|
| 0–7 days | Hot — cart abandoners, recent visitors | 2x baseline |
| 8–30 days | Warm — site engagers, video viewers | 1.5x baseline |
| 31–90 days | Cold-ish — past customers, email openers | 1x baseline |
| 91–180 days | Lapsed — re-engagement offers | 0.7x baseline |

### Interest Stacking Rules
```
Rule 1: 3–5 interests max per ad set (beyond 5 the audience blurs)
Rule 2: Stack complementary interests (e.g., "Running" + "Marathon" + "Nike" = runner)
Rule 3: Exclude purchased audiences to avoid serving ads to existing customers
Rule 4: Use "AND" logic via narrow targeting in Meta (people MUST match multiple)
Rule 5: For prospecting, use broad targeting + well-written copy over tiny interest segments
```

## Budget Allocation Rules

### Starter Budget ($500–2K/month)
```
50% Prospecting (LAL 1-3% + interest stacks)
30% Retargeting (7–30 day window)
20% Creative testing (3 new concepts/week)
```

### Scaling Budget ($5–20K+/month)
```
40% Prospecting scaling
25% Retargeting (0–7 day hot + 8–30 warm)
20% Lookalike expansion (1% → 3% → 5% → 10%)
10% New platform / format tests
5% Broad targeting discovery
```

### Budget Pacing Rule
```
Daily spend cap = monthly budget / 30
If spend < 50% of cap by day 15 → increase bid or expand audience
If CPA > 2x target for 3 consecutive days → pause ad set
If ROAS > 5x → double budget (step up 25% every 48h)
```

## Creative Testing Protocol

### Weekly Creative Rotation
```
Week 1 — Launch 3–5 concepts (hook + visual variant)
Week 2 — Kill bottom 20%, double winners, add 3 new concepts
Week 3 — Refresh proven angles, test new formats (Carousel vs. Video vs. UGC)
Week 4 — Compile learnings, build next month's brief
```

**Creative Taxonomy:**
- `[HOOK]` — first 2 seconds rule (curiosity, problem, social proof, FOMO)
- `[FORMAT]` — UGC, Studio, Testimonial, Demo, Slideshow, Carousel
- `[ANGLE]` — Pain → Solution, Before/After, Comparison, ROI/Stats
- `[CTA]` — Shop Now, Learn More, Sign Up, Get Offer, Book Demo

**Winning Creative Signals:**
- CTR > 1% (Meta) / > 3% (Google Search)
- CPC decreasing over 7 days
- ROAS > 2x breakeven
- Frequency < 3 before saturation

## Workflow

### Phase 1 — Research & Strategy (Days 1–2)
1. Analyze target market, competitors, and existing audience data
2. Define campaign goals, channel selection, and messaging strategy
3. Set up conversion tracking (Meta Pixel, Google Tag, LinkedIn Insight)

### Phase 2 — Structure & Create (Days 3–5)
4. Build campaign hierarchy per platform-specific setup above
5. Create 5–10 ad creative variants following the testing protocol
6. Write primary text + headlines for each variant

### Phase 3 — Launch & Budget (Day 6)
7. Deploy campaigns with recommended budget allocation
8. Set up automated bidding rules (Meta CBO, Google Smart Bidding)
9. Configure conversion goals and attribution windows

### Phase 4 — Optimize (Days 7–30)
10. Review performance every 48h — pause underperformers, fund winners
11. Refresh creative weekly — never let an ad run > 14 days unchanged
12. Expand audiences (new LALs, interests, placements) when CPA is stable

### Phase 5 — Report (Weekly)
13. ROAS, CPA, CTR, CPM, frequency, impression share
14. Creative performance (which hook/format/angle won)
15. Budget spend vs. plan, next week's allocation forecast

## Key Metrics

- Reach and impressions
- Click-through rate (CTR) — benchmark > 1% Meta, > 3% Google Search
- Conversion rate (CVR) — clicks to purchase / lead
- Cost per acquisition (CPA) — total spend / conversions
- Return on ad spend (ROAS) — revenue / ad spend
- Frequency — how many times one person saw the ad (keep < 3)
- Impression share — lost to budget vs. lost to rank

## Best Practices

- Test one variable at a time — headlines, images, CTAs, placement, audience
- Master one channel before expanding (Meta → Google → LinkedIn)
- Never turn off retargeting — it is your highest ROAS channel
- Track full-funnel attribution (not just last-click)
- Kill losers fast (< 48h of underperformance) and double winners
- Refresh creative every 7–14 days to combat ad fatigue
- Use cost caps and bid floors to protect margin

## Anti-Rationalization Table

| Rationalization | Reality |
|---|---|
| "Good products sell themselves" | They do not. Marketing is how people discover your product. |
| "I will start marketing after launch" | Build audience before launch. Pre-launch momentum is critical. |
| "I can just boost a post" | Boosts waste budget. Use Ads Manager with proper objectives and tracking. |
| "More budget = more sales" | Scaling into a bad funnel multiplies losses. Fix funnel first. |
| "Running one ad long enough will work" | Ad fatigue sets in at 7–14 days. Rotate creative regularly. |


## Process

1. **Prepare** — Gather requirements, verify prerequisites, set up environment
2. **Execute** — Run paid ads workflow with configured parameters
3. **Verify** — Validate output meets requirements, document results

## First Action in 60 Minutes

Run this script to set up a conversion tracking framework, create a test campaign structure, launch a $50/day test, and configure budget + bid management rules. It generates the API payloads for Meta Ads Manager, Google Ads, and LinkedIn — ready to paste into your ad account.

```bash
#!/usr/bin/env bash
# paid-ads-launch.sh — Launch a $50/day test campaign with tracking and rules
set -euo pipefail

ACCOUNT_NAME="${1:-My Business}"
DAILY_BUDGET="${2:-50}"
PLATFORM="${3:-meta}"   # meta, google, linkedin

echo "=== Paid Ads Launcher ==="
echo "Account: $ACCOUNT_NAME"
echo "Budget:  \$${DAILY_BUDGET}/day"
echo "Platform: $PLATFORM"

# ── 1. Conversion Tracking Setup (Meta Pixel / Google Tag / LinkedIn Insight) ──
cat <<TRACKING
Conversion Tracking — Install the following:

Meta:
  Pixel ID:         (create in Events Manager → Data Sources → Web)
  CAPI endpoint:    POST https://graph.facebook.com/v19.0/{pixel_id}/events
  Fields:           event_name, event_time, user_data (email, ip, client_user_agent)

Google Ads:
  Conversion ID:    (create in Tools → Conversions → Website → Add new)
  Google Tag:       gtag('config', 'AW-CONVERSION_ID')
  Event snippet:    gtag('event', 'purchase', { value: 49.99, currency: 'USD' })

LinkedIn:
  Insight Tag:      (create in Analytics → Insight Tag)
  Conversion:       (create in Account Assets → Conversions → Create)
  Event:            lead, signup, purchase, addToCart
TRACKING

# ── 2. Campaign Structure (Meta example) ──
cat <<STRUCTURE
Campaign Structure for $PLATFORM:

$(case "$PLATFORM" in
  meta)
    echo "Objective: SALES (Purchase)"
    echo "Buying Type: AUCTION"
    echo "Special Ad Category: NONE"
    echo ""
    echo "Ad Set 1 — Prospecting (50% of budget)"
    echo "  Budget:  \$((DAILY_BUDGET / 2))/day"
    echo "  Audience: LAL 1% purchasers (180d) + Interest: [relevant_interest_1] + [relevant_interest_2]"
    echo "  Placements: Advantage+ (default)"
    echo "  Optimization: Purchase (CBO enabled)"
    echo ""
    echo "Ad Set 2 — Retargeting (30% of budget)"
    echo "  Budget:  \$((DAILY_BUDGET * 30 / 100))/day"
    echo "  Audience: Website visitors last 30d"
    echo "  Placements: FB Feed + IG Feed only"
    echo "  Optimization: Purchase"
    echo ""
    echo "Ad Set 3 — Creative Test (20% of budget)"
    echo "  Budget:  \$((DAILY_BUDGET * 20 / 100))/day"
    echo "  Audience: Broad targeting (US, 25-55, all genders)"
    echo "  Placements: FB Feed + IG Feed + Reels"
    echo "  Optimization: Link Click (measure CTR to find winners)"
    ;;
  google)
    echo "Campaign Type: Search"
    echo "Network: Search Network (no Display)"
    echo "Bidding: Target CPA (\$30)"
    echo "Budget: \$${DAILY_BUDGET}/day"
    echo ""
    echo "Ad Group 1 — High Intent (60% of budget)"
    echo '  Keywords: [best product], [buy product], [product price]'
    echo "  Negatives: free, jobs, how to"
    echo "  RSA: 15 headlines, 4 descriptions"
    echo ""
    echo "Ad Group 2 — Research (40% of budget)"
    echo '  Keywords: [product vs competitor], [product reviews], [product alternatives]'
    echo "  Negatives: free, how to"
    echo "  RSA: benefit-focused headlines"
    ;;
  linkedin)
    echo "Campaign Type: Sponsored Content — Single Image"
    echo "Objective: Lead Generation"
    echo "Budget: \$${DAILY_BUDGET}/day"
    echo ""
    echo "Targeting:"
    echo "  Job Titles: [relevant_title_1], [relevant_title_2]"
    echo "  Industry: [target_industry]"
    echo "  Company Size: 51-200, 201-500, 501-1000"
    echo "  Seniority: Manager, Director, VP"
    echo ""
    echo "Ad Format: Single Image + Lead Gen Form"
    echo "Lead Form: Name, Email, Company, Job Title (pre-filled)"
    ;;
esac)
STRUCTURE

# ── 3. Budget & Bid Management Rules ──
cat <<RULES
Budget Management Rules:

  # Rule: Pause underperforming ad sets
  IF CPA > 2x target CPA for 3 consecutive days
  THEN PAUSE ad set

  # Rule: Scale winning ad sets  
  IF ROAS > 3x for 3 consecutive days
  THEN INCREASE budget by 25%

  # Rule: Budget reallocation
  IF daily spend < 60% of cap by day 20
  THEN Reallocate 20% of budget to best-performing channel

  # Rule: Frequency cap
  IF frequency > 3 and CTR < 0.8%
  THEN REFRESH creative or PAUSE ad set

RULES

echo ""
echo "=== Next Steps ==="
echo "1. Install the conversion tracking code above on your website"
echo "2. Create 3 ad sets with the structure above"
echo "3. Upload 5 creative variations (1 video + 2 images + 2 carousels)"
echo "4. Set daily budget to \$${DAILY_BUDGET}"
echo "5. Monitor every 48h — pause losers, fund winners"
echo "6. After 7 days, compile learnings and iterate"
echo ""
echo "=== Launch Complete ==="
```

**How to run:**
```bash
chmod +x paid-ads-launch.sh
./paid-ads-launch.sh "My Business" 50 meta
# or
./paid-ads-launch.sh "My SaaS" 100 google
```

## Output Format

```
## Campaign: [Campaign Name]

### Structure
[Platform] | [Objective] | [Daily Budget]
- Ad Set 1: [Audience] | [Budget %] | [Current Status]
- Ad Set 2: [Audience] | [Budget %] | [Current Status]

### Creative Performance
| Creative | Impressions | CTR | CPA | ROAS | Status |
|---|---|---|---|---|---|
| [Hook A / Format A] | 5,000 | 1.2% | $18 | 4.1x | Paused |
| [Hook B / Format B] | 8,000 | 2.3% | $12 | 6.2x | Scaling |
| [Hook C / Format C] | 3,000 | 0.5% | — | — | Under review |

### Key Metrics
- Spend: $[total]  |  Revenue: $[total]  |  ROAS: [X]x  |  CPA: $[X]
- CTR: [X]%  |  CVR: [X]%  |  Frequency: [X]  |  Impression Share: [X]%

### Budget Allocation
Prospecting: [X]%  |  Retargeting: [X]%  |  Creative Testing: [X]%

### Next Week Recommendations
1. [Action item — e.g. double budget on best ad set]
2. [Action item — e.g. launch 3 new UGC variations]
3. [Action item — e.g. expand LAL from 1% to 3%]
```

## Verification

- [ ] All steps executed successfully
- [ ] Results validated against acceptance criteria
- [ ] Error handling tested with edge cases
- [ ] Documentation updated with findings

