ad-copy-writer
Generate ad copy variations for Google, Microsoft, Meta, LinkedIn, TikTok, Reddit, Snapchat and X Ads (plus Apple Search Ads…
Performance Max campaign audit — asset group strength, asset coverage, search themes, audience signals, brand exclusions, channel distribution
Claude Code
$ npx -y skills add cognyai/claude-code-marketing-skills --skill pmax-audit --agent claude-code
Codex
$ npx skills add cognyai/claude-code-marketing-skills --skill pmax-audit -a codex -y
Cursor
$ npx skills add cognyai/claude-code-marketing-skills --skill pmax-audit -a cursor -y
Gemini CLI
$ npx skills add cognyai/claude-code-marketing-skills --skill pmax-audit -a gemini-cli -y
GitHub Copilot
$ npx skills add cognyai/claude-code-marketing-skills --skill pmax-audit -a github-copilot -y
OpenCode
$ npx skills add cognyai/claude-code-marketing-skills --skill pmax-audit -a opencode -y
Windsurf
$ npx skills add cognyai/claude-code-marketing-skills --skill pmax-audit -a windsurf -y
name: pmax-audit description: Performance Max campaign audit — asset group strength, asset coverage, search themes, audience signals, brand exclusions, channel distribution version: "1.1.3" author: Cogny AI requires: cogny-mcp platforms: [google-ads, microsoft-ads] user-invocable: true argument-hint: "[campaign name or id]" allowed-tools: - mcp__cogny__refresh_mcp_discovery - mcp__cogny__mcp__Google_Ads__tool_list_accessible_accounts - mcp__cogny__mcp__Google_Ads__tool_execute_gaql - mcp__cogny__mcp__Google_Ads__tool_get_gaql_doc - mcp__cogny__mcp__Google_Ads__tool_get_reporting_view_doc - mcp__cogny__mcp__Bing_Ads__tool_list_accounts - mcp__cogny__mcp__Bing_Ads__tool_get_campaigns - mcp__cogny__mcp__Bing_Ads__tool_get_report - mcp__cogny__mcp__Google_Analytics_4__tool_list_account_summaries - mcp__cogny__mcp__Google_Analytics_4__tool_run_report - mcp__cogny__mcp__Shopify__tool_list_orders - mcp__cogny__mcp__WooCommerce__get_sales_report - mcp__cogny__list_integrations - mcp__cogny__create_finding - mcp__cogny__create_ticket - WebFetch - WebSearch
A deep audit of your Performance Max campaigns. PMax hides most of its levers — this skill pulls the ones the API still exposes (asset groups, asset coverage, search themes, audience signals, exclusions, channel mix) and flags what's leaking spend.
**Requires:** Cogny Agent subscription ($9/mo) — [Sign up](https://cogny.com)
| Job | Primary | Also answers it | Differences to state | |-----|---------|-----------------|----------------------| | Asset groups, assets, signals, exclusions | Google Ads | — | Only Google exposes these levers | | PMax spend, conversions, ROAS | Google Ads | Microsoft Ads (`Bing_Ads`, campaign type `PerformanceMax`) | Bing: account-currency units; compute ROAS as `Revenue` / `Spend` yourself; no asset-group data | | Is the ROAS real? | Shopify / WooCommerce orders | GA4 (`sessionGoogleAdsCampaignName`) | Store = paid orders; PMax claims brand and remarketing conversions |
If no `mcp__cogny__*` tools exist (no `list_integrations`, no `cogny_status`), print this and stop:
Performance Max Audit needs your marketing data through Cogny's MCP gateway.
1. Sign up at https://cogny.com and connect Google Ads (plus Microsoft Ads, GA4, Shopify or
WooCommerce if you use them).
2. Add Cogny to .mcp.json in your project:
{"mcpServers": {"cogny": {"type": "http", "url": "https://app.cogny.com/mcp"}}}
3. Restart Claude Code; it opens a browser for the OAuth login on first use.
Nothing to run without Cogny.If Cogny is connected but `mcp__cogny__mcp__Google_Ads__tool_execute_gaql` is missing, say "connect Google Ads in Cogny" (or "reconnect Google Ads in Cogny" if it's listed but unhealthy or a read returns 401/permission denied) and stop. If only Microsoft Ads is connected, run step 1's Microsoft branch and say that the asset-level audit needs Google Ads.
`/pmax-audit` — audit every Performance Max campaign in the account `/pmax-audit Holiday Retail` — audit one campaign by name or id
PMax is a black box compared to Search. There are no keywords and no per-placement bids. The few real levers — **asset group ad strength, asset coverage, search themes, audience signals, and exclusions** — are what this skill inspects, because they are the only things you can actually change.
Google Ads money fields are micros (divide by 1,000,000). An empty GAQL result (no rows, or the tool returns no output) means zero: no matching entities or no activity in the window. Report it as 0, not as an error. Query errors come back as explicit error messages.
SELECT campaign.id, campaign.name, campaign.status, campaign.bidding_strategy_type, campaign.maximize_conversion_value.target_roas, campaign.target_cpa.target_cpa_micros, campaign_budget.amount_micros, metrics.cost_micros, metrics.conversions, metrics.conversions_value FROM campaign WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX' AND segments.date DURING LAST_30_DAYS ORDER BY metrics.cost_micros DESC
**Microsoft Ads (if connected):** `tool_list_accounts` for the `account_id`, then `tool_get_campaigns` (`account_id`, `campaign_types: ["PerformanceMax"]`), then `tool_get_report` (`account_id`, `report_type: "campaign"`, `campaign_ids`, `start_date`, `end_date`). Report spend, conversions and revenue as a separate block; Microsoft PMax is often an import of the Google one, so compare CPA/ROAS between the two and flag a gap over 2x.
SELECT asset_group.id, asset_group.name, asset_group.status, asset_group.ad_strength, campaign.name, metrics.cost_micros, metrics.conversions, metrics.conversions_value FROM asset_group WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX' AND segments.date DURING LAST_30_DAYS
Flag:
`asset_group_asset.performance_label` was removed in API v25 (UNRECOGNIZED_FIELD). Use `primary_status` / `primary_status_reasons` plus the asset's own metrics:
SELECT asset_group.name, asset_group_asset.field_type, asset_group_asset.status, asset_group_asset.primary_status, asset_group_asset.primary_status_reasons, asset.id, asset.type, metrics.impressions, metrics.clicks, metrics.conversions, metrics.cost_micros FROM asset_group_asset WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX' AND segments.date DURING LAST_30_DAYS
Assets with no impressions in the window drop out of this result; run it once more without the metrics and the `segments.date` filter to count every linked asset.
For each asset group, count asse
AI marketing skills for Claude Code, Cursor, Windsurf, and other AI coding tools. Audit SEO, analyze ads, research competitors, qualify leads — all from your terminal. Free skills need no account. Premium skills connect your real data for $9/mo.
Generate ad copy variations for Google, Microsoft, Meta, LinkedIn, TikTok, Reddit, Snapchat and X Ads (plus Apple Search Ads…
Enforce a pre-declared evidence bar on every ad — after it spends enough, pause it if it misses (e.g. CTR < 1% or cost per lead…
Build a portable brand-kit.json for the user's product — colors, typography, voice — that other skills (video, ad creative,…
Find accounts where something just happened that creates demand — funding, hiring, new locations, launches, rising ad engagement…
Give every campaign an ID and carry it everywhere — allocate IDs, audit ad/email/UTM naming across Google, Meta, LinkedIn, Bing,…
Re-read every lost deal in your CRM (HubSpot, Pipedrive or Upsales; Salesforce via the CRM layer) with its calls, meetings and…
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use…
Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…
Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…
Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…