AI system for managing Google Ads
55Digital AI runs inside Claude Code as a Google Ads co-pilot for the recurring work that quietly eats your week. Tell it to run negative keyword exclusions every Tuesday and Friday, and it reads the client brief, pulls real account data, and excludes them automatically — no manual digging. What it frees up is time for strategy calls, new business, or going home on time.
$ /55-keyword-audit northgate-plumbing --days 4 reading clients/northgate-plumbing/brief.md ....... ok pulling search terms, last 4 days ............... 312 judging cached 268 · new 44 ..................... ok ────────────────────────────────────────────── NEGATE exact "diy drain snake rental" 6 clicks NEGATE exact "plumber salary uk" 4 clicks NEGATE broad "free quote template" 9 clicks KEEP "emergency plumber n7" 22 clicks KEEP "boiler repair northgate" 8 clicks ────────────────────────────────────────────── 3 to add → shared list "Irrelevant — auto" wasted spend removed from rotation, last 4d: 19 clicks ▌ DRY RUN — nothing was written. ▌ Review the list above, then re-run with --confirm.
$ /55-keyword-audit northgate-plumbing --days 4 --confirm plan 3 negatives, unchanged since check ...... ok writing shared list "Irrelevant — auto" ......... ok ────────────────────────────────────────────── + exact "diy drain snake rental" + exact "plumber salary uk" + broad "free quote template" ────────────────────────────────────────────── ✓ 3 negatives added · 0 failed logged change-log · run a4f21c · 09:14 local who / what / where / when / why — queryable dashboard Changes tab updated ▌ Applied. Nothing else on the account was modified.
See it in action
Same account, same commands, no cuts — a check running, the proposal it produces, and the confirm step that writes it.
How it works
The whole product is one loop, and it always runs in the same order. Nothing skips ahead — the step that decides and the step that acts are never the same step. What changes is who starts it: you, in chat, or a schedule you set once.
Each client gets a plain-text brief: what they sell, what they never want to pay for, which lists are off-limits. That file is the rulebook the AI reasons against.
Type a request in chat, or a short slash command like /55-keyword-audit — or run /55-setup-keyword-audit-automation once to put it on a schedule and stop asking altogether. Same job, same brief, different trigger.
Live search-term data through the official API, judged against that client's brief, not a generic rule set — /55-keyword-audit reads the account and builds the exclusion list its brief calls for.
Run /55-setup-keyword-audit-automation once to choose a cadence — Tuesday and Friday, every day, or once a week, it's yours to set. From then on it reads the account and excludes on its own, no prompt needed, and every write still lands in the change log.
Run /55-keyword-audit yourself any time and it suggests the exclusions first — nothing touches the account until you accept the list. Once you accept, it excludes them on the account for you.
Against the alternative
None of this work is impossible by hand. It's just slow, easy to postpone, and the first thing to slip when you're managing a dozen accounts at once. Times below are per account, typical case.
| Recurring task | By hand | With 55Digital AI |
|---|---|---|
| Negative keyword audit | By handOpen the search terms report, scan hundreds of rows, judge each one, copy the bad ones into a shared list — about 45 minutes. | With 55Digital AI/55-keyword-audit reads the client's brief and returns a reasoned add-list to approve. Result: 3 minutes instead of 45. |
| PMax search terms | By handDig through limited PMax reporting per campaign, then work out which exclusion list each term belongs on — about 40 minutes. | With 55Digital AI/55-pmax-audit (or the branded/generic split version) does the same judgment automatically. Result: 4 minutes instead of 40. |
| Keyword expansion | By handAd group by ad group in Keyword Planner, tabbing between volume lookups and the editor — about 35 minutes. | With 55Digital AI/55-keyword-expansion proposes themed candidates per ad group with real volume already attached. Result: 5 minutes instead of 35. |
| Feed title optimization | By handCompare search terms against product titles by eye, spot what's missing, rewrite titles one by one — about 60 minutes for a mid-size feed. | With 55Digital AI/55-feed-title-optimizer mines real search terms against your titles and proposes rewrites you push straight to the feed. Result: 6 minutes instead of 60. |
| Client reporting | By handExport to sheets, rebuild the same charts monthly, format it for the client — 50 minutes of manual data digging. | With 55Digital AI/55-ga4-dashboard builds the report directly, in your branding. Result: 2 minutes instead of 50 minutes of manual data digging. |
| Full account audit | By handWork through structure, tracking, bidding, keywords, PMax and GA4 section by section — half a day or more. | With 55Digital AI/55-full-audit runs all 20 sections in one pass and hands back a report. Result: 15 minutes instead of half a day. |
| Daily account pulse | By handOpen the account, check tracking, pacing and cost trends one by one — about 10 minutes, every morning. | With 55Digital AI/55-daily-check checks all three at once. Result: under a minute instead of 10. |
| Scheduling it to run itself | By handHand-write a cron job or launchd plist, test it, hope it doesn't silently fail — about 30 minutes, per client. | With 55Digital AI/55-setup-keyword-audit-automation walks you through a cadence and installs it for you. Result: 5 minutes instead of 30 — once, not every week. |
Workflows
Each of these is a short command you type in the chat. Most only ever read your account. The ones that can change something are marked — and every one of those shows you its full proposal first.
A quick morning check on one account — is tracking still working, is spend on pace for the month, did cost or CPA jump recently. Example: catches a CPA spike before a client has to ask why.
Read-onlyLooks at what people actually typed before your ad showed, and flags the ones that don't belong. Example: you sell cars, but someone searched for car repair and clicked your ad anyway — you don't offer that, so this proposes it as a negative.
Proposes, you applyThe PMax version of keyword audit — scans every active PMax campaign the same way, without splitting branded from generic. Example: same car dealer — a PMax campaign picks up "car repair near me" too, and this flags it the same as Search would.
Proposes, you applyThe more targeted version — for when you can't see search terms as easily and want branded and non-branded PMax campaigns checked separately, each against its own rules. Example: a branded campaign picking up a search with no mention of the brand gets flagged.
Proposes, you applyGoes through each ad group and suggests new keywords that actually fit what's already there, with real search volume attached instead of a guess. Example: an "emergency plumber" ad group gets offered "24 hour plumber near me."
Proposes, you applyKeyword Planner without leaving the chat — search volume, competition and cost, checked against what the account already targets so you don't propose a duplicate.
Read-onlySplits the product feed into four tiers by how well each product actually performs, and proposes a separate campaign per tier so your best sellers aren't sharing a budget with your worst. Example: sorts one feed into Platinum, Gold, Silver and Bronze campaigns automatically.
Proposes, you applyOne place to see if the product feed is healthy: what's approved, what's disapproved and why, and how much free traffic the listings are really getting.
Read-onlyBuilds a client-facing GA4 dashboard — all 43 predefined reports, visualized, not a spreadsheet. It checks with you first on which event counts as a real conversion before building it.
Read-onlyA deep look at one campaign's GA4 data — landing pages, devices, location, new versus returning visitors — lined up against what that campaign spent and converted in Ads.
Read-onlyFinds the words shoppers actually search for that are missing from your product titles, then proposes rewritten titles you can push straight to the feed. Example: shoppers search "waterproof hiking boots," your title just says "Trail Boot" — this adds what's missing.
Proposes, you applyA full top-to-bottom account review in one pass — structure, tracking, bidding, keywords, PMax, Display, YouTube, GA4. Comes back as a report, with a PDF version offered afterward.
Read-onlyWalks you through putting /55-keyword-audit on a schedule for one client — pick the cadence, it builds and tests the job, then installs it. Run once per client, not every week.
Same setup flow, for the plain PMax irrelevant-keyword audit — pick a cadence and it's scheduled and running on its own from then on.
SetupSame again, for the branded/generic PMax split audit — one guided setup and it runs itself afterward.
SetupAdds a new client the same way the setup wizard does, just as a chat conversation instead of answering terminal prompts.
SetupWho it's for
It fits best where the same account work comes round every week and there's nobody spare to hand it to.
The primary fit. The same commands run per client slug across the whole roster, one dashboard covers every account, and when a client asks what moved on their account last month there's a per-account log to answer from.
Nobody to delegate the weekly grind to. The recurring audits stop competing with billable hours, and what you send a client carries your own branding rather than looking like tool output.
One account, but feed-shaped work: PMax product bucketing, Merchant Center health, title optimisation, and seasonality checks that tell you whether a soft month is normal for that product line.
No product feed, so the recurring jobs are search-term hygiene and GA4 lead funnels — negative keyword audits and conversion pulse-checks rather than shopping reports.
The dashboard
The dashboard is a single self-contained HTML file. Open it in a browser and every account you manage is there side by side — then click into any one of them for its report history, the brief it runs on, and a Changes tab listing every write the tool has ever made to that account. Rebuild it whenever you want a fresh view; it takes about a second.
Live preview, real dashboard code — populated with made-up example clients, not anyone's actual account. Click a client on the left, then the Reports / Brief / Changes tabs.
One file on your disk. It opens offline, there's nothing to deploy and nothing left running in the background when you close it.
Start at every client side by side, then drill into a single account's reports, its brief, and its full change history without leaving the page.
Regenerate it any time you want current numbers. No sync to wait on and no stale cache to think about.
What it actually saves
Four things that happen every week, timed by hand against the same job run through the toolkit.
| Task | By hand | With toolkit |
|---|---|---|
| Checking 12 accounts — anything off? | 45–60 min | 2 min |
| Finding the cause of a cost jump | 15–25 min | 15 sec |
| Reacting to a tracking gap | 10–15 min | 30 sec |
| Task | By hand | With toolkit |
|---|---|---|
| Pulling GA4 and Ads data together | 30–45 min | 10 sec |
| Search-term audit | 30–45 min | 3 min |
| Excluding the bad ones | 15–20 min | 1 min |
| Branded PDF for the client | 45–90 min | 30 sec |
| Task | By hand | With toolkit |
|---|---|---|
| Writing the client brief | 30–45 min | 8 min |
| Connecting Ads, GA4, Merchant Center | 20–30 min | 5 min |
| Setting up the negative list | 10–15 min | 2 min |
| Scheduling the recurring checks | 20–30 min | 5 min |
| Task | By hand | With toolkit |
|---|---|---|
| Checking this week's results | 10 min | 10 sec |
| Checking what changed, and why | 10 min | 10 sec |
| Comparing to last month | 15 min | 20 sec |
| Writing the reply | 15 min | 1 min |
The safety model
Handing a client's live ad spend to something that acts on its own is a bad trade, and every experienced account manager knows it. So this tool was designed backwards from that fear: it can propose anything, and it can execute nothing on its own.
You don't opt into safety with a flag. Run any write-capable command bare and you get a dry run: the full list, none of it applied. The dangerous thing is the one you have to type on purpose.
A read-only check step produces the proposal. A separate apply step is the only code path that can write, and it only ever applies the list you already read. No single command both decides and acts.
Saying "yes, do this across all ad groups" doesn't authorise whatever the tool produces. The specific list is always shown and approved on its own terms before a single write goes out.
When a client asks what changed on their account last month, you answer from a log, not from memory. Each entry carries the account, the object, the timestamp and the reasoning that produced it.
Lists you mark as off-limits in a client's brief are never written to. New campaigns it builds are created paused — you review and enable them yourself in the Ads UI.
It runs locally against your own Google Ads API access. Client data and reports stay on your disk unless you choose to send something out.
| 09:14 | northgate-plumbing | +3 negatives | shared list · Irrelevant — auto | no service intent, 4-day window |
| 09:02 | hartwell-motors | +1 PMax exclusion | branded campaign | generic term, no brand signal |
| Yest. | coastal-interiors | +12 keywords | 4 ad groups | approved from expansion check |
| Yest. | hartwell-motors | 1 campaign created | PMax · Gold tier · paused | bucketing plan, confirmed |
Requirements
Short list, and worth checking now rather than halfway through setup.
The toolkit runs inside Anthropic's Claude Code, so you need it installed and a Claude subscription active. A Claude Pro plan is enough — no Team, Enterprise or separate API credits required. That subscription is separate from the toolkit itself.
The commands are plain Python scripts. The setup step installs the packages they depend on — you don't have to resolve anything by hand.
A Google Ads account with API access — a developer token plus OAuth credentials. Setup walks you through the OAuth flow and confirms it worked by pulling live data from your own account.
It's a local install on your own computer, not a hosted service — available for both Mac and Windows.
Merchant Center access is only needed for the feed-specific commands — bucketing, feed health and title optimisation. Everything else works without one.
Questions
No. Every write-capable command previews by default and needs an explicit --confirm to touch a live account — there's no flag that writes silently instead. The one way it happens unattended is if you deliberately schedule the apply step yourself, which isn't the default and isn't where we'd suggest starting.
It stays on your machine. The toolkit runs locally against your own Google Ads API credentials, and reports, logs and the dashboard are written to your own disk. There's no account to create with us and no copy of your client data sent anywhere.
No. You type plain-English requests or short slash commands like /55-keyword-audit in a chat panel. The scripts underneath are ordinary Python files if you ever want to read one, but nothing about normal use requires that.
It helps, but it's not a hard requirement. The toolkit does the digging and hands you a change list in plain language with a reason attached to every line — knowing what a negative keyword or a PMax exclusion actually does makes it faster to review that list, but you don't need to know how to build the query yourself.
No — it replaces the recurring digging, not the judgment. Someone still has to write the client brief, read the proposed changes, and decide whether they're right for that account. What it removes is the hour spent scanning search-term reports by hand to get to that decision.
Mac and Windows, both — it runs locally on your own machine, nothing here is hosted for you. It runs inside Claude Code, and a Claude Pro subscription is enough to use it — you don't need Team, Enterprise or separate API credits.
As many as you have briefs for. The commands take a client slug, so adding an account means adding a brief and running the same commands against it. The honest limit today: there's no multi-client batch mode yet — scheduled checks are set up one entry per account, which is more setup up front but leaves no doubt about which account a job touches.
No extra cost — one $300/year price covers solo use and full multi-client agency setups, MCC included, same commands either way. What doesn't exist yet: a shared server or seat management. Each person runs their own copy against their own credentials, so the dashboard and change log live on whichever machine ran the command.
Any account running Search or PMax gets full coverage — keyword audits, PMax exclusions, expansion, GA4. The feed-specific commands (bucketing, feed titles, Merchant Center health) only apply if you're running Shopping or PMax off a Merchant Center feed; lead-gen accounts without one just skip those and use the rest.
No. It's a one-year license, not a subscription — nothing charges automatically when the year is up. If you want to keep using it, you come back and buy the next year yourself, at whatever the price is then. No card left on file quietly billing you a year later.
Ask them directly. Since everything runs locally against your own Google Ads API credentials, most "where does our data go" questions answer themselves, but reach out and we'll walk through the specifics for your setup.
Pricing
No per-seat tiers, no feature gating by plan. Every command, for freelancers and agencies alike.
$300 / yearthat's about $25/month, billed annually