Drop your bulk sheet here or click to browse
Your data never leaves your browser
BulkSheet File Requirements
What to expect when uploading your Amazon Ads bulk sheet to BulkSheet Pro
✓ For best results, export your bulk sheet with these settings
File size guide
| Metric | ✓ Works great | ⚠ May be slow | ✗ Not supported |
|---|---|---|---|
| File size | Under 30MB | 30–50MB | Over 50MB |
| Active SP campaigns | Under 5,000 | 5,000–15,000 | Over 15,000 |
| SP sheet total rows | Under 100,000 | 100,000–150,000 | Over 150,000 |
| Date range | 30 days | 60 days | — |
The SP sheet row count includes campaigns, ad groups, keywords, negative keywords, product targets, and placement adjustments — not just campaigns. Accounts with many negative keywords accumulate rows quickly.
What happens if your file is too large?
BulkSheet Pro processes everything in your browser — no data is ever sent to a server. This means file size is limited by your device's available memory rather than a server limit.
If your Sponsored Products data fails to load, BulkSheet Pro will show a warning and continue with your Sponsored Brands and Sponsored Display data. The fix is almost always the same: re-export your bulk sheet excluding terminated campaigns.
Cross-Campaign Negation (Exact Match)
—| Search Term ↕ | Campaigns ↕ | Total Spend ↕ | Total Orders ↕ | Total Clicks ↕ | Total Impr ↕ | Appears In |
|---|
Cross-Campaign Negation (Phrase)
—| Word ↕ | Search Terms ↕ | Campaigns ↕ | Total Spend ↕ | Total Orders ↕ | Total Clicks ↕ | Example Terms |
|---|
Term Conflicts (SP)
—| Search Term ↕ | ▲ Winner Ad Group | ▼ Loser Ad Group | SKU(s) | ACoS | Orders | Loser Spend ↕ | Conf |
|---|
Search Term Patterns
—Any search term containing your exact phrase as a whole word or sequence of words will be blocked.
Example: negating "cheap" will block "cheap cooler" and "buy cheap" — but not "cheapest" since that is a different word.
⚠ Amazon inconsistently applies plural handling to phrase negatives — negating "cooler" may or may not block "coolers." Enter both forms to be safe.
Keep entries short and specific. A single common word could block a large number of searches.
New Campaign Settings
One campaign per selected pattern · override per-row in the table belowCampaigns to Create
| Campaign Name | Keyword | Match | SKU?How SKU is selected: Finds all ad groups where this pattern appeared in a converting search term. The ad group with the lowest ACoS is chosen as the best performer — its SKU(s) are shown here. If that ad group has one SKU, it is auto-selected. If it has multiple, you choose which to associate with the new campaign. |
Bid ($) | Budget ($) | Strategy | Status |
|---|
| Pattern ↕ | Occurrences ↕ | ACoS ↕ | Spend ↕ | Orders ↕ | Clicks ↕ | Example Terms |
|---|
Bulk Negate
Any search term containing your exact phrase as a whole word or sequence of words will be blocked.
Example: negating "cheap" will block "cheap cooler" and "buy cheap" — but not "cheapest" since that is a different word.
⚠ Amazon inconsistently applies plural handling to phrase negatives — negating "cooler" may or may not block "coolers." Enter both forms to be safe.
Keep entries short and specific. A single common word could block a large number of searches.
| Campaign | Type | Phrase terms | Exact terms |
|---|
Audience Placements
| Campaign | Audience | Percentage |
|---|
Campaigns
| Campaign | Placement | ACoS | Current % | New % | Change |
|---|
| Campaign ↕ | Status | ACoS ↕ | Budget ↕ | Budget Util ↕ | Bid Strategy | Impr ↕ | Clicks ↕ | Spend ↕ | Sales ↕ | CPC ↕ | Orders ↕ |
|---|
Bids
| Keyword | Match | ACoS | Current Bid | New Bid | Change |
|---|
| Keyword / Target ↕ | Bid ↕ | Status | Match | Campaign ↕ | Ad Group ↕ | ACoS ↕ | Orders ↕ | CVR ↕ | Impr ↕ | Clicks ↕ | Spend ↕ | Sales ↕ | CPC ↕ |
|---|
Negate Search Terms
| Search Term ↕ | Campaign ↕ | Ad Group ↕ | ACoS ↕ | Orders ↕ | Sales ↕ | Impr ↕ | Clicks ↕ | Spend ↕ | Recommendation |
|---|
🎯 New Sponsored Brands Campaigns
SB Multi Ad Group format · one campaign per keywordBSP reads your brand logo, brand entity ID, and creative assets directly from the SB campaigns in your bulk sheet. To use this feature:
SB Campaigns to Create
Names generated automatically · one campaign per keyword| Campaign Name | Ad Group | Keyword | Match | Bid ($) | Budget ($) | Status |
|---|
New Campaign Settings
Applied to all campaigns below · override per-row in the tableCampaigns to Create
Override individual rows below · Campaign/Ad Group names set automatically and may be changed later using the Rename Campaigns tool.| Campaign Name | Ad Group Name | Keyword | Match Type | SKU | Bid ($) | Budget ($) | Strategy | Status |
|---|
Harvest Search Terms
| Search Term ↕ | Campaign ↕ | Ad Group ↕ | ACoS ↕ | Orders ↕ | Sales ↕ | Impr ↕ | Clicks ↕ | Spend ↕ | CVR ↕ |
|---|
Products
| Status | SKU ↕ | ASIN ↕ | Campaign ↕ | Ad Group ↕ | ACoS ↕ | Orders ↕ | CTR ↕ | CVR ↕ | Impr ↕ | Clicks ↕ | Spend ↕ | Sales ↕ |
|---|
Upload up to 4 weekly Search Query Performance CSV files using the sidebar button.
Upload at least 2 weeks of SQP data to see trend charts.
Upload SQP data and a bulk sheet to see cross-data insights.
Auto Campaign Creator
Creates one campaign per SKU · exported as a standalone bulk sheetCampaigns to Create
Override individual rows below · delete rows you don't need| Campaign Name | Ad Group Name | SKU | Budget ($) | Default Bid ($) | Close Match ($) | Loose Match ($) | Substitutes ($) | Complements ($) | Strategy | Status |
|---|
Keyword Campaign Creator
Creates one campaign per SKU + keyword pair · exported as a standalone bulk sheetPairing Preview
0 pairs| # | SKU | Keyword | Status |
|---|
Campaigns to Create
Override individual rows below if needed| Campaign Name | Ad Group | SKU | Keyword | Match | Bid ($) | Budget ($) | Strategy | Status |
|---|
SP Product Targeting Campaign Creator
One campaign per SKU + target ASIN pair · exported as a standalone bulk sheetPairing Preview
0 pairs| # | SKU | Target ASIN | Status |
|---|
Campaigns to Create
Override individual rows below if needed| Campaign Name | Ad Group | SKU | Target ASIN | Bid ($) | Budget ($) | Strategy | Status |
|---|
SB Keyword Campaign Creator
SB Multi Ad Group format · one campaign per keyword · paste your own keyword listSB Campaigns to Create
One campaign per keyword · names generated automatically| Campaign Name | Ad Group | Keyword | Match | Bid ($) | Budget ($) | Status |
|---|
Build your rename list
Select from Campaigns and Ad Groups — you can select from both before exportingName Builder
Click to add · Drag to reorder · × to removeCampaigns
ASIN Coverage
Shows which campaign types each ASIN has activeTarget Coverage
Shows which campaign types each keyword target has activeIf any of these SKUs already have a paused campaign with the same name, Amazon will simply skip those rows during upload. Everything else will process normally and create as expected. You may see a “Finished with errors” report from Amazon in this case — this is expected behavior and nothing was changed or overwritten.
Contact Support
Send a message to the BulkSheet Pro teamStart Here
Controls how aggressively bids are moved toward your target ACoS in a single pass.
Gentle (0.05–0.15) — small, cautious moves. Best for stable campaigns you don't want to disrupt.
Moderate (0.25) — the default. Balanced moves that converge without overshooting.
Firm (0.40–0.50) — larger moves. Faster convergence but higher risk of disrupting a bid "sweet spot."
When in doubt, leave this at Moderate.
SB and SD campaigns often have different efficiency targets than SP. SB may justify a higher ACoS for brand awareness; SD retargeting may need a tighter target.
Leave blank to use the account default for all campaign types.
Branded keywords usually convert better and can justify a higher ACoS target. Enter words that appear in your brand name or trademarked terms and set a higher target — the optimizer will treat these more leniently.
e.g. my brand, brand name, trademark
Priority: keyword rules override the account default.
Target a different ACoS for every campaign whose name contains certain words. Useful when you run distinct campaign families with different efficiency goals — new-launch campaigns, branded defense, seasonal pushes, etc.
e.g. launch, new-prod, brand-defense
Applies to: every keyword, search term, and placement inside matching campaigns.
Priority: Campaign rules override keyword rules but are overridden by SKU rules.
Newly launched products need rank and reviews before profitability kicks in. Enter the SKUs you're actively launching and set a higher ACoS target so the optimizer doesn't cut their bids prematurely.
e.g. SKU-001, SHOE-RED-M
Priority: SKU rules override keyword rules — highest priority of all.
bsp_session_*.json from a prior export? Upload it to see how those changes performed.How Actions Are Determined
Every recommendation BulkSheet Pro surfaces is derived directly from your data — no black boxes, no guesswork. Each card below opens to show the exact logic, math, and worked examples behind that piece. Click a card to expand it; collapsed, the summary captures the gist.
How BSP Sees Your Data
Follow one example campaign through every layer BSP applies. You'll see exactly how your settings, the projection layer, reliability filters, and the routing decision combine to produce one specific recommendation.
First, BSP figures out what "on target" means for this campaign
BSP walks a hierarchy to find this campaign's target ACoS — most specific match wins. SKU rules first, then campaign-name rules, then keyword rules, then SP/SB/SD defaults, finally the account default. For Yoga Mats, no specific rule matches — so it inherits the account default of 28%. It also picks up the default Nudge Sensitivity of 0.25 (Moderate).
Did you tell BSP to skip this campaign entirely?
In Advanced Options, you can mark certain campaigns as "Exclude from optimization" — useful for Discovery campaigns, launch campaigns, or anything you want BSP to leave alone. Excluded campaigns get walled off from every rec engine and from account-level baselines (CPO, CVR, AOV) so the rest of your account gets optimized against accurate numbers. Yoga Mats isn't excluded, so it continues through.
If you've queued negates, BSP recomputes the world after they apply
This is the Projection Layer. When you queue search-term negates from the Rec Actions tab, BSP doesn't wait until you upload to update your bid recs — it projects ahead. Each negated search term's clicks, spend, sales, and orders are subtracted from its parent keyword. If you negated "free yoga mats" earlier (the search term that contributed $675 of spend with 0 orders to "yoga mats"), this keyword's projected ACoS drops from 54.9% to 44.6%. That gentler picture is what feeds the next steps — preventing overshoot from stacking corrections.
BSP cleans noisy data before acting on it
Sparse data lies. A placement with 22 clicks and 0 orders looks like infinite ACoS, but that's mostly bad luck. BSP applies Bayesian smoothing to placement CVR (pulling low-data placements toward a campaign-level prior), checks the min-orders validity gate (≥ 20 clicks AND ≥ 2 orders to participate in routing), and applies the CPC safeguard (caps bid increases on keywords that already overpay per click). Yoga Mats has plenty of data, so all three placements pass the validity gate.
Now BSP decides: bid change, placement change, or both?
Bids and placement multipliers interact mechanically — final auction bid is bid × placement multiplier. Adjusting both at full strength can compound the move and overshoot. BSP's diagnostic gate picks the right lever based on how many keywords this campaign has. Yoga Mats has 3 keyword targets, so it goes through the Multi-Keyword Path: bids are the default, but placements also fire when one is "clearly bad" against the loosest target × 1.5. Top of Search at 95% ACoS > 28% × 1.5 = 42%, so that's clearly bad.
Here's what shows up in your queue
Two recs fire for this campaign, each scaled by 0.5× to prevent compounding: (1) Bid rec — pull "yoga mats" from $3.18 to $3.03 (gentler than the un-projected $2.99 because of the negate cleanup). (2) Placement rec — reduce the Top of Search multiplier so BSP shifts spend toward better-performing placements. Both go into your Optimization Queue, where you can review them individually before exporting the bulk sheet.
Confidence Scoring
Only high-confidence actions show by default. The threshold scales to your account economics — $50 means different things to a $10 impulse seller and a $500 premium seller, so BSP uses a "patience budget" instead.
Every candidate action gets scored before it reaches you. High confidence is the default filter — actions below that are visible if you toggle the filter, but the system never recommends them by default.
Bid & negate — the patience budget
Account CPO = Total Spend ÷ Total Orders. Multiplied by your target ACoS, this is one conversion's worth of spend at goal efficiency. Think of it as "one unit of patience" for a single keyword.
Patience = $3 × 30 ÷ 100 = $0.90 → HIGH threshold = spend ≥ $9.00
Example B — premium seller: Account CPO = $75, Target ACoS = 15%
Patience = $75 × 15 ÷ 100 = $11.25 → HIGH threshold = spend ≥ $112.50
Harvest confidence — search terms to promote
Target ACoS Hierarchy
BSP resolves the right target ACoS for each row by walking a hierarchy: SKU rule → keyword rule → campaign-type rule → account-level target. The most specific match wins.
Different products have different margins. A premium SKU at 15% target ACoS shouldn't be judged against a discovery SKU at 40% target. BSP looks up the target ACoS for each row in this order, taking the first one that matches:
- SKU rule — most specific. Set per-SKU on the Settings page.
- Keyword rule — applies to a specific keyword or product target.
- Campaign-type rule — applies to all SP / SB / SD campaigns.
- Account-level target — the universal default.
A bid rec for the "skin care moisturizer" keyword in an SP campaign on SKU SK-001 uses target = 15% (SKU is most specific).
Statistical Reliability Layer
Three guards prevent BSP from acting on noise: Bayesian CVR smoothing on placements with little data, a minimum-orders gate for placement validity, and a CPC safeguard against raising bids on already-overpaying keywords.
Placements and keywords with sparse data can produce wildly misleading metrics — a placement with 22 clicks and 0 orders looks like infinite ACoS, but that's mostly bad luck rather than real signal. Three reliability layers pull noisy metrics toward sensible defaults so the rec engine doesn't churn on statistical artifacts.
1. Bayesian CVR smoothing on placements
The prior CVR is the campaign's own CVR if the campaign has ≥ 50 clicks AND ≥ 5 orders; otherwise it's the account-wide CVR. The prior weight = 25 means the placement's own data starts to dominate around 30 clicks. A placement with 25 clicks and 0 orders gets smoothed to roughly the campaign's CVR rather than 0% — preventing infinite-ACoS recommendations on early data.
Raw ACoS: undefined (division by zero). Smoothed CVR = (0 + 0.05 × 25) ÷ (25 + 25) = 2.5%.
Smoothed sales = 0.025 × 25 × $50 AOV = $31.25. Smoothed ACoS = $50 ÷ $31.25 = 160% — still bad, but a sane number to act on.
2. Minimum orders gate for placement validity
A placement only participates in the diagnostic gate's routing decision if it has ≥ 20 clicks AND ≥ 2 orders. The clicks floor was already in BSP; the orders floor is new. Placements below this don't generate recs and don't influence the bid-vs-placement routing.
3. CPC safeguard on bid increases
The math-efficient ceiling for a keyword's CPC. If the current CPC already exceeds this ceiling, BSP will never recommend bidding higher — even if the keyword's ACoS reads as "below target" due to a few cheap clicks. In that case, the safeguard caps the new bid at currentBid × 0.90 (a 10% pullback) instead.
Diagnostic Gate — Bids vs Placements
When a campaign needs work, BSP decides whether to fire a bid change (Action 3), a placement adjustment (Action 4), or both. The routing depends on how many keyword targets the campaign has and how broken each lever is.
Bids and placement multipliers interact mechanically — final bid in any auction is bid × placement multiplier. Recommending both at once at full strength tends to overshoot, because each adjustment is sized as if it's the only thing changing. The gate routes intelligently to prevent compounded overshoot.
Tier 2 safety rules — run first, in every campaign
- Safety A — "Don't scale bad traffic": if total campaign ACoS > target × 1.10 AND every placement is also above target, the problem is the campaign as a whole, not allocation. Fire bid only (downward).
- Safety B — "Don't reduce good traffic": if total campaign ACoS < target × 0.90 AND every placement is also below target, the campaign is broadly underspending. Fire bid only (upward).
If neither safety rule fires, routing branches based on how many enabled keyword/product targets the campaign has.
Single-keyword-target campaigns — gap comparison
When a campaign has just one keyword/target, both levers are judged against the same target. BSP measures how broken each lever is by computing a gap — the worst ACoS deviation from target — and routes to whichever is bigger:
place_gap = max( │ACoS − target│ ) over valid placements (≥ 20 clicks AND ≥ 2 orders)
- No qualifying placement → bid is the only available lever
- Tied gaps (within 10pp) → bid wins by default. Exception: if a placement is bleeding (consuming ≥ 10pp more spend share than its sales share), the imbalance signal flips it — placement wins
- Otherwise the larger gap wins; the other lever is suppressed
Multi-keyword-target campaigns — bids default, placements only when clearly bad
When a campaign has 2+ keyword/product targets, the placement multiplier affects all of them simultaneously, and they may have different performance. The routing becomes more conservative about touching placements:
For each valid placement: clearly bad if placement.ACoS > loosest_target × 1.5
- If any placement is clearly bad → both levers fire together, with each nudge scaled by 0.5 to prevent compounded overshoot
- If no placement is clearly bad → fire bid only, suppress placement
- No tie band, no imbalance signal in this branch — the strict 1.5× test is the only trigger
The 0.5× scaling means a bid that would have moved $1.50 → $1.30 now moves $1.50 → $1.40, and a placement that would have moved 80% → 70% now moves 80% → 75%. Each lever contributes equally to the fix instead of compounding. The CPC safeguard always fires at full strength regardless of dual-fire scaling.
Worked example — single-keyword campaign
Keyword ACoS = 50% → bid_gap = 22
Top of Search ACoS = 100% (85 clicks, 4 orders)
Product Pages ACoS = 30% (40 clicks, 3 orders)
→ place_gap = max(72, 2) = 72
place_gap > bid_gap, gap diff = 50 (above tie band) → Placement rec only this cycle
Worked example — multi-keyword campaign
loosest_target = 28%, clearly-bad threshold = 28 × 1.5 = 42%
One keyword has 75% ACoS (bid rec qualifies)
Top of Search ACoS = 70% → 70 > 42, clearly bad ✓
Product Pages ACoS = 30% → not clearly bad
→ Both fire — bid rec for the 75% keyword (0.5× scaling), placement rec for Top of Search (0.5× scaling)
Projection Layer — Post-Negate Recs
When you queue search-term negates, BSP projects the post-negate world before computing dependent recs. Bid and placement recommendations reflect what performance will look like after your negates apply — preventing overshoot from stacking corrections that solve the same problem.
Most ad optimizers treat each rec independently — they don't model how your queued actions affect each other. BSP does. When you queue a search-term negate, the parent keyword's metrics will change once that negate applies (lower spend, possibly lower clicks, same or higher sales). BSP recomputes bid and placement recs against those projected metrics so you don't end up double-correcting.
What gets adjusted
For each negated search term, BSP subtracts its full clicks/spend/sales/orders from:
- The parent keyword/target that produced it (matched by campaign + ad group + keyword text — covers all target types: keyword, ASIN, expression, audience)
- The placement aggregates for that campaign, allocated proportionally by each placement's share of campaign spend (since search term reports don't expose which placement a click came from, proportional allocation is the best available model)
After subtraction, ACoS, CPC, and CVR are re-derived from the adjusted totals. Every bid rec, every placement rec, and the diagnostic gate's routing decision uses these projected metrics instead of raw metrics.
What this means in practice
- When you queue a bad search term, the parent keyword's projected ACoS drops
- Its bid rec gets gentler — closer to current bid, since the negate cleanup already does some of the work
- If projected ACoS lands within the 5% tolerance band, the bid rec disappears entirely
- Placement aggregates also shift, which can change the diagnostic gate's routing decision for that campaign
Worked example
Initial bid rec: raise to $4.35 (underspending)
Queue search term "tahoebay blank beer can cooler sleeves" as negate (0 orders, $88 spend)
Projected: ACoS drops to 7.9% (the negate removed bad spend)
→ Bid rec updates to $6.36 — bigger raise, since post-negate the keyword is much further below target
Scope — only Negate Terms rec actions feed projections
The projection layer only models negates queued from the Negate Terms → ⚡ Rec Actions tab, where the workflow naturally happens. Other negate sources are intentionally excluded:
- Pauses — multi-SKU ad groups can't be cleanly attributed; single-SKU pauses make optimization moot anyway
- Bulk Negate / Bulk Negate Phrase — outside the normal optimization routine
- Cross-campaign negation — small effect at the per-rec level, complexity not worth it
- Search Term Patterns — outside the normal optimization routine
Workflow protection — the going-back guardrail
If you've already staged bid or placement recs and then go back to the Negate Terms rec actions tab to queue more negates, BSP shows a modal asking how to handle the inconsistency:
- Apply negates, keep bid/placement recs as-is — accept that recs may now be slightly off (they were sized against the pre-negate world)
- Remove queued bids & placements, apply negates — wipe the bid and placement queues so you can re-stage from scratch with fresh projection-aware recs
- Cancel — close modal, don't apply
Following the natural workflow (negates → placements → bids) avoids this modal entirely. It only fires when you go backward, which is the moment friction is appropriate.
⊘ Negate Search Terms
Block search terms that are clearly wasting money — either spending past the patience budget with no orders, or converting at 4× target ACoS or worse.
A search term qualifies for negation when its ACoS is far above target, OR when it's accumulated meaningful spend without any orders. The thresholds are deliberately strict — negation is destructive (the term can't show again in that ad group), so BSP only negates when the case is unambiguous.
Triggers (either condition)
- Zero orders, spend over patience: orders = 0 AND spend > 7 × patience budget. The 7× multiplier matches "seven units of patience burned" — a clear signal the term won't convert.
- Has orders but ACoS too high: orders > 0 AND ACoS > target × 4. Even with conversions, ACoS this far above target is unrecoverable through bid tuning alone.
Action
Add the search term as an exact-match negative keyword in its ad group. The term stops showing in that ad group; same term can still appear in other ad groups unless cross-campaign negation also fires (Action 2).
⊘ Cross-Campaign Negation
Block search terms that are wasting money in multiple campaigns simultaneously — these are typically broad-match accidents that need negating across the whole account.
Some search terms appear in multiple campaigns at once — usually because broad-match keywords pulled them in independently. When a term is wasting money across ≥ 2 campaigns, negating it in just one ad group leaves the bleed running elsewhere. This rec catches that.
Eligibility
- Same search term appears in ≥ 2 distinct campaigns
- Triggers either: zero orders + spend > 7 × patience budget, OR ACoS > target × 4 (same triggers as Action 1, but evaluated on combined cross-campaign totals)
Action
Add as an exact-match negative in every ad group where the term has appeared. One queued action covers all the duplicate negation work.
⌗ Bid Adjustments
Move each keyword or product target's bid proportionally toward target ACoS using the Gentle Nudge formula. Works across SP, SB, SBM, and SD bids. Small moves that compound, not single-cycle full corrections.
Bid adjustments cover any enabled keyword or product target with a bid — across Sponsored Products, Sponsored Brands, SB Multi Ad Group, and Sponsored Display campaigns. Only entities with actual spend, a recorded ACoS, and a non-trivial deviation from target are considered. Keywords within 5% of target (either side) are skipped — that tolerance band prevents micro-adjustments around already-good positions.
The Gentle Nudge formula
New Bid = Current Bid × (1 − nudge_pct)
- Sensitivity is the Bid Nudge slider (default 0.25 = "Moderate")
- The move is proportional — a keyword far above target gets a larger absolute move than one slightly above
- Bids are floored at $0.02 (Amazon's minimum)
- The CPC safeguard caps any bid increase if current CPC already exceeds the math-efficient ceiling (see Reliability Layer)
nudge_pct = ((42 − 28) ÷ 42) × 0.25 = 0.0833.
New Bid = $1.50 × (1 − 0.0833) = $1.38.
A 8.3% drop, not the full 33% gap. Next cycle closes more if needed.
Why not just set the "correct" bid directly?
Amazon's auction is dynamic. A theoretically-correct bid today can overshoot tomorrow as competition shifts. Nudging in proportional steps converges gradually — preserving "sweet spot" positions where a single large jump could collapse impression share that took weeks to build.
◈ Placement Adjustments
Tune per-placement bid multipliers — including AMC audience placements — toward their target ACoS using the same Gentle Nudge formula as bids, but applied to multipliers.
Placement adjustments operate on all placement types present in your bulk sheet, including AMC audience placements. The math is type-agnostic — any placement record with the right shape (multiplier, clicks, orders, ACoS) is eligible. New placement types Amazon adds in the future will be picked up automatically.
Eligibility — the validity floor
- ≥ 20 clicks AND ≥ 2 orders — below this, the ACoS reading is too noisy to act on (see Reliability Layer for the smoothing math)
- Not in the legacy "Sponsored Brands Campaigns" sheet (Amazon doesn't accept placement adjustments via that sheet)
- Resolved target ACoS exists for the placement's campaign
The Gentle Nudge formula (mirrors bids)
nudge_pct = (diff ÷ Placement ACoS) × Sensitivity
New Multiplier % = Current Multiplier % × (1 − nudge_pct)
- Multipliers are clamped to 0% – 900% (Amazon's allowed range)
- Result is rounded to the nearest whole percent
diff = 27, nudge_pct = (27 ÷ 55) × 0.25 = 0.1227.
New Multiplier = 80% × (1 − 0.1227) = 70%.
Bid × multiplier interaction
⊕ Harvest Search Terms
Promote search terms that are converting at half your target ACoS or better — turning unintended winners into intentional, exact-targeted campaigns.
When a search term is consistently outperforming target inside a broad/auto campaign, the smart move is to break it out as its own exact-match keyword in a dedicated campaign. That gives you direct control over its bid and isolates its budget from the noisier parent campaign.
Eligibility
- Search term has at least 2 orders
- ACoS ≤ target × 0.5 (performing at half target or better)
- OR: orders ≥ 2 with ACoS unattributed (still harvest-worthy on click pattern alone)
- Not in an exact-match or negative-exact ad group (already promoted)
High confidence requires ≥ 5 orders on the search term.
Action
Create a new Sponsored Products campaign targeting the search term, with SKU pre-filled from the best-performing ad group for that term. You set the campaign name, budget, and bids before the action queues.
◫ Search Term Patterns
Spot recurring two- or three-word patterns across many search terms — both the worst (negate the pattern across all ad groups) and the best (harvest as a new keyword).
Sometimes the issue isn't a single search term — it's a phrase that appears in dozens of variations, all of them bleeding (or all of them converting). BSP analyzes 2-word and 3-word patterns across the search term report and flags both ends.
- Bigrams & trigrams only — single words are too broad to negate safely
- High confidence: pattern appears in ≥ 5 search terms, total spend ≥ $10, AND ACoS > 2× target (or zero orders + spend over half-an-order's-cost)
- Action: phrase-negate the pattern in every ad group where it appeared
- Bigrams & trigrams only — single words are too generic to build campaigns around
- High confidence: pattern appears in ≥ 5 search terms, total spend ≥ $10, ACoS ≤ 50% of target, AND ≥ 1 order
- Action: create a new campaign targeting the pattern as a keyword in your chosen match types
⏸ Consider Pausing (Products)
Flag products whose ad performance suggests the listing itself — not just the targeting — is the problem. Stricter thresholds than other actions because pausing is destructive.
Pausing a product ad stops the product from showing in that campaign entirely. The thresholds here are deliberately stricter than for negate/bid recs — only products that almost certainly won't recover from term-level tweaks alone are flagged.
Triggers (either)
- Zero orders AND spend > 10× patience budget (vs 7× for negation)
- Has orders AND ACoS > target × 6 (vs 4× for negation)
What "Safe to Apply" Actually Means
Statistically grounded, proportional rather than aggressive, conservative thresholds, and fully reversible — nothing leaves your computer until you upload the bulk file yourself.
"Safe to apply" doesn't mean every metric will improve overnight. It means:
- Statistically grounded — every high-confidence action cleared both a click threshold and a spend threshold scaled to your account economics. Plus the reliability layer (Bayesian smoothing, min-orders gate, CPC safeguard) prevents acting on noise.
- Proportional, not aggressive — bid changes use a nudge model, not full corrections. No single change craters impression share.
- Conservative thresholds — negation requires 4× overshoot (not 1.1×), harvest requires 50%-of-target ACoS (not just any conversion).
- Smart lever routing — the diagnostic gate decides whether to fire bids, placements, or both, based on how many keyword targets the campaign has and how broken each lever is. When both fire, each is scaled by 0.5 to prevent compounding.
- Recs react to queued negates — the projection layer recomputes bid and placement recs against the post-negate world, so you don't stack corrections that overshoot.
- Reversible — every change goes into the Optimization Queue first. You review, undo individual items, export when satisfied. Nothing reaches Amazon until you upload the file yourself.