$npx -y skills add gooseworks-ai/goose-skills --skill ad-campaign-analyzerAnalyze ad campaign performance data (Google, Meta, LinkedIn) to identify what's working, what's wasting budget, and specific cut/scale/test recommendations. Runs statistical analysis, funnel diagnostics, and multi-channel budget reallocation with specific dollar-amount shift rec
| 1 | # Ad Campaign Analyzer |
| 2 | |
| 3 | Take raw campaign performance data and turn it into clear decisions. This skill doesn't just summarize metrics — it diagnoses problems, identifies winners, checks statistical significance, and tells you exactly what to cut, scale, and test next. Then it goes further: it compares channels on equal terms, finds where you're over-spending vs under-spending relative to results, and produces a concrete budget reallocation plan. |
| 4 | |
| 5 | **Core principle:** Most startup founders check their ad dashboard, see a ROAS number, and either panic or celebrate. This skill gives you the nuanced analysis a paid media specialist would: what's actually significant, what's noise, and where your next dollar should go. It also solves the allocation problem — most startups either spread budget too thin across channels (no channel gets enough to learn) or dump everything into one channel (missing cheaper opportunities elsewhere). |
| 6 | |
| 7 | ## When to Use |
| 8 | |
| 9 | - "Analyze my Google Ads performance" |
| 10 | - "Which ads should I kill?" |
| 11 | - "Is this campaign working?" |
| 12 | - "Where am I wasting ad spend?" |
| 13 | - "Optimize my Meta Ads" |
| 14 | - "How should I split my ad budget?" |
| 15 | - "Should I spend more on Google or Meta?" |
| 16 | - "Reallocate my ad spend across channels" |
| 17 | - "Where am I getting the best return?" |
| 18 | - "I have $X/month for ads — how should I distribute it?" |
| 19 | |
| 20 | ## Phase 0: Intake |
| 21 | |
| 22 | 1. **Campaign data** — One of: |
| 23 | - CSV export from Google Ads / Meta Ads Manager / LinkedIn Campaign Manager |
| 24 | - Pasted performance table |
| 25 | - Screenshots of dashboard (we'll extract the data) |
| 26 | 2. **Platform(s)** — Google / Meta / LinkedIn / All |
| 27 | 3. **Time period** — What date range does this cover? |
| 28 | 4. **Monthly budget** — Total ad spend in this period |
| 29 | 5. **Primary goal** — What conversion are you optimizing for? (Demos / Trials / Purchases / Leads) |
| 30 | 6. **Target metrics** — Do you have target CPA or ROAS? (If not, we'll benchmark) |
| 31 | 7. **Any known changes?** — Did you change creative, budget, or targeting during this period? |
| 32 | 8. **Channels currently running** — Google Ads, Meta Ads, LinkedIn Ads, Twitter/X Ads, TikTok Ads, other |
| 33 | 9. **Funnel data** (if available): |
| 34 | - Lead → MQL rate |
| 35 | - MQL → SQL rate |
| 36 | - SQL → Close rate |
| 37 | - Average deal size |
| 38 | 10. **Channels you're considering but haven't tried** — Want to test new channels? |
| 39 | 11. **Constraints** — Minimum spend on any channel? Platform you must stay on? |
| 40 | |
| 41 | ## Phase 1: Data Ingestion & Normalization |
| 42 | |
| 43 | ### Accepted Data Formats |
| 44 | |
| 45 | | Source | Key Columns Expected | |
| 46 | |--------|---------------------| |
| 47 | | **Google Ads** | Campaign, Ad Group, Keyword, Impressions, Clicks, CTR, CPC, Conversions, Conv Rate, Cost, Conv Value | |
| 48 | | **Meta Ads** | Campaign, Ad Set, Ad, Impressions, Reach, Clicks, CTR, CPC, Conversions, Cost Per Result, Amount Spent, ROAS | |
| 49 | | **LinkedIn Ads** | Campaign, Impressions, Clicks, CTR, CPC, Conversions, Cost, Leads | |
| 50 | |
| 51 | Normalize all data into a standard analysis format: |
| 52 | |
| 53 | | Dimension | Impressions | Clicks | CTR | CPC | Conversions | Conv Rate | CPA | Spend | Revenue/Value | |
| 54 | |-----------|------------|--------|-----|-----|-------------|----------|-----|-------|--------------| |
| 55 | |
| 56 | ### Multi-Channel Normalization |
| 57 | |
| 58 | When data spans multiple channels, also produce a channel-level rollup: |
| 59 | |
| 60 | | Channel | Monthly Spend | Impressions | Clicks | CTR | CPC | Conversions | Conv Rate | CPA | ROAS | CAC* | |
| 61 | |---------|-------------|------------|--------|-----|-----|-------------|----------|-----|------|------| |
| 62 | | Google Search | $[X] | [N] | [N] | [X%] | $[X] | [N] | [X%] | $[X] | [X] | $[X] | |
| 63 | | Google Display | ... | | | | | | | | | | |
| 64 | | Meta (FB/IG) | ... | | | | | | | | | | |
| 65 | | LinkedIn | ... | | | | | | | | | | |
| 66 | | [Other] | ... | | | | | | | | | | |
| 67 | | **Total** | $[X] | | | | | [N] | | $[X] avg | [X] avg | $[X] avg | |
| 68 | |
| 69 | *CAC = Full customer acquisition cost if funnel data provided (CPA × close-rate adjustment) |
| 70 | |
| 71 | ### Funnel-Adjusted CAC (If Funnel Data Available) |
| 72 | |
| 73 | ``` |
| 74 | Channel CAC = CPA ÷ (MQL rate × SQL rate × Close rate) |
| 75 | ``` |
| 76 | |
| 77 | This reveals which channels produce leads that actually close, not just convert. |
| 78 | |
| 79 | ## Phase 2: Performance Diagnostics |
| 80 | |
| 81 | ### 2A: Campaign-Level Health Check |
| 82 | |
| 83 | For each campaign: |
| 84 | |
| 85 | | Metric | Value | Benchmark | Status | |
| 86 | |--------|-------|-----------|--------| |
| 87 | | CTR | [X%] | [Industry avg] | [Good/Okay/Poor] | |
| 88 | | CPC | $[X] | [Category avg] | [Good/Okay/Poor] | |
| 89 | | Conv Rate | [X%] | [Benchmark] | [Good/Okay/Poor] | |
| 90 | | CPA | $[X] | [Target or benchmark] | [Good/Okay/Poor] | |
| 91 | | ROAS | [X] | [Target or benchmark] | [Good/Okay/Poor] | |
| 92 | | Impression Share | [X%] | [>60% ideal] | [Good/Okay/Poor] | |
| 93 | |
| 94 | ### 2B: Budget Waste Detection |
| 95 | |
| 96 | Identify spend that produced no or negati |