Device Performance Analyzer
Splits every campaign's results by mobile, desktop and tablet and flags campaigns where one device converts dramatically worse — with the bid adjustment that would equalize CPA as a starting point.
by Tibbe van Asten & Brainlabs (concept), chiliad (rewrite)·chiliad.io
Overview
Device Performance Analyzer segments each enabled campaign's cost, clicks and conversions by device and compares the devices against each other. Campaigns where the worst device's CPA exceeds the best device's by a configurable factor (or spends without converting at all) are flagged, with the full device table and the mathematically CPA-equalizing bid adjustment shown as a decision aid. Blended campaign CPAs routinely hide a mobile experience problem — this makes it visible.
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_DEVICE_COST and CPA_GAP_FLAG to your account's scale and tolerance.
- 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_DEVICE_COST | 50 |
CPA_GAP_FLAG | 1.75 |
EMAIL_ADDRESS | (empty) |
Expected Output
=== Device Performance Analyzer (LAST_30_DAYS) === Campaigns with 2+ judged devices: 14 Flagged: 2 Generic — Broad MOBILE cost: 1840.20 clicks: 1650 conversions: 18.0 CPA: 102.23 <- WORST DESKTOP cost: 1626.44 clicks: 1102 conversions: 52.0 CPA: 31.27 <- best -> MOBILE: equalizing bid adjustment approx -69% Competitor — Phrase MOBILE cost: 412.80 clicks: 391 conversions: 0.0 CPA: - <- WORST DESKTOP cost: 388.15 clicks: 240 conversions: 9.0 CPA: 43.13 <- best -> MOBILE: consider strong negative adjustment or exclusion Email sent to you@example.com
Notes
The suggested adjustment equalizes CPA arithmetically — sanity-check against lead quality and attribution (mobile often assists conversions that close on desktop). On campaigns using Smart Bidding, device bid adjustments are largely ignored (except -100%); there, treat a flag as a prompt to fix the mobile experience, not to stack modifiers.