Geo Performance Analyzer
Aggregates performance by region and compares every region to the account average — surfacing the locations draining spend without converting and the ones that deserve higher bids.
by Dmytro Tonkikh·chiliad.io
Overview
Geo Performance Analyzer aggregates cost, clicks and conversions by region (state/province level) across all enabled campaigns, computes the account-average CPA, and splits regions into two ranked lists: WASTE — regions that spent meaningful money with zero conversions or a CPA far above the account average (exclusion and negative-bid-adjustment candidates) — and WINNERS — regions beating the account CPA (positive-adjustment candidates). Region IDs are resolved to full names automatically.
Setup
- 1Open your Google Ads account and go to Tools → Bulk Actions → Scripts.
- 2Click the + button to create a new script and paste the code below.
- 3Set DATE_RANGE (LAST_30_DAYS default; longer for low-volume accounts) and MIN_COST to your account's scale.
- 4Set EMAIL_ADDRESS to receive the report; leave blank for logs only.
- 5Preview once to verify, then schedule monthly.
Configuration Variables
| Variable | Default |
|---|---|
DATE_RANGE | LAST_30_DAYS |
MIN_COST | 50 |
CPA_WASTE_MULTIPLIER | 2.0 |
TOP_N | 20 |
EMAIL_ADDRESS | (empty) |
Expected Output
Regions with traffic: 38 Account cost: 12480.55 Account CPA: 41.20 === REGIONS WASTING SPEND (cost >= 50, zero conversions or CPA > 2x account average) === Nevada, United States cost: 412.60 clicks: 380 conversions: 0.0 CPA: - Wyoming, United States cost: 208.11 clicks: 145 conversions: 1.0 CPA: 208.11 === REGIONS BEATING THE ACCOUNT CPA === California, United States cost: 3120.40 clicks: 2411 conversions: 96.0 CPA: 32.50 Texas, United States cost: 1890.02 clicks: 1465 conversions: 58.0 CPA: 32.59 Email sent to you@example.com
Notes
Data comes from the geographic view (physical location of the user), aggregated across all enabled campaigns — so a 'waste' region may still be fine inside one specific campaign. Use it to decide where to look, then segment the campaign in the UI before excluding. Regions your campaigns don't serve simply won't appear.