en un clic
google-ads-intent-map
// Build or update a Google Ads Intent Map from search terms, campaign data, and account context. Pulls live data via MCP or works with manual exports. Produces structure drafts when intent classes need separation.
// Build or update a Google Ads Intent Map from search terms, campaign data, and account context. Pulls live data via MCP or works with manual exports. Produces structure drafts when intent classes need separation.
| name | google-ads-intent-map |
| description | Build or update a Google Ads Intent Map from search terms, campaign data, and account context. Pulls live data via MCP or works with manual exports. Produces structure drafts when intent classes need separation. |
Read first:
google-ads/references/operator-thesis.mdgoogle-ads/references/intent-map.mdgoogle-ads/references/query-patterns.mdgoogle-ads/references/deliverable-templates.mdRead workspace if available:
workspace/ads/account.mdworkspace/ads/goals.mdworkspace/ads/intent-map.mdworkspace/ads/queries.mdworkspace/ads/winners.mdworkspace/ads/learnings.mdPull via the search tool on google-ads-mcp:
Primary: All search terms for clustering — last 30 days:
SELECT
search_term_view.search_term,
campaign.name,
campaign.advertising_channel_type,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions,
metrics.conversions_value,
metrics.all_conversions
FROM search_term_view
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.impressions DESC
LIMIT 1000
Retrieval ladder — if the primary query returns no rows, follow the shared retrieval ladder in data/search-term-retrieval.md. In pmax-fallback mode, use rows for clustering but note that performance metrics are unavailable for intent-class profiling. In limited mode, clustering is blocked — request a UI export.
Supplementary: Campaign and ad group structure (for routing analysis):
SELECT
campaign.name,
campaign.advertising_channel_type,
ad_group.name,
ad_group.status,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions
FROM ad_group
WHERE campaign.status = 'ENABLED'
AND ad_group.status = 'ENABLED'
AND segments.date DURING LAST_30_DAYS
ORDER BY campaign.name, ad_group.name
See data/gaql-recipes.md for additional queries.
If LAST_30_DAYS returns too few terms for meaningful clustering (<20 terms), fall back to LAST_90_DAYS, then all-time. Intent mapping benefits from volume — more search terms means better clustering. Always state the date range used.
Ask the user for:
See data/export-formats.md for recommended format.
data/search-term-retrieval.md). Report retrieval_mode in the output header.pmax-fallback, use rows for clustering but note that performance profiling is unavailable. If limited, clustering is blocked — request a UI export.workspace/ads/intent-map.md if it exists.workspace/ads/intent-map.md.Trigger: Two or more distinct intent classes are sharing a single campaign or ad group, AND the performance gap between them is significant (e.g., 2x+ CPA difference, or one class converts and the other doesn't).
Create a draft using drafts/templates/structure-draft.md:
workspace/ads/drafts/YYYY-MM-DD-[account-slug]-structure.mdworkspace/ads/drafts/_index.mdTrigger: Intent Map reveals a clear junk class that should be excluded account-wide.
Create using drafts/templates/negative-draft.md if the junk class is better solved by exclusion than by structure.
workspace/ads/intent-map.md — the primary deliverable. Rebuild or update the map.workspace/ads/queries.md — notable clustersworkspace/ads/findings.md — strategic observations about intent routingAnalyze a Google Ads search terms report for waste, buyer-intent signals, negative candidates, isolation opportunities, and messaging clues. Pulls live data via MCP or works with manual exports. Produces negative keyword drafts and RSA drafts when findings warrant.
Recommend negative keywords for Google Ads with the right match type, scope, and caution. Pulls live data via MCP or works with manual exports. Always produces a negative keyword draft for human review.
Full Google Ads review that synthesizes tracking, search terms, intent mapping, negatives, structure, RSAs, budget decisions, and PMax context into a single operator read. Pulls live data via MCP or works with manual exports. Produces a prioritized batch of action drafts.
Analyze Performance Max through the lens of intent contamination, cannibalization, weak control surfaces, and what can still be learned despite PMax opacity. Pulls live data via MCP or works with manual exports.
Generate or refine Google Ads RSA recommendations using real buyer language from search terms, intent clusters, and winning modifiers. Pulls live data via MCP or works with manual exports. Produces RSA refresh drafts.
Execute approved draft actions in Google Ads accounts. Supports four safe mutation types plus bounded budget writes: add campaign-level negatives, add ad-group-level negatives, pause keywords, pause ad groups, and set campaign daily budgets through an Apply Manifest. Requires human confirmation via dry-run → approve → execute → verify → audit flow. All actions are logged in the audit trail and fully reversible.