Learn

The Amazon Bulk File: How I Push Hundreds of PPC Changes in One Upload

The Amazon bulk file (Amazon calls it the bulk operations file) is a spreadsheet export of your entire Sponsored Products account: every campaign, ad group, keyword, product ad, and negative, each as one row, with your chosen window of performance data attached. You filter it, edit it in place, and re-upload it, and Amazon applies hundreds of PPC changes in one pass instead of you clicking through the console one screen at a time. I run every account I manage out of this file, and it is the exact file my free Account Health Snapshot and all three free tools parse. This guide covers where to download it, how to read its anatomy (entities, operations, editable columns), the four changes I make at scale, the mistakes that break uploads, and the free diagnostics hiding in the file you already have.

What the bulk file is, and why I manage accounts from it

The bulk file is an .xlsx workbook from the Amazon Ads console that lists your complete campaign structure as rows: campaigns, ad groups, keywords, product ads, and negatives, with performance columns beside them. Edit the rows, re-upload the workbook, and Amazon executes every change you marked. It is the spreadsheet interface to your whole account.

The console can do everything the file does, one screen at a time. The file exists because nobody should make four hundred decisions through forty page loads. A question like "show me every enabled keyword with clicks and zero orders, account-wide" takes one filter in a spreadsheet and most of an afternoon in the console. The file also scales where attention does not: the bulk files I work through routinely run past 13,000 rows, which is exactly why my process pairs my own pass with an AI double-check before any change ships. I still make every call; the second read exists because no human reads that many rows without skipping one.

The file is also how I keep accounts portable. Every change I ship travels as a documented bulk sheet, so a client who leaves keeps a standard structure that any operator or any tool can pick up and run. And one boundary worth drawing early: the bulk file is not the search term report. The report records what shoppers typed; the bulk file holds the levers you pull in response. Tick the right boxes at download and both arrive in the same workbook, which is precisely what makes it the one file that can run a whole optimization cycle.

How to download the Amazon bulk file

In the Amazon Ads console, open Sponsored ads, then Bulk operations, request a custom spreadsheet for the last 60 days, tick the data you want included, and download the .xlsx when Amazon finishes building it. The request takes about a minute. The build usually takes a few more, longer for large accounts.

  1. Open Bulk operations. Amazon Ads console, Sponsored ads, then Bulk operations. Sellers get to the same console through the Advertising menu in Seller Central.
  2. Set the date range. Choose the last 60 days. More on why this choice matters below.
  3. Select the data to include. For a full working file, tick: Sponsored Products Targeting & Keywords (status: enabled and paused), Paused Campaigns, Placement Data for Campaigns, Sponsored Products Data, Sponsored Brands Multi-Ad Group Data and Sponsored Display Data if you run those ad types, plus Sponsored Products Search Term Data and Sponsored Brands Search Term Data.
  4. Generate and download. Request the spreadsheet, wait for the build, download the .xlsx. Typical size is 2–40 MB, and it opens in Excel or Google Sheets.

The date range deserves a real decision, because it controls what the performance columns are worth. The structure rows always export as your account exists at the moment of download; the Impressions, Clicks, Spend, Orders, and Sales columns total only the window you request. Pull a window too short and you will judge keywords on a handful of clicks. Pull one too long and you are averaging in prices, creative, and seasons that no longer exist. Sixty days balances both, and it is the window every free tool on this site is built around.

Anatomy: entities, operations, and the columns you can actually edit

Every row in the Sponsored Products sheet is one entity, named in the Entity column: a campaign, an ad group, a product ad, a keyword, or a negative keyword. The Operation column decides what happens to that row on upload, a small set of editable columns carries your changes, and everything else is read-only evidence.

The hierarchy is strict. Campaign rows hold campaign-level settings: daily budget, targeting type, bidding strategy, with placement multipliers sitting on their own bidding adjustment rows underneath. Ad group rows attach to a campaign through Campaign ID. Keyword, product ad, and negative rows attach through both Campaign ID and Ad Group ID. Those ID columns are the wiring. Amazon matches on IDs, not names, and a child row pointed at the wrong parent is the difference between a fix and a brand-new problem.

The Operation column is the trigger. It downloads empty, which means the whole file starts inert: you can sort, filter, and annotate all day and none of it means anything to Amazon. A row only becomes an instruction when you type Update (change this existing entity) or Create (add this new one). That emptiness is the file's best safety feature, and, as covered below, the source of its most common failure.

The columns that matter in a Sponsored Products bulk sheet, and which ones accept edits.
ColumnFound onCan you edit it?
EntityEvery rowNo. It names what the row is.
OperationEvery rowYes. Blank (ignored), Update, or Create.
Campaign ID / Ad Group IDEvery rowNot on existing rows. New rows copy the parent's IDs exactly.
StateCampaigns, ad groups, keywords, product adsYes. Enabled or paused; the on/off switch.
Campaign Daily BudgetCampaign rowsYes.
BidKeyword and targeting rowsYes. The most-edited cell in the file.
Keyword Text, Match TypeKeyword and negative rowsOnly on Create. Fixed once the row exists.
Impressions, Clicks, Spend, Orders, Sales, ACOS, ROASPerformance columnsNo. They justify the change; they never carry it.

The layout itself teaches the discipline: control columns sit toward the left of the sheet, performance columns toward the right. You read right and write left, and the whole craft of bulk editing is never confusing the two directions.

The four changes I push through the file

Almost everything I ship into an account travels as one of four bulk edits: repriced bids, new negative keywords, harvested exact match keywords, and paused losers. The file turns each one into a filter, an edit, and an Operation value, instead of a hundred console screens that each hold one decision.

Bid changes in bulk

Filter to Entity equals Keyword and State equals enabled, sort by the performance columns, type the new number into the Bid column, and set Operation to Update on every row you touched. A full-account bid pass becomes a single upload instead of a keyword-by-keyword crawl through campaign pages.

The number that goes in the cell comes from each keyword's own economics, never from a flat percentage nudge across the board. My pricing rule is revenue per click times target ACOS, walked through in my guide on lowering ACOS without killing sales. On the dataset I grade across these guides ($111,058 in ad sales from 45,672 clicks), revenue per click is $2.43, so a 30% target prices the average click at $0.73 against the $0.79 the account actually pays. That gap, repeated across thousands of keyword rows, is what a bid pass exists to close: one row at a time, one upload at the end.

Adding negative keywords in bulk

Negatives enter the file as new rows: Entity set to Negative Keyword (or Campaign Negative Keyword), Operation set to Create, the parent Campaign ID and Ad Group ID copied in, the term in Keyword Text, and negative exact or negative phrase in Match Type. One upload lands the entire block.

Which terms deserve negation, and which match type each one gets, is its own methodology, covered in my negative keywords guide. The compressed version: a specific bad search term gets a negative exact, and a bad word gets a negative phrase that closes the whole family. A camping stove account catching clicks on "stove repair kit" does not need a separate exact negative for every repair variation; one negative phrase on "repair" shuts the lane. If you would rather not build the block by hand, the free Negative Keyword Finder reads this same bulk file and returns the candidates with a recommended negation type per term, formatted to drop into your next upload.

Harvesting proven terms into exact match

A harvest is two Create rows per term: one adding the term as an exact match keyword in the performance campaign, priced from its own numbers, and one adding the same term as a negative exact in the campaign that discovered it. The pair moves ownership in a single upload.

The promotion bar comes first: two or more orders, sales credited to the advertised product itself, and a relevancy check, all laid out in my search term report guide. Once a term clears it, the bulk rows are mechanical. The exact match row enters at revenue per click times target ACOS, and the negative at the source stops discovery from paying again for traffic the exact campaign now owns. Why every term needs exactly one owner is the ownership rule at the center of my campaign structure guide.

Pausing losers with the State column

Pausing at scale is a State edit: filter to keywords whose spend cleared your zero-order threshold, change State from enabled to paused, and set Operation to Update. Paused rows keep their history and their IDs, and they restart with one edit, which is why pausing beats archiving on a first cut.

The threshold that defines a loser is the wasted spend definition I use everywhere: keyword spend with zero orders, past the point where your target CPA says an order should have arrived. The free Wasted Spend Finder computes exactly that from this same file and ranks every campaign and keyword by zero-order spend, worst offenders first, so the pause list writes itself.

Five ways a bulk upload goes wrong

Bulk uploads fail, or half-apply, for predictable reasons: an Operation column left blank or set wrong, broken parent and child IDs, edits typed into read-only columns, a working view that never filtered live rows from paused and archived ones, and a stale file uploaded over newer console changes.

  1. The Operation column stayed blank, or said the wrong thing. Blank rows are skipped silently, so the upload "succeeds" and nothing changes. The inverse throws errors: Create on an entity that already exists, or Update on one that does not.
  2. Broken parent and child IDs. New rows attach to their parents through Campaign ID and Ad Group ID, copied exactly from the parent rows in the same file. Get one wrong and the error report is the good outcome. The bad outcome is the row applying cleanly in the wrong ad group.
  3. Edits typed into read-only columns. Typing a smaller number into the ACOS column does not lower your ACOS. The performance columns are a report, not a form, and Amazon ignores every edit made there.
  4. No State filter on the working view. A bid pass that never filtered out paused and archived rows spends effort repricing keywords that cannot spend money, and worse, mixes dead history into live analysis until the averages lie.
  5. Uploading a stale file. The bulk file is a snapshot of the moment you downloaded it, and any row you mark Update reapplies every editable cell it holds, including values that were current last week and are wrong today. Edit a stale file and you can quietly reverse changes made in the console since, like a keyword someone paused riding back in as enabled. My rule: download, edit, and upload inside the same working session.

The same file is a free 60-second diagnosis

Before it is an editing tool, the bulk file is a diagnostic. One 60-day download holds your structure, spend, orders, and search terms in a single workbook, which is everything needed to find wasted spend, search term bleed, and negation gaps. That is why every free tool I have built takes this exact file as input.

Start with the free Account Health Snapshot: drop the file in and it grades nine metrics against benchmarks for your account's phase in about 60 seconds. The parsing happens in your browser, the .xlsx itself never uploads, and only the aggregated numbers the report needs are sent, held in memory, then discarded. No email, no account, nothing gated.

Then the specialists, all reading the same file: the Wasted Spend Finder ranks your zero-order keyword spend by worst offender, the N-Gram Analyzer regroups your search terms into one-, two-, and three-word patterns to surface waste no single term shows (the method behind it is in my n-gram analysis guide), and the Negative Keyword Finder turns the findings into a ready-to-negate list. When you want root cause rather than a scorecard, the free Audit Dashboard runs all nine panels on the same upload, and the demo shows the full read on a real anonymized account before you commit your own file.

Frequently asked questions

Where do I download the Amazon bulk operations file?

In the Amazon Ads console: Sponsored ads, then Bulk operations. Sellers reach the same console through the Advertising menu in Seller Central. Request a custom spreadsheet, tick the data sets you want included (at minimum Sponsored Products Targeting and Keywords plus the search term data), set the date range, and download the .xlsx once Amazon finishes building it. Typical size is 2 to 40 MB.

What date range should I choose for the bulk file?

The last 60 days. The structural rows always export as your account exists today, but the performance columns only total the window you request. Shorter windows judge keywords on statistical noise; much longer windows blend in old prices, old creative, and old seasons. Sixty days balances both, and it is the window my free snapshot and tools are built around.

Can I change Amazon PPC bids in bulk?

Yes, and it is the single most useful thing the file does. Filter to keyword rows, type the new value in the Bid column, set Operation to Update on each row you changed, and re-upload. Hundreds of bids move in one pass. The discipline is pricing each bid from that keyword's own revenue per click and your target ACOS, never one blanket adjustment across the whole file.

What is the difference between the bulk file and the search term report?

The search term report records what shoppers actually typed before clicking your ads; the bulk file holds your account structure and the editable levers: bids, budgets, states, negatives. One is evidence, the other is the control panel. In practice they travel together: tick the search term data sets when you request the bulk download and they arrive as extra tabs inside the same workbook.

Is it safe to re-upload an edited bulk file?

Yes, because the file is inert by design: Amazon only processes rows where you filled in the Operation column, and ignores everything else. Two habits keep it safe. Leave Operation blank on any row you did not deliberately change, and always edit a fresh download rather than a file from last week, so your upload cannot overwrite changes made in the console since.

Why didn't my bulk upload apply?

Check the Operation column first: blank rows are skipped silently, and that is the most common cause. After that: Create used on an entity that already exists, an ID that does not match the parent campaign or ad group on new rows, invalid values like a bid below Amazon's minimum, or edits typed into read-only performance columns. Amazon reports row-level errors after processing, so fix the flagged rows and upload again.

Download the file once, use it twice

Every technique in this guide starts from the same download, so let the file do both of its jobs: diagnose first, edit second. Drop it into the free Account Health Snapshot and you will have a nine-metric scorecard in about 60 seconds, parsed in your browser, no email, no account. If the grades surface problems and the right sequence of bulk changes is not obvious, that sequencing is a judgment call, and the free 30-minute diagnosis call is where I make it with you, your file on the screen.

Book the free 30-minute diagnosis call