mcpField
D
demand-gen-audit

demand-gen-audit

github.com/cognyaiMarketing & growth11146 installsUpdated 2w ago
Repository

About demand-gen-audit

demand-gen-audit is a Cogny Agent skill for auditing Google Ads Demand Gen campaigns. It reviews audience strategy, creative formats and fatigue, placements, and CPA, then reports recommendations without changing campaigns.

Key features

  1. 01Find Demand Gen campaigns and calculate CPA
  2. 02Review ad groups and audience signals
  3. 03Check creative formats and ad strength
  4. 04Identify creative fatigue and placement gaps
  5. 05Assess conversion-goal alignment

Use cases

  1. 01Find campaigns exceeding their target CPA
  2. 02Spot ad groups without audience signals
  3. 03Identify image-only or fatigued creative
  4. 04Review funnel-stage conversion goals

MCP support

Requires Cogny's Google Ads MCP tool for GAQL queries. It reads campaign data and produces recommendations; it does not make campaign changes.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/cognyai/claude-code-marketing-skills --skill demand-gen-audit

After installing, type/demand-gen-auditin Claude Code to confirm it loaded.

Details

From the project README

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.

Comments

Markdown supported