Campaign Demand Gen Audit: Install, Source and Security | FunnelSlayer

Campaign Demand Gen Audit

Published by portermetricsample in marketing-skills

No known issues2 installs

What this skill does

Demand Gen campaign performance audit — evaluates whether Demand Gen campaigns are earning their budget against the account's Search baseline (CPA/ROAS), surfaces efficiency gaps, and states what Porter can and cannot see (asset-group detail is not exposed). Use this skill when the user asks about Demand Gen, YouTube/Display campaigns, video campaign performance, or whether top-of-funnel campaigns are delivering.

Add Campaign Demand Gen Audit to your agent

Review the source and files first. When you are ready, copy the prompt instruction or use the CLI command supported by your environment.

Install with a prompt

Paste this into a compatible coding agent:

add this skill "campaign-demand-gen-audit" from https://github.com/portermetricsample/marketing-skills

Install with the CLI

Run this command in a controlled environment after reviewing the repository:

npx skills add https://github.com/portermetricsample/marketing-skills --skill campaign-demand-gen-audit

Skill instructions

Demand Gen Campaign Audit

Goal (job-to-be-done)

Judge whether Demand Gen campaigns justify their spend relative to the account's Search baseline (the proven CPA/ROAS from non-brand Search), and surface what to fix, hold, or cut.

  • Who: media buyer / PPC manager / account owner.
  • Decision it drives: raise, hold, cut, or restructure Demand Gen spend.
  • What it is NOT: a Search performance review (that's campaigns/spend-allocation/ or financial-overview/). This skill is specifically for evaluating upper/mid-funnel campaign types.

Scope — what Porter can and cannot see

WhatExposed by connectorNote
Campaign-level spend / conversions / CPA / ROASthe primary lens here
Impression Share on Demand Gen⚠️ partialIS less reliable on DG; note if missing
Asset-group performance (creative/audience breakdown)🔴 gapnot exposed by Porter; audit in Google Ads UI
Audience signals applied🔴 gapnot returned by query_data for DG
Video view rate / VTR🔴 gapnot in connector

Always close the section by naming these gaps and directing the user to the Google Ads UI for the asset-group and creative read. Never imply a creative or audience verdict was formed from Porter data — it wasn't.

The benchmark — compare to non-brand Search

Demand Gen competes for budget against Search. The right benchmark is non-brand Search CPA/ROAS (from brand-incrementality/ or financial-overview/ with brand traffic stripped). If only the blended account CPA is available, use it and flag that brand inflation understates the true gap.

VerdictWhenImplication
EarningDG CPA ≤ non-brand Search CPA and ROAS ≥ non-brand ROASkeep / scale
Watchwithin 20% of the Search baselinehold; reassess in 30d or after conversion-signal fix
TrimCPA 20–50% above Search baselinereduce daily budget; don't scale
PauseCPA > 2× Search baseline or ROAS < 0.5× Search baselinepause and replan creative/audience

Spending 2–5% of account budget on Demand Gen at a moderate efficiency loss can be defensible for pipeline/awareness goals — note this context when the CPA gap is borderline.

Output

  1. Campaign table: one row per Demand Gen campaign: { campaign_name, spend, conversions, cpa, roas, vs_search_baseline_pct, verdict, recommendation }.
  2. Asset-group note: explicit gap statement directing the user to the Google Ads UI.
  3. Summary: total Demand Gen spend + share of account budget, aggregate efficiency vs Search baseline, top fix (pause / restructure / hold), and whether the conversion signal (§1 / conversion-tracking/) is trustworthy before making budget moves.

Interaction with conversion-tracking (Step Zero)

If conversion-tracking/ flagged multiple primary actions (blended conversions), Demand Gen CPA comparisons are directional only — Demand Gen typically captures upper-funnel events that Search doesn't, so the comparison overstates the gap. Name this if applicable.

Files included

  • SKILL.md

More skills