Audit checks
The audit is 45deterministic checks over what we sync from your ad accounts. No model decides what counts as a problem: each check is a stated condition with stated thresholds, and each figure comes with how it was estimated. A check whose data is missing is reported as not run, and never as passed. Below, CPA_t is your target cost per conversion, or the account’s own 30-day average until you set one.
Google Ads (26)
| Check | Fires when | Severity | Autopilot |
|---|---|---|---|
| Ad group with nothing to show G-AD-01 | A live Search ad group has no enabled ad, or no responsive search ad. | high | No |
| Weak responsive search ad G-AD-02 | A live responsive search ad rated Poor or Average. | low | No |
| Disapproved or limited ad or asset G-AD-03 | A live ad or asset is disapproved, or approved with limits. | high | No |
| Campaign missing assets G-AD-04 | A live Search campaign has no sitelinks, callouts or images, on itself or on the account. | low | No |
| Out-of-date promotion in an ad G-AD-05 | A live ad or asset names a date gone by, a past year, or a seasonal event well over (7 days after it, until 45 days before it comes round again). | medium | No |
| Spend or conversions out of their usual range G-ANM-01 | The last complete day's spend, or conversions 2 days back, falls outside the mean of up to 26 same weekdays by more than 3.0 standard deviations. | high | No |
| Campaign CPA above target G-BID-01 | Campaign CPA above 1.3x CPA_t with at least 10 conversions in 30 days. | high | No |
| Broad match without Smart Bidding G-BID-02 | A live broad-match keyword in a campaign on a manual or click-based strategy. | medium | No |
| Converting keyword loses auctions to rank G-BID-03 | A keyword with at least 2 conversions loses more than 50% of impression share to rank. | medium | No |
| Profitable campaign held back by its budget G-BUD-01 | Search lost impression share (budget) above 20% with at least 10 conversions in 14 days and CPA at or under CPA_t. | high | No |
| Month heading off plan G-BUD-02 | The month is projected above 110% of plan, or under 85% of a stated plan. | high | No |
| Campaign spent well past its daily budget G-BUD-03 | A day's spend above 1.8x the daily budget (Google allows up to 2x on a single day). | medium | No |
| Search term wasting money G-KW-01 | A search term spent more than 1.5x CPA_t with no conversions and at least 20 clicks in 30 days. | high | Eligible |
| Word wasting money across search terms G-KW-02 | A word in several search terms spent more than 2.0x CPA_t, or a two-word phrase more than 1.5x CPA_t, with no conversions in 30 days. | medium | No |
| Converting search term is not a keyword G-KW-03 | A search term with at least 2 conversions and a CPA below its ad group's is not yet a keyword. | medium | No |
| Keyword wasting money G-KW-04 | A keyword spent more than 2.0x CPA_t with at least 30 clicks and no conversions in 30 days. | high | Eligible |
| Low Quality Score on a busy keyword G-KW-05 | Quality Score at or below 3 with at least 50 clicks in 30 days. | medium | No |
| Keyword blocked by a negative G-KW-06 | A live keyword matches a negative on its ad group, its campaign or a list attached to the campaign. | medium | No |
| Duplicate keywords G-KW-07 | The same keyword and match type is live in more than one ad group. | low | No |
| Search campaign with no negatives G-KW-08 | A live Search campaign with spend has no negative keywords of any kind. | medium | No |
| Brand searches in Performance Max G-PMX-01 | A Performance Max search category names your brand. | medium | No |
| Device or location far above target G-SEG-01 | A device or location with CPA above 1.5x the campaign's and spend above 2.0x CPA_t over 30 days. | medium | No |
| Primary conversion went silent G-TRK-01 | A primary conversion action recorded nothing for 7 days while the account spent more than 3.0x CPA_t. | critical | No |
| No primary conversion action G-TRK-02 | The account has no enabled conversion action, or all of them are secondary. | high | No |
| Google auto-applies its recommendations G-TRK-03 | A recommendation subscription is on, so Google changes the account without a person. | medium | No |
| Final URL is broken G-URL-01 | A live ad's final URL answers 404, 410 or 5xx, runs through more than 2 redirects, or is not HTTPS. Other 4xx answers usually mean a site refused our fetcher, so they do not count. | high | Eligible |
Meta (15)
| Check | Fires when | Severity | Autopilot |
|---|---|---|---|
| Advantage+ creative enhancements are on M-ADV-01 | A live ad has Advantage+ creative enhancements enabled (touch-ups, text changes). | low | No |
| Attribution looks inflated M-ATT-01 | 7-day-click conversions are more than 3.0x the 1-day-click count, or view-through makes up more than 30% of conversions. | medium | No |
| Ad sets in one campaign target the same people M-AUD-01 | Live ad sets in a campaign share a custom audience, or the same targeting, and exclude nothing. | low | No |
| Budget could grow on stable ROAS M-BUD-01 | ROAS over 7 days above 1.1x the target, and on each of the last 3 days. | medium | No |
| ROAS under target M-BUD-02 | ROAS over both 3 and 7 days under the target. | high | Eligible |
| CPM and CPC doubled M-CPM-01 | A campaign's CPM and CPC on the last complete day are both at least 2.0x its previous 7 days. | medium | No |
| Ad set with a thin mix of formats M-CRE-01 | A live ad set with spend has no 9:16 creative, no video, or fewer than 3 formats. | low | No |
| Prospecting audience is tiring of the ads M-FAT-01 | Frequency above 3.0 over 7 days on a prospecting ad set, and CTR down at least 20% against its first 7 days. | medium | No |
| Most spend is stuck in Learning Limited M-LRN-01 | More than 50% of the last 7 days' spend went to ad sets that are Learning Limited. | medium | No |
| Audience Network eats budget at low return M-PLC-01 | Audience Network takes more than 10% of a campaign's spend at less than 50% of its average ROAS. | medium | No |
| Disapproved ad M-POL-01 | A live ad is disapproved or has policy issues. | high | No |
| Pixel stopped receiving events M-TRK-01 | A pixel or dataset has received no event for more than 48 hours while the account spent in the last 7 days. | critical | No |
| Conversions API missing or weak match quality M-TRK-02 | A firing pixel has no Conversions API events, or Event Match Quality under 6.0. | high | No |
| Ad wasting money M-WST-01 | An ad in the top 50% of spend spent at least 2.0x CPA_t with no results in 14 days. | high | Eligible |
| Ad set wasting money M-WST-02 | An ad set spent more than 2.0x CPA_t with no results in 7 days. | high | No |
Across platforms (4)
| Check | Fires when | Severity | Autopilot |
|---|---|---|---|
| Platforms return very different money X-ALC-01 | Two platforms' CPA differs by more than 30% over 30 days, with at least 30 conversions on each. | medium | No |
| Slow landing page taking real spend X-LP-01 | A top landing page by spend has Core Web Vitals rated poor by real-user data (CrUX, through PageSpeed Insights). | medium | No |
| Workspace heading off its monthly plan X-PAC-01 | The workspace's month is projected above 110% or under 85% of its stated monthly_budget. | high | No |
| Platform conversions disagree with GA4 X-TRK-01 | A platform's conversions and GA4's differ by more than 30% over 30 days. | high | No |
How the score is worked out
score = 100 - the sum of finding penalties, floored at 0. A penalty is its severity's weight (critical 25, high 10, medium 4, low 1) x (0.5 + 0.5 x the share of the account's 30-day spend it touches); one check costs at most twice its weight. A workspace's score is its accounts' scores weighted by 30-day spend, less workspace-level findings. Skipped checks do not count for or against it.
How the money is worked out
Waste adds up what the findings call waste, per campaign, capped at that campaign's 30-day spend so the same money is not counted twice; opportunity is summed the same way, uncapped. Each finding's method says how its figure was estimated. Amounts are per 30 days, in the workspace currency at the latest ECB rate.
What happens to a finding
- A finding that repeats updates its recommendation rather than adding another.
- A rejected recommendation stays silent for 30 days, unless its severity grows.
- You can snooze one for 7, 30 or 90 days.
- One you fix by hand closes itself: we see the change in the platform’s history or in the object itself.
- Opposite moves on one object cannot both stand: the heavier wins, then the newer.