Declining Ad Groups Report
Flags ad groups whose CTR has fallen for three complete weeks in a row — the ad-fatigue and competition slides that stay invisible while account totals look fine.
by Google (original concept), chiliad (GAQL rewrite)·web.archive.org/web/20231004224724/https://developers.google.com/google-ads/scripts/docs/solutions/declining-adgroups
Overview
Declining Ad Groups pulls per-week statistics for every enabled ad group over the last month, discards the current partial week, and flags ad groups whose CTR declined across the last three complete weeks — provided each week cleared a minimum impression volume so small-sample noise doesn't trigger false alarms. Results are sorted by the size of the CTR drop, with cost and conversion context per ad group.
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.
- 3Adjust MIN_IMPRESSIONS_PER_WEEK if your account is very small or very large.
- 4Set EMAIL_ADDRESS to receive the weekly report; leave blank for logs only.
- 5Preview once to verify, then schedule weekly (ideally early in the week).
Configuration Variables
| Variable | Default |
|---|---|
MIN_IMPRESSIONS_PER_WEEK | 100 |
EMAIL_ADDRESS | (empty) |
MAX_ROWS_IN_EMAIL | 50 |
Expected Output
Comparing complete weeks starting: 2026-06-22, 2026-06-29, 2026-07-06 === Declining Ad Groups (3 consecutive weeks of falling CTR) === Ad groups analyzed: 87 Declining: 2 Shoes — Generic > Running CTR: 4.31% -> 3.62% -> 2.98% (down 31%) | 3-week cost: 842.10 conversions: 12.0 Brand — Exact > Core CTR: 12.10% -> 11.45% -> 10.80% (down 11%) | 3-week cost: 1204.55 conversions: 44.0 Email sent to you@example.com
Notes
Weeks are Google Ads reporting weeks (Monday-based, account time zone). A flagged ad group isn't automatically broken — check for seasonality first — but three straight down-weeks is the point where ad fatigue and competitor changes are worth investigating. Inspired by Google's retired 'Declining Ad Groups' solution; rewritten for GAQL.