How I Migrated 98 Amazon Ad SKUs in 30 Seconds (Free Tool Inside)
Switching from Amazon sticker barcodes to manufacturer barcodes breaks your ads. Here's how to fix all of them at once.
If you sell on Amazon long enough, you’ll eventually hit this: Amazon tells you to switch from their sticker barcodes (FNSKU) to manufacturer barcodes (UPC/EAN). Maybe you’re consolidating listings. Maybe Amazon is pushing you toward it. Either way, you comply.
Then your ads break.
Not visibly. Amazon won’t send you an alert. But your Sponsored Products and Sponsored Display campaigns are still pointing at the old SKUs — the ones tied to the sticker barcode. The new manufacturer barcode SKUs? They’re sitting there with zero ad coverage.
And if you have dozens of campaigns across multiple products, you’re looking at hours of manual bulk sheet editing to fix it.
I had exactly this problem last week. 98 Product Ad rows across 56 campaigns needed new SKUs. Here’s how I solved it in about 30 seconds.
The Problem
When you switch barcode types on Amazon, your SKU changes. For us, every SKU got an “A” suffix — XYZ/20 2 became XYZ/20 2A, CV112-60 became CV112-60A, and so on.
But Amazon doesn’t let you update a SKU on an existing Product Ad. From their own docs:
“You can’t update a SKU or ASIN, but you can pause or archive the associated product ad entity and then create a new one with the SKU or ASIN you want to add.”
So for every Product Ad in every campaign, you need to create a new row with the updated SKU. Manually, that means:
Download your bulk file from Amazon Advertising
Find every Product Ad row (buried among campaigns, ad groups, keywords, and targeting rows)
For each one, create a new row with the exact same Campaign ID, Ad Group ID, and the new SKU
Make sure you set Operation to “Create” and Entity to “Product Ad”
Handle the fact that Sponsored Products and Sponsored Display have different column layouts (Ad Group ID is column E in SP but column F in SD)
Upload the file and pray you didn’t miss anything
For 98 rows? That’s a full afternoon of error-prone spreadsheet work.
The Solution
I built a Python script that does all of this automatically. It reads your Amazon Advertising bulk download, finds every Product Ad row, and generates upload-ready files with the new SKUs.
Here’s what it does:
Reads your existing bulk file — the same
.xlsxyou download from Campaign Manager > Bulk OperationsFinds all Product Ad rows across Sponsored Products and Sponsored Display sheets
Generates new rows with the correct column mapping for each campaign type
Handles edge cases automatically — skips SKUs that already have the new suffix, filters out FBA error entries, avoids duplicates where the new variant already exists
Outputs two files: a full migration file and a single-campaign test file
The test file is key. Upload that first, verify the new Product Ad appears correctly in one campaign, then upload the full file once you’re confident.
What About Sponsored Brands?
This was an important discovery during the process. Sponsored Brands campaigns don’t use SKUs — they use ASINs. Your ASIN stays the same regardless of barcode type. So SB campaigns continue working without any changes.
Only Sponsored Products and Sponsored Display need migration.
The Numbers
For our account, the script found:
96 existing Product Ad rows across Sponsored Products
16 existing Product Ad rows across Sponsored Display
98 new rows generated (after excluding SKUs that already had the suffix, FBA errors, and duplicates)
0 manual edits required
Total time from running the script to having upload-ready files: about 30 seconds.
How to Use It
The tool is free and open source: github.com/BWB03/amazon-ads-sku-migration
pip install openpyxl
python generate_sku_migration.py your_bulk_download.xlsx --suffix AReplace A with whatever suffix your new SKUs use. The script auto-detects the best campaign for your test file, or you can specify one with --test-campaign.
The Recommended Workflow
Download your bulk file from Amazon Advertising (Campaign Manager > Bulk Operations)
Run the script — it generates a TEST file and a FULL file
Upload the TEST file (one campaign, one new row)
Wait 24-48 hours and verify the new Product Ad appears correctly in the Amazon console
Upload the FULL file once the test passes
Later: archive the old SKU Product Ads in a separate bulk operation
Step 6 is important but separate. Don’t rush it. Let the new ads run alongside the old ones until you’re confident everything is working.
Technical Details for the Curious
A few gotchas that the script handles so you don’t have to:
SP vs SD column differences. Sponsored Display uses column F for Ad Group ID and column P for State. Sponsored Products uses column E for Ad Group ID and column R for State. Get these wrong and Amazon will reject your upload or worse, create ads in the wrong ad groups.
Duplicate prevention. If you already have some new-SKU Product Ads live (maybe from a partial manual migration), the script checks each ad group and skips any where the new SKU already exists.
FBA error entries. Bulk downloads sometimes contain SKUs like FBA18LF1SBG2.Missing1. These are Amazon system artifacts, not real Product Ads. The script filters them out.
Header preservation. Amazon’s bulk upload is finicky about headers. The script copies headers exactly from your source file — same columns, same order, same casing.
This is the kind of operational work that eats up hours if you do it manually and takes seconds if you script it. The barcode transition itself is straightforward. The ad migration is where sellers lose time.
If you’re dealing with this, grab the tool: github.com/BWB03/amazon-ads-sku-migration
This post was written mostly by AI - I do this because it saves me time! - This message is real written By Brett Bohannon


