Flight log / Transmission 007
The PPC audit: 40 checks for every paid search account
Paid search accounts rarely crash in one dramatic moment. They leak, a few dollars at a time, across 8 areas and 40 checks that most teams only look at when the quarter is already lost.
> A PPC audit checks whether your paid search account measures the right conversions, spends on relevant searches, bids with good signals and lands clicks on matching pages. Work through 40 checks in order: tracking, structure, keywords and search terms, bidding, ads, landing pages, budget, then settings. Fix tracking first, because every other number depends on it.
This is the method, not a template for one platform. The checks apply to Google Ads and Microsoft Advertising alike. If you want the same list mapped to exact screens in the Google interface, use the Google Ads audit checklist. If you want the bigger picture of how a B2B search program should run in the first place, start with the B2B PPC playbook.
// 01 · the briefingWhat is a PPC audit, and when should you run one?
A PPC audit is a structured review that answers four questions. Is the conversion data true? Is spend going to searches that can turn into customers? Does bidding have the signals it needs? Do clicks land somewhere that continues the conversation the ad started?
Run the full version quarterly. Run it immediately when an account changes hands, tracking changes, or cost per lead moves and nobody can explain why.
Order matters. The sections below run from the foundation up. A brilliant ad on top of broken tracking just helps the bidding algorithm learn the wrong lesson faster.
// 02 · telemetryIs your conversion tracking telling the truth? (checks 1 to 6)
| # | Check | Red flag |
|---|---|---|
| 1 | Primary conversion actions are real business outcomes | Page views, scroll depth or "contact page visit" set as primary |
| 2 | Nothing is counted twice | The same form fill tracked by a platform tag and an analytics import, both primary |
| 3 | Lead actions count once per click | "Every" counting on lead forms, so one person refreshing a thank-you page reads as three leads |
| 4 | Enhanced conversions are set up | Conversion volume drops whenever browsers tighten cookie rules |
| 5 | Qualified outcomes flow back from the CRM | The account only knows about form fills, never about which ones became pipeline |
| 6 | Click IDs survive the journey | Auto-tagging off, or redirects and form tools that strip the click ID |
Google's definition is the one to anchor on: a primary action is used for bidding and the "Conversions" column, while a secondary action is reported only in "All conversions" for observation. If a soft action is primary, Smart Bidding is optimizing for it. That's a targeting problem wearing a reporting costume.
For B2B, check 5 is the one that pays for the whole audit. Google's enhanced conversions for leads matches hashed first-party data from your lead forms with offline conversions you import, so the account learns which leads turned into sales.
If the algorithm can't tell a demo request from a student downloading your ebook, it will happily buy you more students. They're cheaper.
Does the account structure match how people search? (checks 7 to 11)
| # | Check | Red flag |
|---|---|---|
| 7 | Campaigns split by intent and budget need: brand, competitor, problem, category | Brand and non-brand sharing one budget, so cheap brand clicks hide expensive non-brand ones |
| 8 | Each ad group holds one intent and points to one page | Ad groups with 60 loosely related keywords and one generic ad |
| 9 | No keyword appears in multiple ad groups or campaigns | The same term competing with itself, splitting data and making tests unreadable |
| 10 | Automated campaign types have brand controls | Performance Max or broad match quietly picking up your brand searches |
| 11 | Naming is consistent and readable | Campaign names that only the person who built them understands |
For check 10, Google offers brand exclusions in both Search and Performance Max campaigns, and brand inclusions for Search. They exist so your brand campaign gets the brand traffic, and your prospecting budget gets measured on prospecting.
// 04 · signal vs. noiseIs spend going to searches that can convert? (checks 12 to 17)
| # | Check | Red flag |
|---|---|---|
| 12 | Share of spend on irrelevant search terms over the last 90 days | Job seekers, students, free-tool hunters and definition queries in the top 50 terms by cost |
| 13 | Shared negative keyword lists exist and are applied | Negatives added one campaign at a time, inconsistently |
| 14 | No negatives block active keywords | A negative that stops your own keyword from serving |
| 15 | Match types fit the bidding and data volume | Broad match on manual bidding with no conversion signal to steer it |
| 16 | Zero-impression and zero-conversion keywords reviewed | Hundreds of keywords that haven't served in months, cluttering every decision |
| 17 | Hidden search term share is known | Nobody knows what share of clicks sits in the unreported "other" bucket |
This section is where most accounts give money back fastest. Two deep dives cover it: how to build negative keyword lists that hold up, and how to read the search term report without drowning in it.
On check 17: Google only reports search terms that meet its privacy thresholds, meaning enough search volume across all of Google. The rest is aggregated. You can size the gap by comparing the report's totals with campaign totals.
// 05 · the auctionIs bidding set up to learn the right thing? (checks 18 to 22)
| # | Check | Red flag |
|---|---|---|
| 18 | Bid strategy fits the conversion volume each campaign actually gets | Target CPA on a campaign with a handful of conversions a month |
| 19 | Targets reflect reality | A target CPA far below anything the campaign has achieved, throttling delivery |
| 20 | Bidding optimizes toward the conversion that matters | Campaign goal set to all leads when only qualified leads pay the bills |
| 21 | Changes are spaced out | Change history shows targets edited every few days |
| 22 | Tracking outages are excluded | A broken tag week left in the data that bidding still learns from |
Check 22 has a dedicated tool: data exclusions tell Smart Bidding to ignore conversion data from a period when tracking was broken. The pattern in accounts with a past outage: nobody ever opened it, and Smart Bidding is still learning from the week the tag was down.
// 06 · payloadDo the ads earn the click they're paying for? (checks 23 to 27)
| # | Check | Red flag |
|---|---|---|
| 23 | At least 2 responsive search ads per ad group, with Good or Excellent ad strength | One ad per ad group, rated Poor |
| 24 | Headlines carry the ad group's theme and a concrete offer | 15 headlines that all say some version of "industry-leading platform" |
| 25 | Sitelinks, callouts and structured snippets are live and current | Sitelinks pointing to retired pages or last year's event |
| 26 | The ad's promise matches the landing page | Ad promises pricing, page hides it behind a demo form |
| 27 | Nothing is disapproved or limited by policy | Ads marked "Eligible (limited)" that nobody has opened |
Google allows up to 15 headlines and 4 descriptions per responsive search ad and recommends at least 2 RSAs with Good or Excellent ad strength in each ad group. Ad Strength grades the ingredients, not the meal. A Poor rating is a fail; an Excellent one proves nothing about pipeline.
// 07 · landingDo clicks land on a page that matches the search? (checks 28 to 32)
| # | Check | Red flag |
|---|---|---|
| 28 | Each ad group sends traffic to the most relevant page you have | Most non-brand spend lands on the homepage |
| 29 | Landing page experience on top-spend keywords is not below average | Your highest-cost keywords rated "Below average" for landing page experience |
| 30 | The page headline echoes the search and the ad | Someone searched a specific problem and the page opens with a brand slogan |
| 31 | The offer fits the intent stage | "Book a demo" as the only option on research-stage queries |
| 32 | Mobile visitors can act without friction | A 12-field form on a phone, or a mobile conversion rate far below desktop |
Quality Score is a 1 to 10 keyword-level diagnostic built from expected CTR, ad relevance and landing page experience. Google is clear that it is not itself an input to the auction. Use the landing page experience component as a pointer to where the post-click problem sits, not as a goal.
The pattern that shows up in most B2B accounts: the keyword list is specific, the ads are reasonably specific, and then every click lands on two or three generic pages. The searcher asked a precise question and got a brochure. Fixing that by hand means building dedicated pages for your highest-spend intents and sending each ad group to the closest match.
Most audits spend their hours before the click. The searcher makes the actual decision after it.
Is the budget going where it performs? (checks 33 to 36)
| # | Check | Red flag |
|---|---|---|
| 33 | Best performers aren't limited by budget | Your lowest cost-per-qualified-lead campaign stops spending by noon |
| 34 | Brand vs. non-brand split is visible and intentional | Blended CPA looks healthy only because brand clicks carry it |
| 35 | Lost impression share is diagnosed: budget or rank | Raising budget on a campaign that is losing on rank |
| 36 | Spend with zero conversions over 90 days is quantified | Keywords and terms with meaningful spend and no conversions, untouched |
Budget leaks work like a game of Pac-Man played in reverse. Nobody notices one dot disappearing. By the end of the quarter, the board is empty and the pipeline target isn't.
// 09 · pre-flight checklistAre the campaign settings quietly expanding your reach? (checks 37 to 40)
| # | Check | Red flag |
|---|---|---|
| 37 | Location option is a deliberate choice | "Presence or interest" left on by default when you only sell in your target market |
| 38 | Network opt-ins are reviewed and segmented | Search partners or Display Network on in Search campaigns, never checked separately |
| 39 | Auto-applied recommendations are known | Broad match keywords or new targets added automatically without anyone deciding |
| 40 | AI expansion features have guardrails | AI Max or final URL expansion on with no URL exclusions or brand settings |
Google's default location option, "Presence or interest", reaches people in your locations and people who have shown interest in them. "Presence" limits ads to people in or regularly in those locations. Auto-apply can add broad match keywords, add keywords, remove redundant keywords and change bidding strategies, among other types. And for AI Max for Search, Google confirms negative keywords are still respected with it switched on. Its brand controls and URL exclusions only protect you if someone actually set them.
// 10 · go / no-goHow do you turn 40 checks into a fix list?
Score each check pass, fail or not applicable. Sort the fails by how much spend they touch and how many other numbers they corrupt.
- Fix measurement fails first (checks 1 to 6). They distort every other decision, including the rest of this audit.
- Then stop the obvious waste (checks 12 to 17 and 36). Negatives and paused junk keywords pay back in days.
- Then fix the post-click gaps on top-spend ad groups (checks 26 and 28 to 32). Start with the ad groups that spend the most and land on the least relevant page.
- Then restructure and rebid (checks 7 to 11 and 18 to 22). These need clean data from steps 1 and 2 to work.
Say a 20-person SaaS team finds 11 fails. Hypothetically, two tracking fails, four search term fails, three landing page fails and two settings fails. The right first week is the two tracking fixes plus a shared negative list. Not a restructure.
Where this breaks
- Low-volume accounts. With a few conversions a month, many checks can't be judged statistically. Use longer date ranges.
- Hidden search terms. Privacy thresholds mean part of your spend can't be audited at the query level at all.
- Automated campaign types. Performance Max and AI Max move some decisions to Google's systems. You audit the guardrails and outcomes, not every match.
- Attribution. An audit can confirm the tracking is configured correctly. It can't prove that a channel caused the revenue.
An audit with 40 green checks and a flat pipeline is still a failed audit. The checklist serves the number, not the other way round.
Something's warming up on the launch pad.
We're building something for people who read posts like this. Early access opens in waves.
Early access, by invitation.
FAQ
What is a PPC audit?
A structured review of a paid search account that checks whether conversion data is accurate, spend is going to relevant searches, bidding has the right signals, and clicks land on pages that match what people searched for.
How often should you run a PPC audit?
Run the full 40 checks once a quarter and whenever the account changes hands, tracking changes, or performance shifts without an obvious cause. Review search terms and budget pacing weekly between audits.
What should you check first in a PPC audit?
Conversion tracking. If primary conversion actions count the wrong thing or count it twice, every bidding and budget decision built on that data is wrong too.
How long does a PPC audit take?
For a typical single-market account, plan on a working day for the checks and another for writing up fixes. Large accounts with many campaigns or markets take longer, mostly in the search term and landing page sections.
Is a PPC audit the same as a Google Ads audit?
Mostly. A PPC audit is the platform-neutral method and applies to Google Ads and Microsoft Advertising alike. A Google Ads audit checklist maps the same checks to specific screens in the Google Ads interface.
Receipts
- Google Ads Help: About primary and secondary conversion actions
- Google Ads Help: About enhanced conversions
- Google Ads Help: Improving the search terms report while maintaining user privacy
- Google Ads Help: About responsive search ads
- Google Ads Help: About Quality Score
- Google Ads Help: About auto-apply recommendations
- Google Ads Help: Frequently asked questions about AI Max for Search campaigns