06 — Tips & Best Practices

Why BulkSheet Pro hands you three files, not one

Every export delivers three files — an upload for Amazon, a summary for you, and a session JSON that closes the loop next session.

You hit the Export button. Three files appear in your downloads folder.

One is named UPLOAD_TO_AMAZON_bulk_changes_20260514.xlsx. The next is BSP_SUMMARY_do_not_upload_20260514.xlsx. The third is bsp_session_20260514.json.

The naming isn't subtle. The middle file has "do_not_upload" in its name because someone will definitely try, and BulkSheet Pro would rather lose to the strict naming convention than lose to your file picker.

Three files, because each has a different audience.

File 1: The Amazon upload (the actionable one)

UPLOAD_TO_AMAZON_bulk_changes_20260514.xlsx is the file you actually upload to Amazon Ads.

It's structured to match Amazon's bulk operations sheet exactly — every column header, every entity type, every row format. The sheet structure varies based on what you changed:

  • If you modified any Sponsored Products keywords, bids, or placements, the workbook contains a Sponsored Products Campaigns sheet.
  • If you modified any legacy Sponsored Brands campaigns, you get a Sponsored Brands Campaigns sheet. For modern SB Multi Ad Group campaigns, you get a separate Sponsored Brands Campaigns SB Multi Ad Group sheet.
  • If you modified any Sponsored Display campaigns or targeting rows, you get a Sponsored Display Campaigns sheet.

Each sheet contains only the rows that apply to it. If your session involved only Sponsored Products changes, the workbook has exactly one sheet. If you changed five SP campaigns, three SB campaigns, and added two SD targeting rows, the workbook has three sheets, one per product type.

Within each sheet, rows are organized by entity type — Campaign updates, Keyword and Product Target updates, Product Ad updates, Negative Keyword adds, Placement updates, and new Campaign and Ad Group creates. The Operation column tells Amazon what to do with each row (Update, Create). The Entity column tells it what kind of thing the row is. Every required ID column is populated for the rows that need them.

This is the file your account's state actually changes from. Drag it into Amazon Ads' Bulk Operations upload page, wait for the job to process, and your changes are live.

File 2: The summary (the human-readable one)

BSP_SUMMARY_do_not_upload_20260514.xlsx is your receipt.

It's a single-sheet workbook with two columns: a label on the left and a value on the right. The first row is bolded as a header. The rest is plain text, organized so you can scan it once and know exactly what's about to happen.

A typical summary might show:

  • Account-level spend before: $14,302.18
  • Account-level orders before: 1,184
  • Total bid changes: 184 (124 down, 60 up)
  • Total placement adjustments: 47 (29 down, 18 up)
  • New negative-exact keywords queued: 117
  • New cross-campaign negatives queued: 28
  • Harvest campaigns to be created: 12
  • Estimated monthly spend reduction (projection): $1,940

The summary lives as a separate file so it never accidentally gets uploaded to Amazon. Amazon's parser is strict — it rejects anything it doesn't recognize, and if you uploaded the summary by mistake, the error would be confusing because none of the columns match what Amazon expects. By making the summary a separate workbook with a name that explicitly says "do not upload," BulkSheet Pro removes the chance of that misstep entirely.

This is the file you keep for your records. Before applying anything in Amazon, this is the file you read to confirm the changes are what you expected.

File 3: The session JSON (the memory bank)

bsp_session_20260514.json is the most interesting file in the export — and the one most users don't think about until the next session.

The JSON contains a snapshot of your account's state at the moment of export, plus the full set of changes that were queued. Specifically:

  • The "before" metrics for every ad group that changed: spend, sales, orders, clicks, impressions
  • Every individual change: which keyword's bid moved from what to what, which placement multiplier changed, which negative was queued, which campaign was newly created
  • The target ACoS and sensitivity that were active at the time
  • Any rules that were applied (SKU rules, campaign rules, keyword rules)
  • The version of BulkSheet Pro that generated the changes

It's not formatted for human reading. It's formatted for machine reading. Specifically, it's formatted for BulkSheet Pro itself to read back next session.

Here's why that matters. A month later you run another bulk sheet through BulkSheet Pro. On the upload screen, alongside the bulk sheet upload card, you see a second card asking for an optional bsp_session_*.json file. You drop the JSON from your previous session into that slot, then proceed with the new bulk sheet upload as usual.

BulkSheet Pro now has both the before snapshot (what your account looked like when you exported two weeks ago) and the after data (the new bulk sheet, which reflects two weeks of actual performance under the changes you applied). It can show you, change by change, how each adjustment performed:

  • The bid you raised on "weeknight chicken recipes" — did the ACoS hold? Did spend scale where you wanted?
  • The placement cut on Top of Search for the air fryer campaign — did the placement-level ACoS come down? Did total orders hold?
  • The 12 harvested campaigns you created — did they pick up impressions? At what cost?

Without the JSON, BulkSheet Pro has no way to attribute change to outcome. Two weeks of performance data is just two weeks of performance data — disconnected from what you actually did. With the JSON, every row in your new bulk sheet's diff is tied back to the decision that drove it.

This is the part of BulkSheet Pro that gets better the longer you use it. The JSON is the connective tissue.

Why three files, not one

Three files because each has a different audience that wants the data in a different shape.

Amazon's parser is strict. It only wants rows it knows how to act on, in the exact format it expects. A single mixed file would be rejected. The upload file has to be Amazon-shaped.

You are not strict. You want a summary you can scan, ideally one that doesn't make you read XLSX columns to understand what's going to happen. The summary file is you-shaped.

BulkSheet Pro itself is structured. It wants the changes plus the before-state plus the metadata in a queryable format. JSON is BulkSheet-Pro-shaped.

Putting all three in one file would force compromises. The Amazon parser would reject the summary rows. The human-readable summary would get buried inside the workbook structure. The JSON would have to be encoded somewhere weird. By separating the three, each file gets to be exactly what its audience needs — no compromises.

The naming convention reinforces this. UPLOAD_TO_AMAZON is for Amazon. BSP_SUMMARY_do_not_upload is for you. bsp_session is for BulkSheet Pro. Even at a glance, the right file goes to the right destination.

What BulkSheet Pro won't do

It won't auto-upload to Amazon. The upload file lands in your downloads folder. Amazon's API would technically allow integrated upload, but the strict separation gives you a chance to review the summary before you commit. The 30 seconds between download and upload is the moment to catch the rare bug, the misnamed campaign, the rule you forgot you had set.

It won't merge the three files. Even if you only want one — say, you don't care about the summary or the session JSON — all three are written every time. Better to have a file you ignore than to need a file you don't have.

It won't read the JSON without your asking. The session JSON only feeds back into BulkSheet Pro when you explicitly drop it into the upload card next session. There's no auto-sync, no cloud storage, no account-side history. The JSON is yours. If you delete it, the change-impact comparison feature simply doesn't appear next time.

The month that follows

You drag UPLOAD_TO_AMAZON_bulk_changes_20260514.xlsx into Amazon Ads. The bulk job processes. The 184 bid changes, 47 placement adjustments, 117 negatives, and 12 new campaigns all go live within an hour.

A month later you download the next bulk sheet. You open BulkSheet Pro, drop in the new sheet, and on a hunch you also drop in bsp_session_20260514.json from your downloads folder.

The Change Impact panel populates. The 184 bid changes you made are now annotated with their actual outcomes. The 12 new harvest campaigns each have their first month of data attached. The placement cuts are scored against the targets they were trying to hit.

The point of the three files isn't that BulkSheet Pro is generous with output. It's that each file does a different job: the upload commits the changes, the summary records what you did, and the JSON connects what you did to what happened. Without all three, the system doesn't close the loop.