Search Term Cannibalization
Finds queries served by two or more campaigns in the same period, with the cost/CPA split per campaign — so the right owner is obvious and the negatives to add elsewhere follow directly.
by Dmytro Tonkikh·chiliad.io
Finds queries served by two or more campaigns in the same period, with the cost/CPA split per campaign — so the right owner is obvious and the negatives to add elsewhere follow directly.
by Dmytro Tonkikh·chiliad.io
Uses Claude AI to analyze your search terms and recommend negative keywords with clear reasoning. Each term is evaluated for business relevance, intent, and conversion potential — then exported to a Google Sheet with actionable suggestions.
Finds brand search terms leaking into non-brand campaigns (inflating their stats and misleading Smart Bidding) and generic traffic riding in brand campaigns — with the misrouted spend quantified.
Measures how much of your exact-match spend actually flows through close variants and lists the zero-conversion variants — the most surgical negative keyword candidates in the account.
Reads negative keywords and placement exclusions from a Google Sheet and syncs them to multiple campaigns via shared negative keyword and placement lists. Optionally filters to campaigns with a specific label.
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.
Shows what your Dynamic Search Ads decided on their own: waste queries to negate, the landing pages absorbing DSA spend, and converting queries to promote into real keywords.
When multiple campaigns can serve the same query, Google routes the traffic by Ad Rank — not by your structure — and the same query can cost wildly different amounts depending on which campaign catches it. Search Term Cannibalization groups all search terms by query and reports every query that served from two or more campaigns, ranked by combined cost, with each campaign's cost, clicks, conversions and CPA. The campaign with the best numbers is marked as the natural owner.
| Variable | Default |
|---|---|
DATE_RANGE | LAST_30_DAYS |
MIN_COMBINED_COST | 10 |
TOP_N | 30 |
EMAIL_ADDRESS | (empty) |
=== Search Term Cannibalization (LAST_30_DAYS) ===
Queries analyzed: 18342 Served by 2+ campaigns (cost >= 10): 4
"running shoes sale" combined cost: 312.40 campaigns: 2
[MAIN] Shoes — Generic cost: 240.10 clicks: 198 conversions: 11.0 CPA: 21.83
Sneakers — Promotions cost: 72.30 clicks: 61 conversions: 1.0 CPA: 72.30
"trail shoes waterproof" combined cost: 120.85 campaigns: 2
[MAIN] Shoes — Generic cost: 98.20 clicks: 84 conversions: 4.0 CPA: 24.55
Generic — Broad cost: 22.65 clicks: 19 conversions: 0.0 CPA: -
Email sent to you@example.comSome overlap is intentional (e.g. a high/low priority split or geo-separated campaigns) — check settings before adding negatives. For genuine cannibalization the fix is one negative per losing campaign: give the query to the campaign with the better CPA or the tighter theme.