The PPC Manager’s System Prompt Library: 7 Diagnostic Prompts You Version Like Code and Rerun Across Every Account
- The new PPC skill set system prompts marketers should own is a versioned
/promptsfolder, treated like code, with a changelog and the same diagnostic prompts rerun against every account on the roster. - The prompts that compound are the ones that read account exports (conversion actions, search terms, asset reports) and return structured findings. The ones that write headlines hit a leverage ceiling fast.
- A reusable PPC system prompt has five required parts: role and scope, input schema, output schema, refusal cases, and a version tag in the header. Skip any one and the output drifts across accounts.
- The Conversion Signal QA prompt has to catch four contamination patterns: micro-conversions marked as Primary, offline imports arriving late, $0 or flat values, and the same event counted across the web tag plus an offline import plus GA4.
- Assign each prompt a cadence. Weekly: signal QA, search-term mining, creative fatigue. Per-session: bid strategy diagnostic. Onboarding plus quarterly: PMax asset review.
Questions this article answers:
- How do I build a reusable prompt library I can rerun across multiple Google Ads accounts?
- What’s the difference between a generative prompt and a diagnostic prompt?
- How do I get structured output from Claude or ChatGPT reliably?
- Should I use the chat window or Claude Code for this work?
- Which prompts should run weekly vs only at onboarding?
- How do I stop the model from hallucinating issues that aren’t in the data?
The new PPC skill set system prompts marketers should own is not a clever wrapper around ChatGPT. It is a folder of diagnostic prompts you version like code, rerun against every account, and hand to a junior buyer on Monday morning. Most managers are still pasting one-off requests into a chat window. The operators pulling ahead have a library.
The trade press has been framing the shift from keyword manager to system optimizer correctly for a while now. What the coverage leaves out is the artifact. Nobody hands you the folder. This piece does.
The “System Optimizer” Narrative Is Right, But Nobody Hands You the Artifact
The trade press keeps telling PPC managers to think in systems, feed the algorithm cleaner signal, and move past one-off prompting. The pieces stop at the thesis. They do not hand you anything you can open on Monday.
The artifact that compounds is boring. It is a folder called /prompts in a Git repo, or a shared Drive folder if your team is not technical yet. Inside are diagnostic prompts with version numbers. Each one reads a specific account export and returns findings in the same shape every time. You rerun them weekly. You compare this week’s findings to last week’s. That comparison is your optimization log.
This is what the “system optimizer” framing has been pointing at without finishing the sentence. The skill is not deeper prompting. The skill is designing diagnostic contracts your team can rerun without you in the room.
The Prompts That Compound Are the Ones That Read Your Account, Not the Ones That Write Your Copy
Generative prompts hit a ceiling fast. “Write me 10 RSA headlines for a roofing client” produces output that needs human judgment every single time. You cannot rerun it. You cannot compare this week to last week. The next account needs a new context dump.
Diagnostic prompts compound. “Audit this conversion actions export against four contamination patterns and return findings as JSON” produces output that is rerunnable, comparable week over week, and delegable to anyone on the team. The same prompt runs against account A on Monday and account B on Tuesday. The findings list has the same shape both times.
This is the distinction most “AI for PPC” listicles miss. They list creative-generation prompts and call it a system. A list of one-shot headline requests is not a system. A library of diagnostic contracts is.
Generative vs diagnostic: the leverage difference
Think of it in plain math. Prompt leverage is how many accounts the prompt runs against, times how many times per month, divided by how many hours you spend maintaining it.
A generative prompt runs once per use, against one piece of context, and needs new context every time. A diagnostic prompt runs against every account on your roster, every week, with the same skeleton. The ratio is not close.
Why the week-over-week comparison IS your optimization log
The optimization log is the running record of what changed in the account and why. Most teams keep it in a Google Doc nobody reads. When the diagnostic prompt output is structured, the log writes itself.
This week the signal audit flags three conversion actions with import lag over 72 hours. Last week it flagged one. You know exactly what to look at. You did not need a Looker dashboard. You did not need a Monday standup. The prompt output is the artifact.
What a Reusable PPC System Prompt Actually Looks Like: the Five-Part Contract
A reusable PPC system prompt has five required parts. Skip any one and you get the inconsistent output every operator complains about.
Role and scope: narrow enough to be reliable
The first lines name the role and the scope. “You are a paid search auditor reviewing a Google Ads conversion actions export for a single account. You do not write ad copy. You do not recommend bid changes. You only return findings about signal quality.”
Narrow scope is what makes the output predictable. A prompt that audits conversions AND suggests bid changes AND drafts new ad copy is three prompts pretending to be one. Split them.
Input and output schemas: why the same prompt drifts across accounts without them
The input schema names exactly which columns the export must contain. “Expect a CSV with columns: Conversion action name, Category, Include in Conversions, Count, Click-through conversions, Value, Value per conversion.” If the columns are missing, refuse. Do not guess.
The output schema names exactly what the findings list looks like. JSON with a fixed structure. Each finding has a pattern field (one of four allowed values), an action_name field, a severity field, and a recommended_action field. No prose. No preamble. Just the JSON.
This is what fixes the “I ran the same prompt twice and got different categories of findings” problem. The model is not being unreliable. The contract is missing.
Refusal cases and version tags
Refusal cases tell the model when to return “insufficient data” instead of inventing findings. If the export does not include offline import timestamps, the prompt cannot check for import lag. The correct output is a refusal flag for that pattern, not a guess.
The version tag goes at the top: # v1.3 - added refusal case for accounts without offline imports. When this week’s findings look different from last week’s, the first thing you check is whether the prompt version changed. If it did, part of the difference is noise. If it did not, the difference is signal.
Here is the skeleton, the kind you save as conversion_signal_qa_v1.3.md:
“`
Conversion Signal QA – v1.3

Role
You are a paid search auditor reviewing a Google Ads conversion actions export. Return findings only. Do not suggest bid changes or ad copy.
Input
CSV with columns: Conversion action name, Category, Include in Conversions, Count, Value, Source.
Patterns to detect
- Micro-conversions with “Include in Conversions” = Yes
- Source = Offline import with average import lag > 72h
- Value or Value per conversion = 0 or flat
- Same event tracked across web tag + offline + GA4
Output
JSON array. Each item: { pattern, action_name, severity, recommended_action }.
Refusal
If required columns missing, return: { “status”: “insufficient_data”, “missing”: […] } “`
That is the contract. Now it reruns.
The Starter Library: 7 Diagnostic Prompts Every Media Buyer Should Own in 2026
Seven prompts. Each one has a specific input, a specific output, and a specific decision it informs.
1. Conversion Signal QA: the four contamination patterns it must catch
Ingests the conversion actions export. Returns findings against four patterns that quietly retrain Smart Bidding on the wrong outcomes.
Per Google Ads documentation on Primary and Secondary conversion actions, Smart Bidding optimizes only against actions marked Primary. A single newsletter signup misclassified as Primary silently retrains the bidder until somebody catches it. The four patterns the prompt looks for:
- Micro-conversions (newsletter, scroll depth, video view) marked as Primary
- Offline imports arriving more than 72 hours after the click
- Actions with $0 values or flat values that flatten value-based bidding
- Duplicate counting across the web tag, an offline import, and a GA4 import for the same event
2. Search-Term Mining: intent buckets, not just negatives
Ingests the search terms report. Returns terms bucketed by intent (brand, competitor, high-intent commercial, informational, junk) and matched against the existing ad group structure. The output is not just a negatives list. It is a map of which intents are being served by the wrong ad group.
3. PMax Asset Group Review: reading the export the UI hides
Ingests the asset group performance export. Returns which assets are flagged Low, which are bottlenecking the group, and which asset groups have skewed performance toward a single signal type. Reads what the Performance Max reporting UI buries.
4. Creative Fatigue Scan
Ingests a rolling 14-day ad performance export. Returns ads where the 7-day CTR or CVR has drifted below the account baseline. Output is a refresh queue, not a leaderboard.
5. Negative Keyword Sweep
Ingests the search terms report plus the existing negative lists. Returns terms slipping through despite the negatives, and conflicts where a negative is blocking a high-intent term.
6. Geo and Dayparting Anomaly Check
Ingests the geographic and hour-of-day performance reports. Returns ZIPs, metros, or hours where CPA is well off the account baseline, and where impressions are concentrated outside the buyer’s business hours.
7. Bid Strategy Diagnostic
Ingests campaign-level performance and the current bid strategy settings. Returns campaigns where the bid strategy and the conversion volume do not match (Target CPA on a campaign with three conversions in 30 days is the classic case), and campaigns where strategy changes happened inside the standard relearn window.
Versioning, Storage, and Cadence: How a Non-Engineer Keeps the Folder Alive
The library only works if it does not rot. Three things keep it alive.
A /prompts repo a marketer can maintain
You do not need to be an engineer. You need a folder structure and a changelog. A working layout:
“` /prompts /conversion_signal_qa v1.3.md CHANGELOG.md sample_input.csv sample_output.json /search_term_mining v2.1.md … “`
Use GitHub if your team is comfortable. Use a shared Google Drive folder if not. The format matters less than the discipline of one file per prompt version and a one-sentence changelog entry every time something changes.
Version numbers follow a simple rule. Bump the second number when the output schema changes. Bump the third number when you tighten a refusal case or fix wording. The changelog entry is one line: “v1.3 added refusal case for accounts without offline imports.”
Weekly vs per-session vs onboarding-only
Not every prompt belongs in every workflow. The cadence assignment is what turns a library into an operating rhythm.
| Prompt | Cadence | When |
|---|---|---|
| Conversion Signal QA | Weekly | Monday morning |
| Search-Term Mining | Weekly | Monday morning |
| Creative Fatigue Scan | Weekly | Monday morning |
| Negative Keyword Sweep | Bi-weekly | Alternate Mondays |
| Bid Strategy Diagnostic | Per-session | Before any optimization push |
| Geo and Dayparting Anomaly | Monthly | First Monday of the month |
| PMax Asset Group Review | Onboarding + quarterly | New account, then every 90 days |
The weekly prompts run against every account on the roster. The per-session prompts run when you sit down to make changes. The onboarding prompts run during account audits.
Chat UI vs Claude Code or Cursor
The chat window works for one account at a time. You paste the CSV, you get the findings, you copy them into your log. Fine for a roster of three.
Claude Code and Cursor let you point the prompt at a folder of files and run it across all of them in one pass. The learning curve is real but smaller than people think. If you can edit a Google Sheet formula, you can run a prompt against 15 CSVs from a single command. The point of graduating is not engineering credibility. It is that Monday morning takes 20 minutes instead of three hours.
What This Changes About Hiring and What “Senior PPC” Means in 2026
If the library is the skill set, the senior PPC hire of 2026 is not the one with the deepest UI muscle memory. It is the one who can design diagnostic contracts the rest of the team reruns.
Agencies that own a versioned prompt library can onboard a new account against a known checklist. The institutional knowledge lives in the repo, not in one buyer’s head. A new hire reads the changelog and is productive faster. In-house teams stop being one-person dependencies because the senior buyer’s judgment is encoded in the contracts.
The “system optimizer” framing the trade press keeps reaching for is real. It just was not pointing at the right artifact. It is not a Claude Skill. It is not a new platform feature. It is the folder.
Frequently Asked Questions
How do I build a reusable prompt library I can rerun across multiple Google Ads accounts?
Start with one diagnostic prompt, write it against the five-part contract (role, input schema, output schema, refusal cases, version tag), and save it as v1.0 in a shared folder. Run it against three accounts the first week to check that the output is consistent. Add a changelog entry every time you change the prompt. The library grows one prompt at a time, not all seven at once.
What’s the difference between a generative prompt and a diagnostic prompt?
A generative prompt writes something new: a headline, a description, an email. A diagnostic prompt reads existing data and returns structured findings. Generative prompts need fresh human judgment every use, which caps their leverage. Diagnostic prompts run against every account on the roster every week and produce comparable output, which is what makes them compound.
How do I get structured output from Claude or ChatGPT reliably?
Define the output schema explicitly in the system prompt, request JSON as the output format, and include a refusal case for incomplete input. Both Claude and ChatGPT support structured output modes that enforce a valid schema. See Anthropic’s documentation on structured outputs and OpenAI’s Structured Outputs guide. Include an example of the exact output shape inside the prompt itself.
Should I use the chat window or Claude Code for this work?
Use the chat window if the roster is under five accounts. Graduate to Claude Code or Cursor when running the same prompt against more than five exports becomes the bottleneck. The chat window is fine for testing and ad-hoc runs. Claude Code lets you point the prompt at a folder of CSVs and process all of them in one command, which is what makes weekly cadence sustainable at agency scale.
Which prompts should run weekly vs only at onboarding?
Weekly: Conversion Signal QA, Search-Term Mining, Creative Fatigue. Onboarding plus quarterly: the full PMax asset review and a deep geo or dayparting audit. Per-session: the Bid Strategy Diagnostic, before any optimization push. The cadence matters as much as the prompt itself. Rerunning everything weekly creates noise. Rerunning the wrong things monthly misses signal drift.
How do I stop the model from hallucinating issues that aren’t in the data?
Write explicit refusal cases into the prompt: if a required column is missing, return an “insufficient data” flag instead of guessing. Constrain the output schema to a fixed list of allowed values (the four contamination patterns, for example) so the model cannot invent new categories. Validate the JSON output programmatically before acting on it. Hallucination drops sharply when the contract is narrow enough that there is nowhere to wander.
The prompt library is one half of the operator stack. The other half is the web infrastructure the prompts read against: the landing pages, the conversion tracking, the data layer that exports cleanly enough for a diagnostic prompt to make sense of it. If the audit prompt comes back with a wall of red because the tracking setup is messy, the fix is upstream of the prompt. That is the conversation worth having. Book a free consultation with Elevarus and we will look at the web assets feeding your campaigns.