From metaflow-marketing-skills
Optimizes Google Ads campaigns with decision trees for CPA, impression share, Quality Score. Adjust bids, reallocate budgets, refine audiences, iterate ad copy.
How this skill is triggered — by the user, by Claude, or both
Slash command
/metaflow-marketing-skills:google-ads-optimizerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
1. **Diagnose** — Identify the specific performance problem (rising CPA, declining ROAS, low impression share, poor Quality Score, etc.)
What's the primary symptom?
| Symptom | Most Likely Cause | Start Here |
|---|---|---|
| CPA rising, conversions stable | Increased competition or bid inflation | Bid Optimization → Budget Reallocation |
| CPA rising, conversions declining | Tracking issue, audience exhaustion, or creative fatigue | Check tracking first → Audience Refinement |
| Low impression share (<30%) | Underbidding or budget constraints | Impression Share Analysis |
| High impression share (>95%) with low ROI | Overspending on low-value queries | Search Term Management → Negative Keywords |
| Quality Score declining | Landing page, ad relevance, or CTR issues | Quality Score Optimization |
| Good clicks, low conversion rate | Landing page problem or audience mismatch | Landing Page Optimization |
| PMax underperforming | Asset quality, audience signals, or budget | PMax Optimization |
| AI Max volatile | Still in learning or exploring new queries | Wait 7-14 days → review Smart Bidding Exploration |
| Scenario | Action | Increment |
|---|---|---|
| CPA consistently below target for 2+ weeks | Lower tCPA target to capture more efficient range | Decrease 10-15% |
| CPA consistently above target for 2+ weeks | Raise tCPA target (or algorithm delivery collapses) | Increase 10-15% |
| ROAS above target for 2+ weeks | Lower tROAS target to allow more volume | Decrease 10-15% |
| ROAS below target for 2+ weeks | Raise tROAS target to tighten efficiency | Increase 10-15% |
| Campaign in learning phase | Do nothing. Wait 7-14 days | No changes |
| Delivery collapsed (near-zero spend) | Target too aggressive — raise tCPA / lower tROAS | Increase 20-30% to restore delivery |
Key rules:
Portfolio strategies pool data across multiple campaigns for better optimization.
| When to Use | Benefit |
|---|---|
| Multiple campaigns targeting same conversion | Shared learning = faster optimization |
| Related campaigns with different budgets | Dynamic reallocation across campaigns |
| Account-wide ROAS/CPA goal | Unified strategy. Typical lift: 19-27% ROAS improvement |
Setup: Create portfolio strategy → assign related campaigns → set shared target → monitor at portfolio level, not individual campaign level.
| Step | Action |
|---|---|
| 1. Rank campaigns | Sort by primary KPI (CPA, ROAS, or conversion volume) |
| 2. Identify donors | Campaigns with CPA > 1.5x target OR ROAS < 50% of target for 30+ days |
| 3. Identify recipients | Campaigns with CPA < target AND impression share lost to budget > 10% |
| 4. Shift budget | Move 20% of donor budget to recipients. Monitor for 2 weeks |
| 5. Repeat | Continue rebalancing every 2-4 weeks |
Scaling rule: Increase winning campaign budgets by 20% increments maximum. Larger jumps destabilize Smart Bidding.
Day-of-week pacing: Analyze 90 days of conversion data by day of week. If Tuesdays convert 2x better than Saturdays, use dayparting scripts or budget adjustments to concentrate spend on high-converting days.
For automated budget pacing and redistribution scripts, use the google-ads-scripts skill.
| Metric | Threshold | Interpretation | Action |
|---|---|---|---|
| Search IS | <30% | Significantly underbidding or underfunded | Increase budget or raise bids (if profitable) |
| Search IS | 30-70% | Room to grow | Evaluate if more spend is profitable before scaling |
| Search IS | >95% | Dominating — but is it efficient? | If ROI is strong, maintain. If ROI is weak, you're overspending |
| IS Lost (Budget) | >20% on profitable campaigns | Budget-constrained on winners | Priority budget increase |
| IS Lost (Rank) | >30% | Ad rank too low | Improve Quality Score or increase bids |
| Top IS | <50% for brand terms | Competitors above you on your brand | Increase brand campaign bids |
Quality Score components, in order of optimization impact:
| Fix | Expected Impact |
|---|---|
| Page speed <3 seconds (GTmetrix / PageSpeed Insights) | Major — Google's 2025 quality system heavily weights navigation ease |
| Message match: landing page headline mirrors ad headline | High — direct relevance signal |
| Mobile optimization (responsive, thumb-friendly, no pop-ups) | High — mobile-first indexing active |
| Relevant content depth (not thin landing pages) | Medium |
| Clear CTA above the fold | Medium |
| Trust signals (testimonials, badges, reviews) | Medium |
| Fix | Expected Impact |
|---|---|
| Tighten ad group themes (5-15 related keywords per group) | High |
| Write intent-specific headlines matching the keyword theme | High |
| Use keyword insertion in headlines (where natural) | Medium |
| Create separate ad groups for distinct intent clusters | High |
| Fix | Expected Impact |
|---|---|
| Add negative keywords to filter irrelevant impressions | High (removes low-CTR impressions) |
| Test new headline angles emphasizing benefits and CTAs | Medium |
| Add extensions (sitelinks, callouts increase ad real estate → CTR) | Medium |
| Improve ad position (higher position → higher CTR, but check ROI) | Low-Medium |
QS impact on CPC: Moving Quality Score from 4 to 6 typically reduces CPC by 15-25%. From 6 to 8 reduces another 10-15%. Compounding effect is significant at scale.
Use Google's 2025 asset-level reporting:
| Asset Rating | Action |
|---|---|
| Best | Keep. This is a proven winner. Don't change it |
| Good | Maintain but consider testing alternatives |
| Low | Replace with new variation. Test a different angle |
| Unrated | Needs more data. Wait for significance |
Replacement strategy:
Ad copy testing areas:
Read references/rsa-copy-guide.md in the google-ads-campaign-builder skill for headline frameworks.
| Action | When |
|---|---|
| Refresh remarketing lists | Lists approaching expiration or audience size dropping |
| Upload new customer match lists | Monthly CRM sync minimum |
| Test new in-market segments | Performance plateau — need new audience pools |
| Expand custom intent audiences | Add new URLs and search terms based on converting queries |
| Switch observation → targeting | Audience segment shows strong performance in observation mode |
| Remove underperforming segments | Audience with high spend, zero conversions for 30+ days |
| Add audience signals to PMax | Missing signals = slower PMax learning |
Use PMax channel performance reports to assess where budget is going:
| Channel | Healthy Signal | Problem Signal |
|---|---|---|
| Search | Converting at or below tCPA | Queries irrelevant — add negatives |
| Shopping | Product-level conversions visible | Underperforming products need feed optimization |
| YouTube | Assists showing in conversion paths | Clicks but zero conversions — improve video assets |
| Display | Remarketing conversions | Low-quality placements — review placement reports |
| Discover/Gmail | Engagement leading to conversions | High impressions, no conversions — creative issue |
PMax negatives (January 2025): Use campaign-level negative keywords to block irrelevant Search queries. Also add exact-match keywords in Search campaigns to control which campaign serves on high-value queries.
| Test | Method | Priority |
|---|---|---|
| Headlines | A/B test headline messaging (match winning ad copy) | High |
| CTA button | Text, color, placement, size | High |
| Form length | Fewer fields vs more qualified leads | High (lead gen) |
| Social proof | Type, placement, volume of testimonials | Medium |
| Page layout | Long-form vs short-form, single-column vs multi | Medium |
| Mobile experience | Mobile-specific design, thumb-friendly buttons | High |
Message match audit: After changing ad copy, always check that the landing page still matches the new message. Mismatched message = high bounce rate = lower Quality Score.
Speed target: <3 seconds load time. Re-test monthly. Use GTmetrix or Google PageSpeed Insights.
| Phase | Timing | Action |
|---|---|---|
| Peak window | Days 7-14 post-launch | Algorithm has data but creative isn't fatigued. Best time to scale |
| Budget increase | When CPA < target for 2+ weeks | Increase by 20% max. Monitor for 1-2 weeks |
| New ad groups | When current groups saturated | Expand keyword themes based on search term mining |
| Campaign experiments | For aggressive tests | Google Campaign Experiments: 50/50 split without risking main campaign |
| New campaign types | When ready for full-funnel | Add Demand Gen (awareness) and PMax (full-funnel) per Power Pack strategy |
AI Max for Search scaling: Monitor Smart Bidding Exploration for new query categories being discovered. If AI Max is finding converting queries that standard Search misses, consider shifting more budget to AI Max. Learning phase: 7-14 days.
## Google Ads Optimization Plan
### Current Performance Summary
| Metric | Current | Target | Gap |
|--------|---------|--------|-----|
| CPA | $[X] | $[X] | [+/-X%] |
| ROAS | [X]x | [X]x | [+/-X%] |
| Impression Share | [X]% | [X]% | [gap] |
### Optimization Actions (ICE-prioritized)
| Priority | Action | Lever | ICE Score | Timeline |
|----------|--------|-------|-----------|----------|
| 1 | [action] | [bid/budget/QS/etc] | [score] | [when] |
### Changes to Implement
[Specific changes with exact values]
### Monitoring Plan
- Check [metric] after [X] days
- Success criteria: [what good looks like]
- Rollback plan: [if it doesn't work]
Input: "My Google Ads CPA went from $85 to $140 over 6 weeks. I'm spending $12K/month across 3 Search campaigns and 1 PMax campaign. ROAS dropped from 5.2x to 3.1x. tROAS is set at 500%. What should I do?"
Output:
| Metric | Current | Target | Gap |
|---|---|---|---|
| CPA | $140 | $85 | +65% above target |
| ROAS | 3.1x | 5.0x | -38% below target |
| Monthly spend | $12,000 | $12,000 | On budget |
With tROAS set at 500% but actual ROAS at 310%, the algorithm is likely throttling delivery to try to hit an unrealistic target. This creates a death spiral: less data → worse optimization → worse performance → algorithm throttles more.
| Priority | Action | Lever | ICE Score | Timeline |
|---|---|---|---|---|
| 1 | Lower tROAS from 500% to 350% (current actual + 10% buffer) | Bid | 9×9×10 = 810 | Day 1 |
| 2 | Run n-gram analysis on search terms — find and negate $50+ zero-conversion terms | Keywords | 9×8×9 = 648 | Day 1-3 |
| 3 | Review PMax channel performance — identify underperforming channels | Channel | 7×7×8 = 392 | Week 1 |
| 4 | Refresh RSA copy — replace "Low" rated assets | Creative | 6×6×7 = 252 | Week 2 |
| 5 | Test portfolio bid strategy across 3 Search campaigns | Bid | 7×6×6 = 252 | Week 2 |
| 6 | Landing page speed audit + message match review | QS | 6×7×5 = 210 | Week 2-3 |
npx claudepluginhub narayan-metaflow/metaflow-marketing-skills --plugin metaflow-marketing-skillsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.