Competitor Query Monitor
Quantifies spend on search queries containing competitor names, with conversion performance and a period-over-period trend — whether competitor bidding is your strategy or your broad-match accident.
by Dmytro Tonkikh·chiliad.io
Overview
Competitor Query Monitor scans all search terms for the competitor names you configure and reports, per competitor: spend, clicks, conversions, CPA, and the trend vs the previous period — plus the individual competitor queries ranked by cost. If competitor bidding is deliberate, this is its missing line item; if it's accidental broad-match drift, this is the evidence for adding competitor negatives.
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.
- 3IMPORTANT: set COMPETITOR_TERMS to real competitor names (lowercase, include common spellings).
- 4Set EMAIL_ADDRESS to receive the report; leave blank for logs only.
- 5Preview once to verify the matching looks right, then schedule monthly.
Configuration Variables
| Variable | Default |
|---|---|
COMPETITOR_TERMS | ['competitorone', 'competitortwo'] |
WINDOW_DAYS | 30 |
TOP_QUERIES | 20 |
EMAIL_ADDRESS | (empty) |
Expected Output
=== Competitor Query Monitor (last 30 days vs previous 30) === "nike" spend: 412.60 (+38% vs prior) clicks: 380 conversions: 4.0 CPA: 103.15 "adidas" spend: 96.20 (-12% vs prior) clicks: 88 conversions: 1.0 CPA: 96.20 --- Top competitor queries (recent window) --- "nike running shoes vs acme" in Generic — Broad cost: 120.40 conversions: 2.0 "nike outlet" in Generic — Broad cost: 84.15 conversions: 0.0 Email sent to you@example.com
Notes
Tokens match as substrings, so short or generic competitor names will over-match — prefer the distinctive part of the name. Competitor CPAs typically run 3-5x brand CPAs; judge them against the value of a stolen customer, not against your blended CPA.