Scans the last 30 days of ad-click traffic for suspicious IPs, checks which are already excluded, estimates the exposure as a labelled upper bound, writes a measured client summary and previews an approval-gated blocking list.
When to use it
When you suspect competitors, bots or repeat clickers are draining your Google Ads budget and want a click fraud section for the client report.
What you get
A click fraud section with suspicious IPs, a labelled upper-bound cost estimate, a measured 3-sentence client summary and an IP block list shown as a preview until you approve.
Does it change anything in my account?
Only with your approval. The assistant first shows a preview of every change and waits for your go-ahead.
Works with
Google Ads
Fill in before sending
[account name][IP list, or "none known"]
Local service ads often get clicked repeatedly by competitors and bots. Build the click-fraud section of this month's report for [account name].
Known IPs that belong to the client or to us (office, VPN, agency): [IP list, or "none known"]
0. Use list_accounts to find the customer id for [account name].
1. Run fraud_scan for the last 30 days with block_threshold=70.
- If it reports that the fraud tag is not installed or has captured no ad-click traffic, stop and tell me. Without the tag there is nothing to report, so do not present zeros as a clean result.
- Otherwise, list every IP with a score of 70 or more, with its score and reasons.
- If the scan output includes the number of ad clicks and the campaign for each IP, show them. If it does not, mark those columns "not available from the tag" instead of guessing.
2. Run list_ip_exclusions for the account. Mark which of these IPs are already blocked, and on which campaign.
3. Pull cost, clicks and average CPC per campaign for the same 30 days with get_report (platform google_ads, level campaign). Estimate the exposure:
- Formula: suspicious clicks from IPs not yet blocked x the average CPC of the campaign they clicked. Use the account average CPC where the campaign is unknown.
- Show it as an amount and as a % of total spend.
- Label it as a rough upper bound, not a measured loss. Google already filters and refunds part of invalid traffic, and average CPC is not what each individual click cost.
4. For the client, write 3 sentences covering how much suspicious activity we found, what it may have cost at most and what we are doing about it. Do not overstate. A high score is a signal, not proof.
5. Prepare a blocking list of IPs scored 85 or more that are not yet excluded, grouped by campaign. Get the campaign ids with list_entities.
- Leave out every IP from my known list above.
- Move to a separate "needs your check" list any IP whose reasons are only volume or repeat clicks, with no datacenter, Tor, known-malicious or bot user-agent signal. These are often real people on shared mobile carrier or office connections.
- The tools cannot confirm who owns an IP range, so say plainly that this split is a judgement, not a verification.
6. For each campaign, show block_ip_addresses with confirm=false as a preview (at most 200 IPs per call, 500 per campaign). Do not run it with confirm=true until I approve.
Builds a one-page, jargon-free monthly report for a client with exact calendar-month figures versus the previous month, explains every big KPI move from campaign data and creates the white-label link only after you approve the draft.
When to use itWhen you have to send a client their monthly Google Ads results in plain language and explain what moved and why.
Compares every connected Google Ads client account over the last 30 days versus the previous 30, adds month-to-date budget pacing, ranks accounts by risk and gives account managers one data-backed first check for the top 5. Read-only.
When to use itWhen you manage many Google Ads client accounts and need to know which ones to open first this week.