The daily routine
Run AdCopilot's morning Google Ads audit — a fixed, read-only six-check sequence that reports spend, wasted spend, negatives, disapprovals, and pacing, then proposes approval-gated fixes.
The daily routine is a fixed, read-only audit followed by approval-gated proposals. The assistant inspects and reports, then proposes — it never changes the account on its own, and it can never delete.
Ask for it with:
Run my AdCopilot morning audit.
That runs AdCopilot's morning-audit prompt, which every connection has with
nothing to install. Two more prompts come with it: growth-audit covers Google
Ads plus whichever of Search Console, Analytics and Tag Manager you connected,
and weekly-report is the Monday summary. Where the account's own analysis
tools cover a check (wasted spend, negatives, pacing), the assistant calls
full_audit and quotes its numbers instead of doing the arithmetic itself.
Before you start
- If the assistant does not know an account's monthly plan cap (budget target), it asks once. Without it, spend is reported as a raw number and the cap check is marked "no cap set."
- It identifies accounts with
list_accessible_customers, and consultsget_resource_metadatarather than guessing a field name.
The six checks
Run in order, per connected account. Checks 2–6 use the search tool and are
read-only. cost_micros ÷ 1,000,000 = amount in the account currency. Date
ranges are never written into the query: pass start_date and end_date as
YYYY-MM-DD and the connector adds the quoted segments.date filter itself.
-
Accounts in scope —
list_accessible_customers. -
Spend vs plan cap — month-to-date cost against the cap.
resource: campaign,fields: campaign.name, metrics.cost_micros, withstart_date= the 1st of the month andend_date= today, which reaches Google as:SELECT campaign.name, metrics.cost_micros FROM campaign WHERE segments.date BETWEEN '2026-09-01' AND '2026-09-16' -
Wasted-spend ranking — highest-cost search terms with little to show, flagging near-zero conversions.
resource: search_term_view,fields: search_term_view.search_term, metrics.cost_micros, metrics.conversions, metrics.clicks,orderings: metrics.cost_micros DESC,limit: 50, and the last 30 days as two dates:SELECT search_term_view.search_term, metrics.cost_micros, metrics.conversions, metrics.clicks FROM search_term_view WHERE segments.date BETWEEN '2026-08-17' AND '2026-09-15' ORDER BY metrics.cost_micros DESC LIMIT 50 -
Negative-keyword candidates — the clearly off-intent terms from that ranking worth blocking.
-
Disapprovals — ads switched off by policy. No date range on this one:
SELECT ad_group_ad.ad.id, ad_group_ad.policy_summary.approval_status, ad_group_ad.policy_summary.policy_topic_entries FROM ad_group_ad WHERE ad_group_ad.policy_summary.approval_status != 'APPROVED' -
Pacing — project month-end spend from MTD cost and the fraction of the month elapsed, compared to the cap.
The report
Each account ends with a compact table and a plain verdict per row — OK, WATCH, or ACT:
Account: <name> — <id> (<currency>) Window: <start> to <end>
Check Result Verdict
Spend vs plan cap $X MTD of $Y cap OK
Wasted spend $X on N zero-conversion terms ACT
Negative candidates N off-intent terms ($X) ACT
Disapprovals N ad(s) disapproved ACT
Pacing projecting $X — Z% of cap WATCHTurning ACT into proposals
For each ACT row the assistant writes a specific, approvable proposal, then stops and waits for your yes:
- Wasted spend → pause the offending keyword
(
update_keyword→ PAUSED) or lower its bid. Never removed. - Negative candidates →
add_negative_keywordswith the exact terms and level. The connector can add a negative but cannot remove one, so reversing it is a Google Ads UI action — the assistant says so. - Disapprovals → surface the ad and its policy reason; the fix is usually a corrected ad you review.
- Pacing over cap → reversible budget or bid changes; if a campaign must stop, pause, never delete.
After an approved change, the assistant reports how to undo it — almost always the opposite call.
Make it a habit: the daily check-in and the Monday summary
Two artefacts, one habit. The daily check-in is this audit, run every morning. The Monday summary is the same read over the past week. Pick the recipe for the client you actually use — AdCopilot runs in the cloud, so the schedule lives in your client, or, when it ships, in AdCopilot on your explicit say-so (Recipe C), and nothing outside your control can put the account on a timer.
Recipe A — Claude (Scheduled tasks)
In Claude, open Scheduled tasks → New task. Set it to Daily at 08:00 (your time), and leave "Require this computer" off — AdCopilot runs in the cloud, so your machine doesn't need to be on. In Instructions, paste:
Use the AdCopilot connector's
growth-auditprompt for your business name. This is read-only — don't make any changes. Give me the Check / Result / Verdict table in plain language, then the top 3 things to fix, most impactful first, as numbered options.
For the Monday summary, add a second task set to Weekly, Monday 08:00 with:
Use the AdCopilot connector's
weekly-reportprompt for your business name. Read-only.
Run it once by hand first so you see what arrives and can supply the monthly
plan cap. On Claude Code the same pair works, plus a claude -p cron one-liner
if you prefer the terminal.
Recipe B — ChatGPT (Tasks)
ChatGPT does not list connector prompts, so the task is written in plain English instead:
Every day at 8am, run my AdCopilot growth audit and message me the summary.
Every Monday at 8am, send me my AdCopilot weekly report.
Check that the task lists the AdCopilot connector, then trigger it once by hand. Honest caveat: if ChatGPT lets you — we have not yet verified that a scheduled ChatGPT Task can call a connector's tools, so if the first run comes back empty, use Recipe A instead.
Recipe C — AdCopilot running it for you (not yet)
AdCopilot running the check-in on its own schedule, server-side is a paid feature that does not run yet. There is a Routine card in the app, and it refuses with that message rather than pretending — nothing you can switch on there will put your account on a timer today.
When it ships it will be included from Starter, and the click on that card will be the consent record: a routine will never be switchable on from inside an AI client. Nothing about Recipes A and B changes when it lands — the bring-your-own-scheduler path stays free on every plan, including Free.
Accounts and scope
Which Google Ads accounts an assistant can act on — what your Google sign-in can open, the accounts you switch on, and the number your plan allows.
Negative-keyword sweep
Find the search terms spending with nothing to show, and block the clearly off-intent ones with negative keywords — on a campaign, in a shared list, or across the account. Every negative is proposed first.