google_ads_keywords_cross_adgroup_duplicates
Detect identical text-and-match-type keywords appearing in multiple ad groups, compare spend, conversions, and quality score, and get a consolidation recommendation to pause duplicates before restructuring.
Instructions
Finds the same text+match_type keyword appearing across multiple ad groups in a campaign. Returns groups of duplicate criteria with per-ad-group spend, conversions, and quality score, plus a consolidation recommendation (which copy to keep, which to pause/remove). Read-only. Duplicates compete in the auction and hurt aggregate quality score — run this before a keyword restructuring sprint.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Analysis window used to compute per-copy spend and conversions. Default 'LAST_30_DAYS'. Also accepts an explicit range in GAQL spelling — "BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD'", both endpoints inclusive, in the account's time zone — for a window no trailing constant can reach (e.g. a single past calendar month). One asymmetry to know about: every constant except LAST_90_DAYS is resolved by Google Ads in the account's reporting time zone, whereas LAST_90_DAYS has no API constant and is expanded by mureo into the 90 days ending yesterday **on the server's date**, so its edges can differ by a day when the server and the account are in different zones. Pass an explicit range when the exact boundary matters. | |
| campaign_id | Yes | Campaign to scan for duplicates. | |
| customer_id | No | Google Ads customer ID as a 10-digit string without dashes (e.g. '1234567890'). Optional — falls back to GOOGLE_ADS_CUSTOMER_ID / GOOGLE_ADS_LOGIN_CUSTOMER_ID from the configured credentials when omitted. |