Common Negative List
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.
by Google (original), chiliad (adaptation)·developers.google.com/google-ads/scripts/docs/solutions/common-negative-list
Overview
Common Negative List reads two sheets from your spreadsheet — Keywords and Placements — and creates or updates corresponding shared negative keyword and excluded placement lists in your Google Ads account. It then adds the lists to all enabled/paused campaigns (or only those with a specified label), removing the lists from any campaigns that no longer qualify. On each run it sends a summary email of keywords, placements, and campaigns synced.
Setup
- 1Make a copy of the template spreadsheet (link in Google Ads Scripts documentation).
- 2Paste the URL into CONFIG.spreadsheet_url.
- 3In the spreadsheet, fill in the Keywords sheet (column B) with negative keywords using standard match type syntax ([exact], "phrase", broad).
- 4Fill in the Placements sheet (column B) with URLs to exclude.
- 5Optionally set a campaign label in cell C3 to restrict which campaigns receive the lists.
- 6Set a list name in C4 (keywords list) and C5 (placements list).
- 7Set an email address in C6 for run summaries.
- 8Schedule daily.
Configuration Variables
| Variable | Default |
|---|---|
CONFIG.spreadsheet_url | 'INSERT_SPREADSHEET_URL_HERE' |
Campaign Label (spreadsheet C3) | blank |
Keyword List Name (spreadsheet C4) | Common Negatives |
Placement List Name (spreadsheet C5) | Common Placement Exclusions |
Expected Output
The Common Negative List script successfully processed Customer ID: 123-456-7890 and synced a total of 48 keywords and 12 placements. (Email sent to configured address)
Notes
The script handles match type syntax in the spreadsheet: wrap keywords in quotes for phrase match, square brackets for exact match, or leave bare for broad match. On the first run with a new list name, the script creates the list automatically.