Landing Page Performance Report
Aggregates spend and conversions by landing page URL and compares each page to the account average — the pages bleeding money despite returning 200, and the proven winners worth more traffic.
by Bernhard Prange (concept), chiliad (rewrite)·github.com/Webmasterei
Overview
Landing Page Performance Report aggregates cost, clicks and conversions per landing page URL across all enabled campaigns and compares every page against the account-average CPA. Pages that spent meaningful money with zero conversions (or a CPA far above average) are listed as bleeders; pages beating the account CPA are listed as winners. It complements a link checker: a URL can return 200 and still lose money on every click.
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 MIN_COST to your account's scale so trivial pages don't clutter the report.
- 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_FLAG_MULTIPLIER | 2.0 |
TOP_N | 25 |
EMAIL_ADDRESS | (empty) |
Expected Output
Landing pages with traffic: 64 Account cost: 12480.55 Account CPA: 41.20 === BLEEDING PAGES (cost >= 50, zero conversions or CPA > 2x account average) === https://example.com/old-landing cost: 512.40 clicks: 420 conversions: 0.0 CPA: - https://example.com/category/misc cost: 260.11 clicks: 198 conversions: 2.0 CPA: 130.06 === WINNING PAGES (CPA below account average) === https://example.com/bestseller cost: 3105.20 clicks: 2411 conversions: 102.0 CPA: 30.44 Email sent to you@example.com
Notes
URLs are the unexpanded final URLs (before tracking template expansion), aggregated across campaigns — a page can bleed in one campaign and win in another, so segment in the UI before big decisions. For bleeders, check page speed, ad-to-page message match, and mobile rendering first.