Use it for

  • Spot device CPA differences hidden by campaign averages.
  • Prepare a device-performance discussion with a minimum conversion threshold.

Before you open it

Public JavaScript on GitHub, available without purchase or signup. Configure the script in Google Ads before use.

What it does when run

Reads Google Ads; logs findings and can send email. No bid changes in the inspected code.

Output
Execution log; optional email
Default reporting window
60 days ending yesterday
  • Google Ads account access with permission to add and authorise scripts.
  • Review CONFIG, account scope and thresholds before the first run.
  • Leave RECIPIENT_EMAILS empty for log-only delivery, or authorise email only for recipients you intend to receive account data.
GIVE CREDIT WHERE IT BELONGS

The people behind the script

Resource notes and library artwork curated by Paid Media Collective. The original work belongs to the contributors credited above. Inclusion does not imply a partnership or a member submission.

Apache License 2.0. Copyright 2026 Omnicliq; retain the original licence and attribution when adapting the code.

Source review and practical limitations

Source reviewed · 7 September 2026. We reviewed the source to the level stated here; tools, courses and account workflows have not been tested end to end.

  • Groups campaigns by name, not ID. Give campaigns unique names or adapt the grouping before comparing accounts with duplicate names.
  • Mobile, desktop and tablet only. TV and other device traffic are excluded from the calculated baseline.
  • Suggested modifiers are a simple CPA ratio, not a Smart Bidding recommendation. Zero-cost conversion rows and conversion lag need manual interpretation.
  • Code inspected and JavaScript syntax parsed only. No execution in a Google Ads account, no live query validation and no email delivery test.
  • Reports use the configured lookback ending yesterday. Check the date window in the account timezone, especially around daylight-saving changes.