Agent skill
google-ads-pmax-asset-group-optimizer
This skill should be used when the user asks to \"optimize PMax asset groups\", \"analyze asset group performance\", \"configure listing groups\", \"set up search themes\", or mentions \"audience signals optimization\", \"creative testing in PMax\", or \"asset group structure\".
Filed under ABM and paid.
From Ad-Superpowers/ad-superpowers-plugin · 120 skills · 5 · pushed 2026-09-10
What it does when it runs
This skill should be used when the user asks to \"optimize PMax asset groups\", \"analyze asset group performance\", \"configure listing groups\", \"set up search themes\", or mentions \"audience signals optimization\", \"creative testing in PMax\", or \"asset group structure\". Do NOT use for: standard Search/Display campaign setup (use search-campaign-builder), bid strategy selection (use learning-phase-tracker).
Read from the skill and the 2 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- None found.
- Hosts it reaches
- No third-party host appears in the skill or its bundled files.
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It only issues instructions, so there is nothing to bound. - Actions present in the files
- None. Instructions only.
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/Ad-Superpowers/ad-superpowers-plugin.git /tmp/ad-superpowers-plugin git -C /tmp/ad-superpowers-plugin sparse-checkout set "plugin/skills/google-ads-pmax-asset-group-optimizer" mkdir -p ~/.claude/skills/google-ads-pmax-asset-group-optimizer cp -R "/tmp/ad-superpowers-plugin/plugin/skills/google-ads-pmax-asset-group-optimizer/." ~/.claude/skills/google-ads-pmax-asset-group-optimizer/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
Or take the whole library
This repo ships a .claude-plugin manifest, so Claude Code can install all 120 skills at once. Plugin skills are invoked as /<plugin>:<skill>, so they never collide with your own.
/plugin marketplace add Ad-Superpowers/ad-superpowers-plugin /plugin
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
The skill
Source on GitHub ↗Reproduced in full from Ad-Superpowers/ad-superpowers-plugin/blob/9b6385d2d2d228e4dac096a1d6bc5715c04fa736/plugin/skills/google-ads-pmax-asset-group-optimizer/SKILL.md, which is licensed MIT (repository). 937 words, 18 headings.
Performance Max Asset Group Optimizer
Complete guide for optimizing Performance Max asset groups — from structure and audience signals to creative testing and feed optimization.
Asset group count decision guide in references/decision-trees.md.
MCP Tool Integration
STEP 1: PMax campaign performance overview
google_ads_run_gaql(query="
SELECT campaign.name, campaign.status,
metrics.cost_micros, metrics.conversions,
metrics.cost_per_conversion, metrics.conversions_value
FROM campaign
WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX'
AND campaign.status = 'ENABLED'
AND segments.date DURING LAST_30_DAYS
ORDER BY metrics.cost_micros DESC
")
STEP 2: Asset group performance
google_ads_run_gaql(query="
SELECT campaign.name, asset_group.name, asset_group.status,
metrics.impressions, metrics.clicks, metrics.conversions,
metrics.cost_micros, metrics.cost_per_conversion
FROM asset_group
WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX'
AND segments.date DURING LAST_30_DAYS
ORDER BY metrics.cost_micros DESC
")
STEP 3: Search terms (v21+)
google_ads_run_gaql(query="
SELECT campaign.name, search_term_view.search_term,
metrics.impressions, metrics.clicks,
metrics.conversions, metrics.cost_micros
FROM search_term_view
WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX'
AND segments.date DURING LAST_30_DAYS
ORDER BY metrics.cost_micros DESC
LIMIT 100
")
STEP 4: Ad network type breakdown (v22+)
google_ads_run_gaql(query="
SELECT campaign.name, segments.ad_network_type,
metrics.impressions, metrics.clicks,
metrics.conversions, metrics.cost_micros
FROM campaign
WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX'
AND segments.date DURING LAST_30_DAYS
")
Asset Group Structure
Structuring Options
| Option | Best for | Example |
|---|---|---|
| Category-based | Most common | Women's / Men's / Accessories |
| Margin-based | Profit focus | High / Standard / Clearance |
| Funnel-based | Customer journey | Prospecting / Retargeting / Cross-sell |
| Performance-based | Data-driven | Top Performers / Testing / Long Tail |
| Hybrid (recommended) | Best of all | Bestsellers + Category A/B/C + Sale |
Asset Requirements
| Asset Type | Min | Recommended | Max | Specs |
|---|---|---|---|---|
| Headlines | 3 | 5-15 | 15 | Max 30 chars |
| Long Headlines | 1 | 3-5 | 5 | Max 90 chars |
| Descriptions | 2 | 4-5 | 5 | Max 90 chars |
| Images | 2 | 6-10 | 20 | 1200x628, 1200x1200, 960x1200 |
| Logos | 1 | 2 | 5 | 1200x1200 (square), 1200x300 (landscape) |
| Videos | 0 | 1-3 | 5 | 15-30 sec, 16:9 + 1:1 + 9:16 |
No video upload = Google auto-creates video from images (often less effective).
Detailed asset variation strategy (headline/image/video types) in references/detailed-reference.md.
Asset Performance Ratings
Per-asset ratings (Best/Good/Low/Pending) removed from API in v22 — check in Google Ads UI only (Campaign → Asset Groups → Asset Performance).
Optimization cycle:
- Week 1-2: Learning phase — upload all assets, make no changes
- Week 3-4: First analysis — identify "Low" performers, note trends
- Week 5-6: First optimization — replace consistently "Low" assets, add "Best" variations
- Monthly: Full review, replace 20-30% of assets, seasonal updates
Replacement rules: Low >30 days → Replace. Low <30 days → Monitor. Good → Keep, test variations. Best → Keep, create similar. Pending → Wait.
Audience Signals Optimization
Audience Signals = HINTS for Google AI, NOT targeting restrictions. Google will advertise beyond your signals.
Signal priority (strongest to weakest):
- Your Data: Customer Match (converters)
- Your Data: Website remarketing (high intent)
- Custom Segments: Keywords (competitor/product)
- Custom Segments: URLs (competitor sites)
- In-Market Audiences
- Affinity Audiences
- Demographics
Example configuration — Bestsellers AG:
- Your Data: All Purchasers, Product Viewers (90d), Cart Abandoners (30d)
- Custom Segments: top product names, competitor product pages
- Interests: relevant In-Market + Affinity categories
Audience signal troubleshooting (ignored signals, too broad/narrow) in references/decision-trees.md.
Search Themes
Keywords you give PMax to understand relevant search queries (hints for AI, not exact targeting).
- Recommended: 3-7 per asset group (max 25)
- Types: Branded, Generic Product, Long-tail, Problem-solving
- Update monthly: check Search Terms report, add high-performers, remove non-performers
Per-category search theme examples in references/detailed-reference.md.
Listing Groups (E-commerce)
Listing Groups determine which products belong to which Asset Group.
Segmentation attributes: Category, Brand, Condition, Item ID, Product Type, Custom Labels (0-4).
Custom Labels strategy:
- Label 0: Margin Level (High/Medium/Low)
- Label 1: Performance Tier (Bestseller/Rising Star/Long Tail)
- Label 2: Seasonal (Spring/Summer/Fall/Winter)
- Label 3: Promo Status (Full Price/On Sale/Clearance)
Optimization: Identify top 20% products (own asset group, premium signals) and bottom 20% (exclude or improve feed quality). Exclude out-of-stock, below-breakeven margin, seasonally irrelevant products.
PMax New Capabilities (2025-2026)
- Campaign-level negative keywords (v20): Add via UI or API. Protect specific queries for separate Search campaigns.
- Search terms reporting (v21): PMax search term data now in API. Use to find negatives and new keyword opportunities.
- First-party audience exclusions (Mar 2026): Exclude existing customers for pure prospecting.
- Ad network type breakdown (v22): See which network (Search, Display, YouTube) drives PMax performance.
- Demographic reporting (Mar 2026): Age/gender breakdowns for budget efficiency analysis.
Creative testing approaches (sequential, split AG, experiments) and asset refresh cadence in references/detailed-reference.md.
Output: Asset Group Optimization Template
# Asset Group Optimization Plan
## Campaign Overview
- **Campaign:** [Name] | **Account:** [Name] | **Period:** [Date range]
## Asset Group Structure
| Asset Group | Products/Focus | Budget % | ROAS | Status |
|-------------|---------------|----------|------|--------|
| [AG 1] | [Products] | [%] | [X]x | [Status] |
## Asset Performance Review
| Asset Type | Rating | Action |
|------------|--------|--------|
| [Headline/Image/Video] | [Best/Good/Low] | [Keep/Replace/Add variation] |
## Audience Signals Review
| Signal Type | Signal | Performance |
|-------------|--------|-------------|
| Your Data | [Signal] | [Performance] |
| Custom | [Signal] | [Performance] |
## Action Items
- Immediate: [This week actions]
- Short-term: [Next 2 weeks]
- Long-term: [Next month]
## Success Metrics
| Metric | Current | Target | Timeline |
|--------|---------|--------|----------|
| ROAS | [X]x | [Y]x | [Date] |
| CPA | $[X] | $[Y] | [Date] |
Files bundled with it
These load only when the skill asks for them, so they cost nothing until it runs.
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- google-ads by OpenClaudia · 691
- google-ads-report by OpenClaudia · 691
- google-ads by thatrebeccarae · 139
- gt-google-ads by Growth-Today · 3
- google-ads-builder by ekatasingh1107 · 2
- google-ads-change-plan by sidchaudhary · 1
- google-ads-conversion-tracking by sidchaudhary · 1
- google-ads-quality-score by sidchaudhary · 1
Need help setting it up?
This page tells you what google-ads-pmax-asset-group-optimizer does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.