borghei/paid-ads
> Plan, execute, and optimize paid ad campaigns across Google, Meta, LinkedIn, Twitter/X, and TikTok, covering targeting, budget, bid strategies, and retargeting. Use when running PPC campaigns, setting up ad accounts, or optimizing ROAS/CPA.
npx skills add https://github.com/borghei/Claude-Skills --skill paid-ads
Campaign strategy, audience targeting, budget optimization, and performance management across all major advertising platforms.
paid ads, PPC, pay-per-click, Google Ads, Meta Ads, Facebook Ads, Instagram Ads, LinkedIn Ads, Twitter Ads, TikTok Ads, paid media, ROAS, CPA, CPC, CPM, audience targeting, retargeting, remarketing, budget optimization, bid strategy, ad campaigns, conversion tracking, lookalike audiences, campaign structure, ad performance, paid search, paid social
Before building the campaign, confirm these inputs. If any is unknown or vague, ASK — do not assume:
Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the artifact.
| Platform | Best For | Audience Signal | Typical CPC | Minimum Budget |
|----------|----------|----------------|-------------|----------------|
| Google Search | High-intent demand capture | Search keywords (what they want now) | $1-8 (B2B: $5-20) | $1,500/mo |
| Google Display | Awareness, retargeting | Browsing behavior, interests | $0.30-1.50 | $1,000/mo |
| Google Performance Max | Multi-format automation | Mixed signals, Google's ML | Varies | $2,000/mo |
| Meta (FB/IG) | Demand generation, B2C, visual products | Interests, behaviors, lookalikes | $0.50-3.00 | $1,000/mo |
| LinkedIn | B2B, decision-maker targeting | Job title, company, industry, seniority | $5-15 | $2,000/mo |
| Twitter/X | Tech audiences, thought leadership | Followers, interests, keywords | $0.50-3.00 | $500/mo |
| TikTok | 18-34 demographics, brand awareness | Interests, behaviors, creator affinity | $0.30-1.50 | $1,000/mo |
| Reddit | Niche communities, tech/gaming | Subreddit targeting | $0.50-2.00 | $500/mo |
Is the audience actively searching for your solution?
├── Yes → Google Search Ads
└── No → Do you know their job title or company?
├── Yes → LinkedIn Ads (B2B) or Meta Ads (B2C)
└── No → Is your product visual or lifestyle?
├── Yes → Meta Ads (Instagram) or TikTok
└── No → Is your audience technical?
├── Yes → Reddit Ads or Twitter/X
└── No → Meta Ads (Facebook) or Google Display
Account
├── Campaign 1: [Objective] - [Product/Offer]
│ ├── Ad Group/Set 1: [Audience Segment A]
│ │ ├── Ad 1: [Creative Variant 1]
│ │ ├── Ad 2: [Creative Variant 2]
│ │ └── Ad 3: [Creative Variant 3]
│ └── Ad Group/Set 2: [Audience Segment B]
│ ├── Ad 1: [Creative Variant 1]
│ └── Ad 2: [Creative Variant 2]
└── Campaign 2: [Objective] - [Product/Offer]
[Platform]_[Objective]_[Audience]_[Offer]_[Date]
Examples:
GOOG_Search_Brand_FreeTrial_2026Q1
META_Conv_Lookalike-Customers_Demo_Mar26
LI_LeadGen_CMOs-SaaS-500_Whitepaper_2026Q1
TIKTOK_Aware_18-34-Tech_BrandVideo_Mar26
| Objective | Google | Meta | LinkedIn |
|-----------|--------|------|----------|
| Awareness | Display, YouTube, PMax | Reach, Video Views | Brand Awareness |
| Consideration | Search, Display | Traffic, Engagement | Website Visits |
| Conversion | Search, PMax | Conversions, Leads | Lead Gen Forms |
| Retargeting | Display, Search (RLSA) | Custom Audiences | Matched Audiences |
| Targeting Type | Use When | How |
|---------------|----------|-----|
| Keyword targeting | Capturing search intent | Exact, phrase, and broad match keywords |
| Audience targeting | Layering intent signals | In-market, affinity, custom intent |
| RLSA | Retargeting in search | Website visitor lists on search campaigns |
| Customer Match | Targeting known contacts | Upload email lists for matched targeting |
| Similar audiences | Expanding from known customers | Google's lookalike from customer lists |
Keyword match type strategy:
| Targeting Type | Use When | How |
|---------------|----------|-----|
| Interest targeting | Cold prospecting | Layer 2-3 related interests |
| Lookalike audiences | Expanding from customers | 1-3% lookalike from best customers (by LTV) |
| Custom audiences | Retargeting | Website visitors, email lists, video viewers |
| Broad targeting | Trusting Meta's ML | No targeting restrictions, let the algorithm find converters |
| Detailed targeting | Narrow audience needed | Combine demographics + interests + behaviors |
Lookalike best practices:
| Targeting Type | Use When | How |
|---------------|----------|-----|
| Job title | Targeting decision-makers | Specific titles (CMO, VP Marketing, Head of Growth) |
| Job function | Broader role targeting | Marketing, Engineering, Finance |
| Company size | Enterprise vs. SMB | Employee count ranges |
| Industry | Vertical-specific campaigns | LinkedIn's industry categories |
| Seniority | C-suite vs. individual contributor | Manager, Director, VP, CXO |
| Skills | Technical targeting | Listed skills on profiles |
| Company list | ABM targeting | Upload target account lists |
LinkedIn targeting rules:
Phase 1: Testing (Weeks 1-4)
| Allocation | Purpose |
|-----------|---------|
| 40% | Proven/safe campaigns (brand search, retargeting) |
| 40% | Testing new audiences and creative |
| 20% | Experimental channels or formats |
Phase 2: Optimization (Weeks 5-8)
| Allocation | Purpose |
|-----------|---------|
| 60% | Winning combinations from testing |
| 25% | Iterating on promising but unproven |
| 15% | New tests |
Phase 3: Scaling (Weeks 9+)
| Allocation | Purpose |
|-----------|---------|
| 70% | Proven performers |
| 20% | Expansion (new audiences, lookalikes, broader targeting) |
| 10% | Ongoing testing |
| Platform | Minimum Viable Monthly Budget | Optimal Monthly Budget |
|----------|------------------------------|----------------------|
| Google Search | $1,500 | $5,000+ |
| Google Display | $1,000 | $3,000+ |
| Meta Ads | $1,000 | $3,000+ |
| LinkedIn Ads | $2,000 | $5,000+ |
| TikTok Ads | $1,000 | $3,000+ |
| Reddit Ads | $500 | $2,000+ |
| Stage | Strategy | When to Use | Requirements |
|-------|----------|-------------|-------------|
| 1 | Manual CPC | Starting out, need control | None |
| 2 | Max Clicks | Building traffic data | Budget cap set |
| 3 | Target CPA | Optimizing for conversions | 30+ conversions/month |
| 4 | Target ROAS | Optimizing for revenue | 50+ conversions/month + revenue data |
| 5 | Value-based | Maximizing revenue | Conversion value tracking, 100+ conversions/month |
| Funnel Stage | Audience | Message | Window | Frequency |
|-------------|----------|---------|--------|-----------|
| Top | Blog readers, video viewers | Educational, social proof | 30-90 days | 1-2x/week |
| Middle | Pricing/feature page visitors | Case studies, demos, comparisons | 7-30 days | 3-5x/week |
| Bottom | Cart/trial abandoners | Urgency, objection handling, offer | 1-7 days | Daily OK |
| Audience | Source | Platform | Priority |
|----------|--------|----------|----------|
| All website visitors (30 days) | Pixel | All platforms | Medium |
| Pricing page visitors (14 days) | Pixel | All platforms | High |
| Cart/trial abandoners (7 days) | Pixel + Events | All platforms | Highest |
| Email subscribers (non-customers) | Email list | Meta, LinkedIn | Medium |
| Video viewers (50%+ watched) | Platform event | Meta, YouTube | Medium |
| Blog readers (engaged, 60s+) | Pixel + Events | All platforms | Low-Medium |
Always exclude:
Is CPA above target?
├── CTR is low (< 1% search, < 0.5% social)
│ ├── Creative fatigue? → Refresh creative
│ ├── Audience mismatch? → Refine targeting
│ └── Ad relevance low? → Improve message match
├── CTR is good, conversion rate low
│ ├── Landing page issue? → Audit page (speed, copy, CTA)
│ ├── Offer mismatch? → Align ad promise with page offer
│ └── Audience too broad? → Narrow targeting
└── CTR and CVR are good, CPA still high
├── CPM too high? → Try different placements/platforms
├── Competition driving up bids? → Adjust bid strategy
└── Attribution issue? → Check conversion tracking
| Objective | Primary Metrics | Benchmarks (B2B SaaS) |
|-----------|----------------|----------------------|
| Awareness | CPM, Reach, Video View Rate | CPM: $5-15, VVR: 15-25% |
| Consideration | CTR, CPC, Time on Site | CTR: 1-3%, CPC: $2-8 |
| Conversion | CPA, ROAS, Conversion Rate | CPA: $50-200, CR: 2-5% |
| Retargeting | CPA, ROAS, Frequency | CPA: 30-50% lower than prospecting |
| Signal | Threshold | Action |
|--------|-----------|--------|
| CTR declining week over week | 20%+ decline over 2 weeks | Refresh creative |
| Frequency above threshold | > 3 (display), > 5 (retargeting) | Expand audience or refresh |
| CPA increasing with stable CTR | 15%+ increase over 2 weeks | Test new creative angles |
| Engagement rate dropping | 30%+ decline | Full creative overhaul |
| Task | Time | What to Check |
|------|------|---------------|
| Budget pacing | 5 min | Spend vs. plan, daily/weekly trends |
| CPA/ROAS check | 10 min | Performance vs. targets, by campaign |
| Top/bottom performers | 10 min | Pause worst, scale best |
| Audience analysis | 10 min | Which segments are converting? |
| Creative performance | 10 min | CTR by creative, fatigue signals |
| Frequency check | 5 min | Any audiences over-exposed? |
| Landing page CVR | 5 min | Post-click conversion rate |
| Competitor check | 5 min | New competitors in auction? |
| What Platforms Report | Reality |
|---------------------|---------|
| "This campaign drove 100 conversions" | Platform attribution is inflated by 20-50% |
| "ROAS is 5x" | Likely includes assisted conversions that would have converted anyway |
| Last-click attribution | Ignores all touchpoints before the final click |
| View-through conversions | Often just people who would have converted regardless |
utm_source: google | meta | linkedin | twitter | tiktok | reddit
utm_medium: cpc | paid-social | display | video | sponsored
utm_campaign: [campaign-name-lowercase-hyphenated]
utm_content: [ad-variant-identifier]
utm_term: [keyword] (search only)
10. Document everything — Every campaign change, test result, and learning should be recorded. Institutional knowledge prevents repeating mistakes.
| Symptom | Likely Cause | Fix |
|---------|-------------|-----|
| CPA above target with low CTR | Creative fatigue or audience mismatch | Refresh creative. Use ad_copy_scorer.py to validate new copy. |
| CPA above target with good CTR | Landing page conversion issue | Audit post-click experience: message match, page speed, form friction. |
| CTR dropping week over week | Creative fatigue (>3 frequency) | Refresh creative every 2-4 weeks. Expand audience to reduce frequency. |
| Budget not spending | Audience too narrow or bid too low | Check audience size with audience_sizer.py. Increase bid 10-20%. |
| Platform reports inflated conversions | Attribution window too wide | Compare platform data to GA4/CRM. Use incrementality testing for true lift. |
| Performance Max underperforming | Insufficient conversion data | Need 30+ conversions in 30 days for PMax to optimize. Start with Search campaigns. |
| CPA spikes after budget increase | Algorithm learning disrupted | Never increase budget more than 20-30% at a time. Wait 3-5 days between changes. |
In Scope: Campaign strategy, platform selection, audience targeting, budget allocation, bid strategies, retargeting, performance optimization, attribution, pre-launch checklists.
Out of Scope: Ad copy writing (use ad-creative), landing page design (use landing-page-generator), creative design/production, marketing automation, CRM configuration.
Limitations: Budget minimums and CPC benchmarks are directional estimates. Actual costs vary by industry, geography, and competition. Platform-reported metrics are typically 20-50% inflated versus CRM truth.
scripts/ad_copy_scorer.py)Scores ad copy against platform specs, compliance rules, and conversion best practices.
python scripts/ad_copy_scorer.py --headline "Cut churn by 30%" --description "See how 1200 SaaS teams reduced churn" --platform google
python scripts/ad_copy_scorer.py --file ads.json --json
scripts/cpc_calculator.py)Calculates key advertising metrics from campaign data with industry benchmarks.
python scripts/cpc_calculator.py --spend 5000 --clicks 1200 --conversions 45 --revenue 12000 --platform meta
python scripts/cpc_calculator.py --file campaign.json --json
scripts/audience_sizer.py)Estimates target audience size and recommends budget based on platform and targeting criteria.
python scripts/audience_sizer.py --platform linkedin --targeting "CMOs at SaaS companies 50-500 employees"
python scripts/audience_sizer.py --file targeting.json --json
Take borghei/paid-ads from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
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.