
How to add negative keywords in bulk via Google Ads Editor
Bulk-upload negative keywords via Google Ads Editor: the CSV format, the column names that matter, and four mistakes that waste an afternoon.
There comes a point in every account audit when you have eighty or a hundred negative keywords to apply across four campaigns, and the web UI will turn that into a forty-minute slog. Google Ads Editor will turn it into about three minutes.
The trick is the CSV format. Editor accepts a specific shape and rejects most variations of it without a useful error message. This piece is the shape that works, the columns that matter, and the four mistakes that turn the five-minute job back into the forty-minute one.
When the bulk path is worth it
Below ten negatives, the web UI is faster. You open the campaign, paste the list into the negative keywords box, and pick the match type from a dropdown. Total time, about ninety seconds.
Above ten, the web UI starts to lose. Above thirty, it loses badly because most accounts at that point are also splitting between several campaigns and the web flow makes you switch contexts repeatedly. Above fifty, the bulk path is non-negotiable.
The threshold also depends on how many target locations you have. Ten negatives across one campaign is a web-UI job. Ten negatives across four campaigns each is a bulk-CSV job, because the web UI forces a campaign switch for each one.
The minimal CSV that works
Google Ads Editor expects, at minimum, three columns for negative keyword imports: the campaign or shared list, the keyword text, and the match type. There are other columns that can be useful, but those three are the load-bearing ones.
Campaign,Keyword,Match Type
Plumbing - Search,free,Negative Broad
Plumbing - Search,cheap,Negative Broad
Plumbing - Search,"how to",Negative Phrase
HVAC - Search,salary,Negative Broad
HVAC - Search,"diy hvac",Negative Phrase
That CSV imports cleanly. Five negatives, two campaigns, mixed match types, in five lines. The format is ASCII-safe, the quotes are around any term that contains spaces, and the match type column uses the exact strings Editor expects: Negative Broad, Negative Phrase, or Negative Exact.
For shared-list uploads, replace the Campaign column with Shared Set:
Shared Set,Keyword,Match Type
Account-wide DIY,free,Negative Broad
Account-wide DIY,cheap,Negative Broad
Account-wide DIY,"how to",Negative Phrase
Out-of-area cities,tucson,Negative Broad
Out-of-area cities,flagstaff,Negative Broad
The shared list has to already exist in the account before the import. Editor will not create new shared lists from a CSV; it will only add keywords to existing ones.
Column names: the ones that work, and the ones that look like they should but do not
Editor accepts a small set of canonical column headers. Spelling and casing matter. The headers below are the ones we know work as of late 2025.
- Campaign
Campaign- Shared list
Shared Set- Term
Keyword- Match type
Match Type- Status
Status
- Variants
campaign name,Campaign Name(extra word)- Variants
Negative,Negative Keyword(the column is just "Keyword")- Variants
Match,MatchType(no space, no "Type")- Casing
match type(must be Title Case)
The Status column is optional. If included, set it to Enabled. Leaving it blank also defaults to Enabled, but if you ever want to bulk-pause a list of negatives, this is the column.
Match type values
The match type column accepts three values for negatives:
Negative Broad. The default, blocks any query containing the word.
Negative Phrase. Blocks queries with the exact word sequence.
Negative Exact. Blocks only the exact query.
Note the leading "Negative" in each. Without it, Editor will treat the row as a positive keyword, which is not what you want.
There is one more value worth knowing: Negative Broad Modifier. This is a legacy match type and Google has been deprecating it. As of late 2024 it is no longer supported for negatives. If you have an old CSV with that value in it, change every instance to Negative Broad before importing.
The four mistakes that cost the most time
Mistake one: trailing spaces in campaign names. Copy-pasting a campaign name from the web UI sometimes adds a trailing space. The CSV row says Plumbing - Search (with the space) and Editor cannot match it to Plumbing - Search. Fix: trim every cell in the Campaign column. Most spreadsheet apps have a TRIM formula that handles this in three seconds.
Mistake two: smart quotes. Saving a CSV out of Word or Google Docs sometimes converts straight quotes to "smart" curly quotes (" "). Editor sees the curly quote as a literal character and refuses the row. Fix: open the CSV in a plain text editor and replace curly quotes with straight ones. Or use a CSV-aware tool to begin with.
Mistake three: the wrong match type for shared lists. Shared lists accept negative match types just like campaigns do. The trap is that when you create a shared list from inside the Google Ads UI, the default match type assignment is sometimes blank, and bulk uploads with a blank match type get rejected. Always populate the Match Type column explicitly.
Mistake four: importing into the wrong account. Editor lets you have multiple accounts open. The Account dropdown in the top-left determines which account the import goes into. Confirm before clicking Post Changes. We have seen account audits where the entire negative list ended up in the wrong account because somebody had two clients open in Editor at once.
takeaway
The four traps are trailing spaces, smart quotes, blank match type for shared lists, and the wrong account selected. Walk through that mental checklist before every bulk import and most upload errors disappear.
A worked example: hundred-row import across three campaigns
You finished an audit that produced about a hundred negatives split across three campaigns. The fastest path is one CSV with the campaign, term, and match type per row.
Build the spreadsheet with these columns: Campaign, Keyword, Match Type. Use a separate sheet (or a column you delete before export) to flag the source of each negative, in case you need to back them out later.
Sort the rows by campaign so the import preview groups them together. This is purely for your own sanity when reviewing before you click Post.
Save as CSV (UTF-8, comma-delimited). In Editor, go to Account, then Import, then From file. Editor will show a summary screen: how many additions per campaign, how many existing entries it found duplicates for, and how many rows it could not parse.
The duplicate count is interesting. Editor flags exact duplicates (same campaign, same term, same match type) as no-ops; it will not double-add them. Different match types of the same term count as separate entries, so cheap Broad and cheap Phrase will both go in.
Review the unparsable count. If it is non-zero, Editor will list the offending rows. Almost always the cause is one of the four mistakes above.
Click Post Changes. The negatives apply within a few seconds.
- 01Build the CSV with three columnsCampaign, Keyword, Match Type. Quote any term containing spaces. Match type values use Title Case with leading 'Negative'.
- 02Sort by campaignFor your own sake during review, not for the import. Editor accepts unsorted rows fine.
- 03Save as CSV UTF-8Plain comma-delimited. Avoid the UTF-16 default that some Excel versions use for non-Latin characters.
- 04Open Editor, switch to the right accountThe account dropdown in the top-left. Double-check before importing.
- 05Account, Import, From fileEditor parses, shows a preview, and flags duplicates and unparseable rows. Review before clicking Post.
- 06Click Post ChangesNegatives apply within a few seconds. The web UI updates within a minute or two.
Backing out a bad import
Sometimes you import, watch impressions drop, and realize the import was too aggressive. Two ways to back it out.
The first is the Editor undo: in the same session before you have synced changes back to the cloud, Edit and Undo will reverse the import. After sync, the undo no longer works.
The second is a reverse import. Build a CSV identical to the one you just imported, but in Editor select all those negatives and remove them. Editor's Remove flow accepts the same Campaign + Keyword + Match Type columns and will delete each match. This is why keeping a copy of the CSV you imported matters; it doubles as the un-import file.
The third option is the manual path: open the campaign or shared list, find the negatives, delete them. This is fine for tens of entries and tedious for hundreds.
If you import once and never need to back it out, the first option is the only one you will use. If you import often and occasionally regret one, get into the habit of saving every imported CSV with the date in the filename.
What about the API
For accounts at scale, the Google Ads API is the next step up from Editor. It accepts the same conceptual operations (mutate negatives, mutate shared lists) and adds programmatic control. The trade-off: setup time. Setting up API access for a single account is roughly an afternoon. Editor is ten minutes.
The API is the right tool when you are doing this for fifty accounts, or when you want to schedule a daily sync from a tool you have built. For one to ten accounts, Editor is the right tool.
The tool we built (Sensei Ads) sits in this space too, exporting CSVs that drop directly into Editor. The reason most operators land on a CSV-plus-Editor workflow is that Editor is already familiar, and CSVs are version-controllable in a way that direct API calls are not.
What good looks like, after a few imports
By the third or fourth time you do a bulk negative import, the workflow takes about three minutes plus the time to build the CSV. The CSV-build itself is the slow part: deciding which negatives, in which match types, against which campaigns. The import is mechanical.
The mechanical step is also the one that fails in surprising ways the first few times you do it. Once it works, it keeps working, because the format does not change much from year to year. Bookmark the column names, save a template CSV with the header row already in place, and the next import is shorter than the one before.
Reader questions
- Can I bulk-add negatives directly in the Google Ads web UI?
- You can paste a list of terms into the negative keywords screen, but the web UI does not accept a structured CSV with match types and target campaigns per row. Google Ads Editor is the right tool once you have more than ten changes to apply at once.
- Why does my upload say "campaign not found"?
- Google Ads Editor matches the Campaign column on exact name, including case and trailing spaces. Copy-pasting a campaign name from somewhere else often introduces a trailing space. Type the name fresh or check the cell for stray characters.



