agentsclimarketplace

Demand gen audit

Skill cognyai/claude-code-marketing-skills/skills/demand-gen-audit

Marketing skills for Claude Code — SEO audits and implementation, ad analysis, ad optimization. Free skills need no account. $9/mo for live Search Console, Bing & LinkedIn data.

Install
npx -y skills add cognyai/claude-code-marketing-skills --skill demand-gen-audit

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

What its author says it does

Copied from the file, not written here

Google Ads Demand Gen audit — audience strategy, creative format diversity, creative freshness, placements, CPA vs goal

SKILL.md

5.9 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it

Demand Gen Audit

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

Prerequisites Check

If mcp__cogny__google_ads__tool_execute_gaql is not available, print the Cogny sign-up instructions (see /google-ads-audit) and stop.

Usage

/demand-gen-audit — audit every Demand Gen campaign in the account /demand-gen-audit Prospecting - Q2 — audit one campaign by name or id

Why Demand Gen needs its own audit

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.

Steps

1. Find the Demand Gen campaigns

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

Compute CPA and compare to the campaign's target CPA. Flag campaigns running >50% over target.

2. Ad group & audience strategy

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:

  • Ad groups with no audience attached (running fully broad — burns budget)
  • Only broad/affinity audiences, no first-party signal (customer match, website visitors) and no lookalike segments
  • Prospecting and remarketing audiences mixed in one ad group — they need different creative and different bids
  • A single ad group per campaign (no audience testing)

3. Creative format diversity

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 segments.date DURING LAST_30_DAYS

Demand Gen ad types: single image, carousel, and video responsive. Flag:

  • Single-format ad groups — image-only campaigns miss YouTube/Shorts inventory; add video
  • Ad strength POOR / AVERAGE
  • Fewer than 2–3 ads per ad group (nothing to optimize between)
  • Zero video creative when the budget is >$3K/mo

4. Creative fatigue

For each enabled ad, look at the CTR / conversion-rate trend over the last 30 days vs the prior 30. Flag:

  • Ads live >60 days with a falling CTR (classic fatigue)
  • Ad groups where every ad launched the same day and none has refreshed since

5. Placement & exclusions

Flag:

  • No content/placement exclusions — Demand Gen can serve next to anything
  • Conversions concentrated in one surface while budget spreads evenly (consider surface-specific campaigns)

6. Conversion goal alignment

Demand Gen is upper/mid funnel. Flag campaigns optimizing to a hard bottom-funnel action (purchase) with too few conversions to learn — a softer goal (lead, signup, add-to-cart) often suits the funnel stage better.

7. Score and report

Demand Gen Audit — [Account Name]
Demand Gen Score: X/100  ·  30-day spend: [X]  ·  Conv: [X]  ·  CPA vs target: [X]

| Campaign | Ad groups | Audiences | Formats | Avg ad strength | CPA |
|----------|-----------|-----------|---------|-----------------|-----|

🔴 Critical   — no audiences, no conversions, CPA far over target
🟡 Important  — single-format creative, fatigue, no first-party signal
🟢 Optimization — add lookalikes, placement exclusions, creative refresh

Top 3 Actions:
1. [Highest $ impact]
2. ...
3. ...

8. Record findings

{
  "title": "Demand Gen 'Prospecting - Q2' runs image-only — missing YouTube & Shorts",
  "body": "All 4 ads in the campaign are single-image. Demand Gen serves video inventory on YouTube feed and Shorts that image ads can't reach. The campaign spends $110/day. Add 2-3 vertical video creatives to open that inventory.",
  "action_type": "creative_refresh",
  "expected_outcome": "Access to video inventory; lower CPM and broader reach",
  "estimated_impact_usd": 900,
  "priority": "medium"
}

Action types: creative_refresh, audience_refinement, campaign_optimization, bidding_strategy, placement_exclusion.

Critical rules

  1. Audiences and creative are the whole game. Demand Gen has no keyword lever — spend the audit there.
  2. Always check for video. Image-only Demand Gen leaves the best inventory unused.
  3. Quote real numbers: format counts, audience types, CPA vs target.
  4. Read-only. Recommend audience and creative changes; never make them.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 327,167. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.