— Amazon Ads Bulk Operations Guide

Anatomy of a bulk sheet: every column explained

Amazon's bulk operations spreadsheet has 31 columns. Most are blank in any given row, and that's normal. Here's how the structure works — Entity, Operation, IDs, and the column groupings — plus a downloadable template with required cells highlighted for each campaign type.

The structure that nobody explains clearly

Amazon's bulk operations spreadsheet has 31 columns for Sponsored Products campaigns. Open one for the first time, and the experience is something like staring at a wall of column headers: Product, Entity, Operation, Campaign ID, Ad Group ID, Portfolio ID, Ad ID, Keyword ID, Product Targeting ID, and on and on. Amazon's documentation explains each column individually, but the documentation never quite tells you the part that actually matters: which columns you need to fill in for each campaign type, and how the rows fit together.

This article is the missing map. By the end, you'll understand what every column is for at a high level, why the spreadsheet is structured the way it is, and which cells actually need values when you're building a campaign. There's a template generator at the bottom of this article that produces a blank bulk sheet for any campaign type — with the cells you need to fill in highlighted yellow.

Two columns do most of the work: Entity and Operation

The single most important concept in a bulk sheet is that each row represents one thing, and that thing is identified by the Entity column. A row with Entity = Campaign creates or updates a campaign. A row with Entity = Ad Group creates or updates an ad group. A row with Entity = Keyword creates or updates a keyword. There are roughly seven entity types you'll see in Sponsored Products bulk sheets: Campaign, Bidding Adjustment, Ad Group, Product Ad, Keyword, Product Targeting, and Negative Keyword (plus a few less common ones). Each entity type uses a different subset of the 31 columns.

The Operation column tells Amazon what to do with that row. The values are Create (make a new entity), Update (modify an existing one), Archive (delete it), or blank (read-only — no change). When you download a bulk sheet from Seller Central, every row comes back with the Operation column blank. You only fill it in when you want to make a change.

This is the part Amazon's documentation glosses over: the spreadsheet is structured as a series of rows where each row is a discrete operation on a discrete entity. It's not like a database table where one row equals one campaign. One campaign is described by many rows — one for the campaign itself, one for each ad group inside it, one for each product ad, one for each keyword or product target, and optionally rows for bidding adjustments and negatives. They're linked together by IDs.

How rows link together: the ID columns

Look at the columns again: Campaign ID, Ad Group ID, Ad ID, Keyword ID, Product Targeting ID. These are the keys that link rows. When you create a new campaign with a Campaign row, you choose the Campaign ID — any unique string you want, like auto-airfryer-2026. Then in the Ad Group row that belongs to that campaign, you put the same value in the Campaign ID column. In the Product Ad row, you put the same Campaign ID and also reference the Ad Group ID you chose. The same pattern continues for keywords and product targets.

So when you're building a campaign from scratch via bulk sheet, you're essentially writing a small relational graph: a Campaign row at the top, then Ad Group rows that point to it, then Product Ad and Keyword/Product Targeting rows that point to the ad groups. The IDs are values you make up. They just need to be unique within your account and consistent across the rows that should link together.

Temporary IDs vs actual IDs: the most important concept

Here's the part that catches every beginner. There are two completely different kinds of IDs you'll work with:

  • Temporary text-based IDs are what you write when creating a new entity. They can be anything: auto-airfryer-2026, my-test-campaign, kw-airfryer-ag-exact. Their only job is to link parent and child rows within this single upload. After Amazon processes the upload, the temporary IDs are discarded.
  • Actual numeric IDs are what Amazon assigns to the entity once it exists. They look like long numeric strings: 352147809573164. These are the real, permanent identifiers. You see them in any bulk sheet you download from Seller Central after the entity has been created.

The rule:

  • When Operation is Create: use a temporary text-based ID. If you write a numeric ID, Amazon errors with "This Create operation requires you to specify a temporary 'Campaign ID' (any non-numeric text)."
  • When Operation is Update or Archive: use the actual numeric ID from a downloaded bulk sheet. If you write a text-based ID, Amazon errors with "This Update operation requires you to specify an actual 'Campaign ID', rather than a temporary ID."

So your workflow is: invent temporary IDs to create things → after creation, download a fresh bulk sheet to see the real numeric IDs Amazon assigned → use those numeric IDs whenever you want to modify those entities later. The temporary IDs you invented have no further use after the create-upload completes.

Note: Amazon specifically calls out in their docs that you should use the bulk-sheet ID for updates, NOT the ID visible in the advertising console UI. The two are sometimes different identifiers for the same entity.

One more rule about IDs: when to leave them blank

For some entity types, you should leave the ID column blank when creating, not invent one:

  • Keyword ID on a new Keyword row
  • Product Targeting ID on a new Product Targeting row
  • Ad ID on a new Product Ad row

Amazon auto-generates these IDs without needing a temporary one to link from. Providing your own often causes a "Duplicate Id for column" error if the value matches anything else in your account. Best practice: leave blank when creating; Amazon assigns the ID; download a fresh sheet to see it.

The Campaign ID and Ad Group ID rules are different because those IDs need to be referenced by their children in the same upload — children need a way to point to their parent before Amazon has assigned the real ID. Hence the temporary text-based ID convention for those two.

The other columns, grouped by purpose

The remaining 28 columns serve specific entity types. Here's the mental grouping:

  • Identity columnsCampaign Name, Ad Group Name. These are display names. Used only on the Campaign and Ad Group rows, not repeated on subsequent rows that link via the ID columns.
  • Lifecycle columnsStart Date, End Date, State. Date format is YYYYMMDD (no dashes). State is enabled, paused, or archived. Used on Campaign, Ad Group, Product Ad, Keyword, and Product Targeting rows.
  • Budget and bid columnsDaily Budget (Campaign rows only), Ad Group Default Bid (Ad Group rows only), Bid (Keyword and Product Targeting rows). Numeric values in your account's currency.
  • Targeting columnsTargeting Type (Campaign rows: "Auto" or "Manual"), Keyword Text + Match Type (Keyword rows), Product Targeting Expression (Product Targeting rows). The expression column is the trickiest — it holds different syntax for different campaign types, which we'll cover in the type-specific articles.
  • Placement adjustment columnsPlacement + Percentage. Used only on Bidding Adjustment rows. Increases your bid by a percentage for top-of-search, product pages, or rest-of-search.
  • Inventory columnsSKU (Product Ad rows). Connects your seller SKU to the campaign.
  • Strategy columnsBidding Strategy (Campaign rows). One of: "Dynamic bids - down only", "Dynamic bids - up and down", or "Fixed bid".
  • Specialty columnsAudience ID, Shopper Cohort Percentage, Shopper Cohort Type, Sites, Native Language Keyword, Native Language Locale. Used for specific cases like international campaigns and Sponsored Display audiences. Most campaigns leave these blank.
  • PortfolioPortfolio ID. Optional grouping mechanism. Leave blank if you don't use portfolios.

Why the spreadsheet is so wide

If you've been counting, the columns served by the groupings above are most of the 31. Why does Amazon ship a spreadsheet with so many columns when no single row needs more than maybe a third of them? Because the same spreadsheet schema handles every entity type and every campaign variant. A Campaign row uses one subset. An Ad Group row uses a different subset. A Keyword row uses yet another. Rather than ship one schema per entity, Amazon ships one wide schema where each entity type only fills in its own columns.

So when you look at any individual row, you'll see most columns are blank. That's normal. The blank cells aren't missing data — they're cells that don't apply to this entity type.

A worked example: what a complete Auto campaign looks like

An Auto campaign is the simplest type to build via bulk sheet because there are no keywords to manage. Here's the row structure you'd produce to create one:

  1. Campaign row — defines the campaign. Fills in Campaign Name, Start Date, Targeting Type ("Auto"), State, Daily Budget, Bidding Strategy, and assigns the Campaign ID.
  2. Ad Group row — defines a single ad group inside the campaign. References the Campaign ID, assigns its own Ad Group ID, fills in Ad Group Name, State, and Ad Group Default Bid.
  3. Product Ad row — connects your SKU to the ad group. References the Campaign ID and Ad Group ID, fills in SKU and State.
  4. Product Targeting rows ×4 — one row per auto-targeting group (close-match, loose-match, substitutes, complements). Each references Campaign ID and Ad Group ID, fills in Bid, and puts the targeting group name in Product Targeting Expression.

That's seven rows total to create one Auto campaign. A Keyword campaign would replace the four Product Targeting rows with Keyword rows (one per keyword you're targeting). A Product Target campaign would keep Product Targeting rows but use ASIN-targeting syntax in the expression column.

Try it: download a template

Use the template generator on this page to download a blank bulk sheet for whichever campaign type you select. Yellow cells are the ones you need to fill in. Gray cells are pre-filled structural defaults (the Entity column, the Operation column, fixed targeting expressions) that you should leave alone. Hover over any yellow cell in Excel or Google Sheets to see a comment explaining what to enter.

What to do next

If you're new to bulk operations, download the SP Auto template and open it. Look at the yellow cells. Try filling in just one row — the Campaign row — with reasonable values (a campaign name like "test-campaign", today's date in YYYYMMDD format, "enabled" as state, $5 as daily budget, "Dynamic bids - down only" as strategy). Don't upload it yet. Just get a feel for what the structure looks like when partially filled.

From there, the campaign-specific articles in this guide walk through filling in the complete sheet for each campaign type, common upload errors, and what to do when something goes wrong. The next natural read is the article on Auto campaigns specifically, which builds on the template you just downloaded.

If you'd rather skip the manual building, BulkSheet Pro takes a SKU list and produces dozens of campaigns at once with validated bulk sheets — no row-counting, no ID-matching, no missing-column errors. Try it free →