Purpose
Catch the setup errors that quietly waste budget, break attribution, or violate policy — before a campaign goes live. Produces a prioritized pre-launch punch list where every flagged issue is labeled by severity and paired with the exact correction, so a specialist can approve or fix in one pass.
When to Use
Invoke this skill when the user asks to:
- QA or review a campaign before hitting launch
- Check ad setup for targeting, tracking, or budget errors
- Verify UTM parameters, pixels, or conversion tracking are correct
- Confirm campaign naming follows the team's convention
- Build a pre-flight checklist or approval process for paid media
- Get a second set of eyes on a campaign someone else built
Inputs Required
Before starting, collect:
- Platform(s): Meta, Google, TikTok, LinkedIn, or other — QA rules differ by platform
- Campaign objective: The selected objective and the actual business goal (they should match)
- Targeting setup: Audiences, geos, ages, placements, exclusions, and any lookalikes/custom audiences
- Tracking setup: Pixel/conversion event selected, UTM parameters, destination URLs
- Budget and bidding: Daily/lifetime budget, bid strategy, and CPA/ROAS target if any
- Naming convention: The team's naming standard (or a note that none exists)
- Creative and copy details: Ad formats, headlines, primary text, CTAs, landing page URLs
If a naming convention isn't provided, flag naming as a Note and recommend a standard format rather than skipping the check.
Instructions
Review the campaign against all 8 checkpoints below. For every issue found, assign a severity and a fix:
- 🔴 Blocker — will waste spend, break tracking, or get the campaign rejected. Must fix before launch.
- 🟡 Warning — likely to hurt performance or reporting; fix strongly recommended.
- 🔵 Note — best-practice improvement or a check the reviewer should confirm.
If a checkpoint passes cleanly, mark it ✅ Pass with a one-line confirmation.
Checkpoint 1: Objective Alignment
Confirm the selected objective matches the business goal.
- Awareness goal → Reach/Awareness objective (not Traffic)
- Lead goal → Leads or Conversions optimizing for a lead event (not Traffic or Engagement)
- Sales goal → Conversions/Sales optimizing for purchase (not Add-to-Cart unless intentional)
- Flag any objective optimizing for a cheap proxy metric (clicks, landing page views) when the real goal is downstream conversion.
Checkpoint 2: Targeting
- Geo: Confirm countries/regions are correct and that "people living in" vs "recently in" is intentional.
- Exclusions: Existing customers or converters excluded from prospecting? Prospecting audiences excluded from retargeting overlap?
- Audience size: Too narrow (learning phase risk) or too broad for the budget?
- Placements: Manual placements intentional, or is broad/automatic placements silently including low-quality inventory (Audience Network, Search Partners)?
- Overlap: Multiple ad sets targeting the same audience competing against each other?
- Age/gender/language: Match the intended customer and the ad's language?
Checkpoint 3: Tracking & Pixels
- Conversion event: Correct event selected and confirmed firing (not a stale or test event)?
- Attribution window: Intentional (e.g., 7-day click) and consistent with reporting expectations?
- UTM parameters: Present, correctly structured, and matching the team's UTM taxonomy? Check for spaces, uppercase inconsistencies, and missing source/medium/campaign values.
- Destination URL: Loads, is HTTPS, matches the ad promise, and carries UTMs correctly.
- Pixel/tag presence: Tracking installed on the landing page and thank-you/conversion page.
Checkpoint 4: Naming Conventions
- Campaign, ad set, and ad names follow the team's standard.
- Names encode the fields the team reports on (objective, audience, geo, funnel stage, date/version).
- No default names left in place (e.g., "New Campaign," "Ad Set 1," "Untitled").
- Consistent delimiters and casing across all levels.
Checkpoint 5: Budget & Bidding
- Budget level: Set at the intended level (campaign budget optimization vs ad-set budgets) — not doubled or misplaced.
- Budget vs audience/goal: Enough daily budget to exit the learning phase (roughly enough for ~50 optimization events/week)?
- Bid strategy: Matches maturity — automated/lowest-cost when data is thin; target CPA/ROAS only with sufficient conversion history (~30–50 conversions/month).
- Caps: Any bid or cost cap set that's unrealistically low and will throttle delivery?
- Schedule vs lifetime budget: Lifetime budget paired with a defined end date; daily budget not accidentally set as lifetime (or vice versa).
Checkpoint 6: Creative & Links
- Every ad has creative, headline, primary text, and a CTA — no empty or placeholder fields.
- Creative meets platform spec (aspect ratio, resolution, text-in-image, length limits).
- Links in each ad point to the correct, live URL — no broken, staging, or mismatched links.
- CTA button matches the offer (Shop Now vs Learn More vs Sign Up).
- Copy is free of typos, correct pricing/claims, and no leftover bracket placeholders.
Checkpoint 7: Scheduling
- Start/end dates and day-parting correct and in the intended time zone.
- No unintended immediate launch if a scheduled start was expected.
- Time zone of the ad account matches reporting/team expectations.
- For time-sensitive promos, confirm end date is set so the campaign doesn't run past the offer.
Checkpoint 8: Compliance & Policy
- No restricted-category issues (health claims, financial promises, before/after, personal attributes targeting where prohibited).
- Special ad category set correctly if applicable (housing, employment, credit, social/political).
- Landing page matches ad claims and has required disclosures/privacy policy.
- No policy-violating language (guarantees, "you," discriminatory framing) for the platform.
Final: Launch Verdict
Summarize counts of Blockers / Warnings / Notes and give a clear verdict:
- Do not launch — one or more Blockers present.
- Launch after quick fixes — Warnings only.
- Cleared to launch — no Blockers or Warnings.
Output Format
- Structure: 8 checkpoint sections in order, each showing Pass or a list of flagged issues; issues formatted as
[Severity] Issue — Fix. Ends with a Launch Verdict summary. - Length: 700–1,100 words depending on issue count
- Format: Scannable structured list with severity icons; verdict as a short summary block with counts
- Sections: Objective Alignment → Targeting → Tracking & Pixels → Naming Conventions → Budget & Bidding → Creative & Links → Scheduling → Compliance & Policy → Launch Verdict
- Tone: Direct pre-flight reviewer — terse, specific, no hedging; every flag has an actionable fix
Quality Checklist
Before delivering output, verify:
- [ ] All 8 checkpoints are addressed — each is either ✅ Pass or has flagged issues
- [ ] Every flagged issue has a severity label (Blocker / Warning / Note) and a specific fix
- [ ] Tracking check covers UTM structure, conversion event, and destination URL — not just "check tracking"
- [ ] Launch Verdict includes exact counts of Blockers, Warnings, and Notes
- [ ] No issue is flagged without a corresponding correction
- [ ] Platform-specific rules are applied to the platform(s) provided (e.g., special ad category, placement inventory)
Notes
- The most expensive errors are silent: wrong conversion event, broken UTMs, and accidentally-broad placements rarely trigger warnings inside the ad platform — check these hardest.
- Only flag a Blocker when the issue genuinely wastes spend, breaks attribution, or risks rejection. Overusing Blockers erodes trust in the review.
- If details for a checkpoint weren't provided, mark it as a Note with "confirm before launch" rather than assuming it's fine.
- Recommended workflow: run this QA on every campaign at build-complete, then again after any bulk edit — bulk edits are a common source of reintroduced errors.
How to use this skill
This file is a Claude Code skill in Anthropic's standard format — markdown with YAML frontmatter at the top.
Installing in Claude Code:
~/.claude/skills/<folder-name>/SKILL.md— auto-loads in every session anywhere on your machine (recommended for skills you'll use across multiple projects)<your-project>/.claude/skills/<folder-name>/SKILL.md— auto-loads only when working in that project (recommended for project-specific skills)
Restart Claude Code or open a new session to register.
Using in Claude.ai, ChatGPT, Gemini, or other AI tools:
- Drag this file into a new chat, or copy and paste its contents
- Send your task or request as your next message — the AI will apply the skill where it fits
For Claude Code skill details: https://docs.anthropic.com/en/docs/claude-code/skills