ad-copy-writer
Generate ad copy variations for Google, Microsoft, Meta, LinkedIn, TikTok, Reddit, Snapchat and X Ads (plus Apple Search Ads…
Google Ads Demand Gen audit — audience strategy, creative format diversity, creative freshness, placements, CPA vs goal
Claude Code
$ npx -y skills add cognyai/claude-code-marketing-skills --skill demand-gen-audit --agent claude-code
Codex
$ npx skills add cognyai/claude-code-marketing-skills --skill demand-gen-audit -a codex -y
Cursor
$ npx skills add cognyai/claude-code-marketing-skills --skill demand-gen-audit -a cursor -y
Gemini CLI
$ npx skills add cognyai/claude-code-marketing-skills --skill demand-gen-audit -a gemini-cli -y
GitHub Copilot
$ npx skills add cognyai/claude-code-marketing-skills --skill demand-gen-audit -a github-copilot -y
OpenCode
$ npx skills add cognyai/claude-code-marketing-skills --skill demand-gen-audit -a opencode -y
Windsurf
$ npx skills add cognyai/claude-code-marketing-skills --skill demand-gen-audit -a windsurf -y
name: demand-gen-audit description: Google Ads Demand Gen audit — audience strategy, creative format diversity, creative freshness, placements, CPA vs goal version: "1.1.2" 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__Meta_Ads__tool_list_ad_accounts - mcp__cogny__mcp__Meta_Ads__tool_get_insights - mcp__cogny__list_integrations - mcp__cogny__create_finding - mcp__cogny__create_ticket - WebFetch - WebSearch
A deep audit of your Demand Gen campaigns — Google's visual, social-style campaign type running across Discover, Gmail, YouTube feeds and Shorts. Demand Gen lives or dies on audiences and creative, so that's where this audit spends its time.
**Requires:** Cogny Agent subscription ($9/mo) — [Sign up](https://cogny.com)
| Job | Primary | Also answers it | Differences to state | |-----|---------|-----------------|----------------------| | Audiences, creative formats, ad strength | Google Ads | — | Google-only levers | | Same-job campaign totals | Google Ads (Demand Gen) | Microsoft Ads (`Bing_Ads`, campaign type `Audience`) | Bing money is account-currency units; Microsoft Audience Network inventory, not YouTube | | Post-click quality | Google Analytics 4 | — | GA4 engaged sessions and key events per campaign; GA4 attribution ≠ Ads | | Prospecting CPA benchmark | — | Meta Ads (`tool_get_insights`) | Meta counts link clicks and conversions differently; compare CPA, never sum |
Call `list_integrations` once. Everything beyond Google Ads is optional context.
If no `mcp__cogny__*` tools exist (no `list_integrations`, no `cogny_status`), print this and stop:
Demand Gen 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 or Meta Ads
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.
`/demand-gen-audit` — audit every Demand Gen campaign in the account `/demand-gen-audit Prospecting - Q2` — audit one campaign by name or id
Demand Gen has no keywords and no search intent. It's an interruption channel — you win by showing the right **audience** the right **creative**. The audit checks audience strategy, creative format spread, creative fatigue, and whether CPA is tracking toward goal.
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.
SELECT campaign.id, campaign.name, campaign.status, campaign.bidding_strategy_type, campaign.target_cpa.target_cpa_micros, campaign_budget.amount_micros, metrics.cost_micros, metrics.conversions, metrics.conversions_value, metrics.clicks, metrics.impressions FROM campaign WHERE campaign.advertising_channel_type = 'DEMAND_GEN' AND segments.date DURING LAST_30_DAYS ORDER BY metrics.cost_micros DESC
If this returns no rows, also check for paused or idle ones (same query without the date filter, `campaign.status != 'REMOVED'`). If there are still none, report "no Demand Gen campaigns in this account" and stop; suggest `/google-ads-audit` for the account as a whole.
Compute CPA and compare to the campaign's target CPA. Flag campaigns running >50% over target.
**Microsoft Ads (if connected):** `tool_get_campaigns` (`account_id`, `campaign_types: ["Audience"]`) and `tool_get_report` (`account_id` from `tool_list_accounts`, `report_type: "campaign"`, `campaign_ids`). Show Microsoft Audience campaigns as their own row block with CPA in the account's currency.
SELECT ad_group.name, ad_group.status, campaign.name, metrics.cost_micros, metrics.conversions, metrics.clicks FROM ad_group WHERE campaign.advertising_channel_type = 'DEMAND_GEN' AND segments.date DURING LAST_30_DAYS
SELECT ad_group.name, ad_group_criterion.type, ad_group_criterion.user_list.user_list, ad_group_criterion.audience.audience FROM ad_group_criterion WHERE campaign.advertising_channel_type = 'DEMAND_GEN' AND ad_group_criterion.status = 'ENABLED'
Flag:
visitors) and no lookalike segments
creative and different bids
SELECT ad_group.name, ad_group_ad.ad.id, ad_group_ad.ad.type, ad_group_ad.ad_strength, ad_group_ad.status, metrics.impressions, metrics.clicks, metrics.conversions FROM ad_group_ad WHERE campaign.advertising_channel_type = 'DEMAND_GEN' AND
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…