Skip to content

Adjust bids

Bid adjustment is the biggest lever for moving ACoS toward your target. This category covers 7 patterns: lowering and raising bids at the keyword level, weighted adjustments across keywords / ASINs / auto targets, following Amazon’s suggested bid, and placement multipliers.

  • “I want to lower bids on keywords with high ACoS”
  • “I want to adjust bids across keywords, ASINs, and auto campaigns together”
  • “I want to follow Amazon’s suggested bid”
  • “I want to raise bids where IS% has headroom”
  • “I want to optimize placement multipliers by CVR per placement”

Prompt 1: ACoS-based bid reduction (keywords)

Section titled “Prompt 1: ACoS-based bid reduction (keywords)”

Safely lower bids on keywords where ACoS is above target, with clear justification.

  • You want to lower bids on keywords running above target ACoS
  • You want a list of keywords that have room to be lowered against your target ACoS
  • You want to trim wasted ad spend
Against an ACoS target of {{TARGET_ACOS}}, recent ACoS is trending at {{RECENT_ACOS}}.
Using the most recent finalized week, with min_clicks 10 and excluding zero-sales keywords,
list keywords with room to lower the bid, including Suggested bids.

Placeholders:

PlaceholderDescriptionDefault source
{{TARGET_ACOS}}Target ACoS (e.g., 15%)Auto-referenced from Monthly KPI targets
{{RECENT_ACOS}}Recent actual ACoS (e.g., 18%)Auto-referenced from dashboard KPI
  1. Filter target keywords — Finalized-week data × min_clicks 10 or more × exclude zero-sales
    • Why finalized week: Trend judgments on unfinalized weeks are unstable because data isn’t complete
    • Why min_clicks 10: Keywords with few clicks have low judgment accuracy and high risk of misclassification from insufficient data
    • Why exclude zero-sales: To avoid divide-by-zero accidents when sales = 0 (negative-candidate handling is covered in a separate prompt)
  2. Compute the Suggested bid — Current bid × (target ACoS ÷ actual ACoS)
  3. Floor at 1 JPY — Clamp results below 1 JPY to 1 JPY (prevents invalid bids)
  4. Return an approval table — 4 columns: count, current bid, Suggested bid, expected ACoS

Recommended bid changes: 12 items

KeywordCurrent bidSuggested bidExpected ACoS
amino acid shampoo¥95¥7814.2%
refill shampoo¥110¥8814.8%
…(10 more)…

Estimated monthly ad-spend reduction of ~¥48,000 across all 12 items. Reply “execute” to apply. To approve only certain items, say e.g. “execute item 1 only”.

  • Change magnitude is auto-clamped at a -30% floor (prevents abrupt swings)
  • Nothing is applied unless you explicitly say “execute” (no changes until approved)
  • The Suggested bid floor is 1 JPY (prevents invalid values)
  • Each suggestion has a 1-hour validity window; after that you’ll need to regenerate
  • Rollback can be restored from bid history (contact support)
PhaseStatusConditions
Phase 1 (current)One-shotAvailable with just Picaro connection
Phase 2 (Q3 2026)Daily executionMonthly KPI target registered + saved-prompt enabled
Phase 3 (Q4 2026)Auto-execute (approval-flow)Slack 1-click approval, weekly, up to 100 items/week
Phase 4 (2027)Fully automatedML confidence ≥ 0.85, within guardrails

Q: How are zero-sales keywords handled? A: They are excluded by this prompt. To pause or negative them, use Prompt 3.

Q: Can I execute only part of the list? A: Yes. Specify by number, e.g. “execute only items 1 and 3”.


Prompt 2: Unified optimization across all targets (keywords + ASINs + auto, weighted)

Section titled “Prompt 2: Unified optimization across all targets (keywords + ASINs + auto, weighted)”

Review keywords, ASINs, and auto targets together, returning Suggested bids weighted by the confidence of each match type.

  • You want to adjust bids across keywords, ASINs, and auto campaigns together
  • You want to push Exact match harder while easing back on Broad
  • You want to optimize bids with different weights per match type
Using the most recent finalized week, against a target ACoS of {{TARGET_ACOS}},
review bids across all targets (keywords, ASIN targets, and auto targets).
With min_clicks 10 and min_orders 1 or more, weight Exact match at {{EXACT_WEIGHT}}x
and Broad match at {{BROAD_WEIGHT}}x and return Suggested bids.

Placeholders:

PlaceholderDescriptionDefault source
{{TARGET_ACOS}}Target ACoS (e.g., 15%)Auto-referenced from Monthly KPI targets
{{EXACT_WEIGHT}}Multiplier applied to Exact match (e.g., 1.1)Default 1.1 (Exact has high confidence)
{{BROAD_WEIGHT}}Multiplier applied to Broad match (e.g., 0.9)Default 0.9 (Broad is for discovery)
  1. Aggregate across all targets — Unify keywords, ASIN targets, and auto targets into a single table
    • Why unify: ACoS plays out differently per target type even within the same campaign, so cross-target comparison lets you optimize allocation
  2. Volume cutoff — Filter by min_clicks 10+ and min_orders 1+
    • Why min_orders 1+: Don’t raise bids on targets with zero orders (prevents over-investment)
  3. Weight by match type — Exact = high confidence (push harder), Broad = exploratory (ease back)
  4. Clamp change magnitude — Cap at +20% / -30% per adjustment
    • Why +20% / -30%: Prevents abrupt swings per adjustment and keeps impact observable
  5. Return an approval table — 5 columns: target type, match type, current bid, Suggested bid, expected ACoS

Recommended bid changes: 28 items (keywords 18 / ASINs 6 / auto 4)

TargetTypeCurrent bidSuggested bidExpected ACoS
amino acid shampoo (Exact)Keyword¥95¥8214.5%
B0XXXXXXXXASIN¥120¥9615.1%
close-match (auto)Auto¥85¥7214.9%
…(25 more)…

Exact match weighted 1.1x and Broad weighted 0.9x. Reply “execute” to apply.

  • Change magnitude is auto-clamped at +20% / -30% (prevents abrupt swings)
  • Nothing is applied unless you explicitly say “execute”
  • Suggested bid floor is 1 JPY
  • Each suggestion has a 1-hour validity window
  • Rollback can be restored from bid history (contact support)
PhaseStatusConditions
Phase 1 (current)One-shotAvailable with just Picaro connection
Phase 2 (Q3 2026)Weekly / dailyMonthly KPI target registered + saved-prompt enabled
Phase 3 (Q4 2026)Auto-execute (approval-flow)Slack 1-click approval, weekly, within cap
Phase 4 (2027)Fully automatedML confidence ≥ 0.85, within guardrails

Prompt 3: Carve out zero-sales targets as negative candidates

Section titled “Prompt 3: Carve out zero-sales targets as negative candidates”

Surface targets that are getting clicks but no sales as exclusion candidates — rather than lowering their bid.

  • You want to stop targets that have clicks but zero sales
  • You want to negative out search terms eating clicks for no return
  • You want to clean up non-converting targets
From the most recent finalized week, with min_clicks {{MIN_CLICKS}}+ and zero sales,
carve out targets into a separate list of negative-keyword candidates.
Run zero_sales_action in negative_candidate mode.

Placeholders:

PlaceholderDescriptionDefault source
{{MIN_CLICKS}}Minimum clicks to include (e.g., 10)Default 10
  1. Extract candidates — Finalized-week × min_clicks 10+ × sales = 0
    • Why min_clicks 10: With too few clicks there’s not enough signal — this prevents accidentally excluding targets that are actually working
  2. Separate from bid adjustments — Carve out as a dedicated negative-candidate list
    • Why separate: If mixed into the default bid-reduction mode, they’d surface as “-30%” suggestions and the targets you should actually stop would linger
  3. Hand off to negative keyword addition — Post-approval execution flows through the standard Add negative keywords workflow

Negative keyword candidates: 8 items

TargetTypeClicksSpendSales
bulk shampoo (Broad)Keyword24¥1,920¥0
B0XXXXXXXXASIN18¥1,440¥0
…(6 more)…

¥9,800 of ad spend in the most recent finalized week produced no sales. To convert these to negatives, proceed to Add negative keywords.

  • Only carves out the list — does not auto-register negatives
  • Lowering min_clicks increases false positives — verify item counts are reasonable before changing
  • Each suggestion has a 1-hour validity window
  • Rollback after negative registration is handled via the Amazon Ads console or Add negative keywords
PhaseStatusConditions
Phase 1 (current)One-shotAvailable with just Picaro connection
Phase 2 (Q3 2026)Daily executionMonthly KPI target registered + saved-prompt enabled
Phase 3 (Q4 2026)Auto-execute (approval-flow)Slack 1-click approval, weekly, up to 50 items/week
Phase 4 (2027)Fully automatedML confidence ≥ 0.85, within guardrails

Prompt 4: Follow Amazon’s Suggested bid trend

Section titled “Prompt 4: Follow Amazon’s Suggested bid trend”

For targets without enough actual ACoS data, propose stable trend-following bid changes based on the time series of Amazon’s Suggested bid.

  • You want to align with Amazon’s Suggested bid
  • You want to judge by market bid trends rather than ACoS
  • You want to move bids on new campaigns where actual ACoS isn’t available yet
Using recent weekly data, look at the time series of Amazon's Suggested bid
and propose candidates whose bid should follow the suggestion.
Use min_trend_points {{MIN_TREND_POINTS}}+ and volatility under {{VOLATILITY_LIMIT}};
skip anything with high volatility.

Placeholders:

PlaceholderDescriptionDefault source
{{MIN_TREND_POINTS}}Minimum data points required for trend judgment (e.g., 3)Default 3
{{VOLATILITY_LIMIT}}Volatility ceiling for skip judgment (e.g., 30%)Default 30%
  1. Fetch the Suggested bid time series — Collect weekly history of Amazon’s Suggested bid
    • Why not look at actual ACoS: So this works on ramping campaigns too — judgment is based on a market-derived reference value
  2. Data-point cutoff — Require min_trend_points 3+
    • Why 3: Excludes targets with too little data and keeps trend judgments reliable
  3. Volatility check — Skip volatility ≥ 30%
    • Why skip: Following whipsawing targets would make your bid whipsaw too, defeating the stable-following goal
  4. Stepwise following — For uptrends, propose gradual increases

Suggested bid follow candidates: 9 items

TargetCurrent bidSuggested bid (recent)TrendRecommended action
amino acid shampoo (Exact)¥95¥1184 weeks rising+15% raise
B0XXXXXXXX¥120¥102Gentle decline-10% lower
…(7 more)…

Skipped 3 items with volatility ≥ 30%. Reply “execute” to apply.

Details: Amazon Suggested bid trend analysis

  • Change magnitude is auto-clamped at +20% / -30%
  • Targets with volatility ≥ 30% are auto-skipped
  • Nothing is applied unless you explicitly say “execute”
  • Each suggestion has a 1-hour validity window
  • Rollback can be restored from bid history
PhaseStatusConditions
Phase 1 (current)One-shotAvailable with just Picaro connection
Phase 2 (Q3 2026)Daily executionMonthly KPI target registered + saved-prompt enabled
Phase 3 (Q4 2026)Auto-execute (approval-flow)Slack 1-click approval, weekly, within cap
Phase 4 (2027)Fully automatedML confidence ≥ 0.85, within guardrails

Prompt 5: Bid optimization by top-of-search IS% and CVR

Section titled “Prompt 5: Bid optimization by top-of-search IS% and CVR”

Combine missed top-of-search impressions (IS% headroom) and week-over-week CVR change to simultaneously surface keywords whose exposure should grow and those whose bids should shrink.

  • You want to raise bids on keywords with Impression share headroom
  • You want to lower bids on keywords whose CVR is dropping
  • You want to capture more top-of-search share
Using the most recent finalized week (Sun–Sat), compare top-of-search
Impression share and CVR week-over-week and propose bid changes.
With min_clicks 10 and min_impressions {{MIN_IMPRESSIONS}}+, raise bids on
keywords with IS% headroom and lower bids on keywords with falling CVR.

Placeholders:

PlaceholderDescriptionDefault source
{{MIN_IMPRESSIONS}}Minimum impressions to qualify (e.g., 50)Default 50
  1. Force finalized week (Sun–Sat) — Exclude unfinalized weeks
    • Why finalized week: Prior-period data isn’t complete on unfinalized weeks, so trend judgment fails — WoW comparison only works on finalized data
  2. Cutoffs — min_clicks 10+ and min_impressions 50+
    • Why min_impressions 50: Impression share calculations lose precision when the denominator is small
  3. IS% × CVR combined judgment
    • Keywords with IS% headroom (missed impressions) → Raise bids for more exposure
    • Keywords with falling WoW CVR → Lower bids for better efficiency
  4. Change magnitude clamp — Cap at +30% / -20%
    • Why +30% / -20%: Operationally, push harder for exposure gains while easing CVR drops gradually

IS% / CVR bid adjustments: 14 items

KeywordCurrent bidTop-of-search IS%CVR WoWRecommended action
amino acid shampoo¥9532%+5%+25% raise
refill shampoo¥11078%-18%-15% lower
…(12 more)…

8 raises / 6 reductions. Reply “execute” to apply.

Details: Top-of-search Impression share optimization

  • Change magnitude is auto-clamped at +30% / -20%
  • Cannot run outside a finalized week (Sun–Sat) — a precondition for WoW comparison
  • Nothing is applied unless you explicitly say “execute”
  • Each suggestion has a 1-hour validity window
  • Rollback can be restored from bid history
PhaseStatusConditions
Phase 1 (current)One-shotAvailable with just Picaro connection
Phase 2 (Q3 2026)Daily executionMonthly KPI target registered + saved-prompt enabled
Phase 3 (Q4 2026)Auto-execute (approval-flow)Slack 1-click approval, weekly
Phase 4 (2027)Fully automatedML confidence ≥ 0.85, within guardrails

Prompt 6: Auto-tune placement multipliers from CVR ratio

Section titled “Prompt 6: Auto-tune placement multipliers from CVR ratio”

Compare CVR per placement (top-of-search, product pages, etc.) against the campaign average and propose multipliers that lean into the higher-performing placements.

  • You want to raise the top-of-search multiplier
  • You want to weight by placement-level CVR
  • Your product-page efficiency is poor and you want to lower its multiplier
Using recent daily data, compare CVR per campaign × placement against the overall
average and propose placement multiplier changes.
Use min_clicks {{MIN_CLICKS}}+ and skip anything whose recommended-vs-current difference
is under {{SKIP_THRESHOLD}}.

Placeholders:

PlaceholderDescriptionDefault source
{{MIN_CLICKS}}Minimum clicks to qualify (e.g., 10)Default 10
{{SKIP_THRESHOLD}}Skip threshold for small differences (e.g., 5%)Default 5%
  1. Aggregate CVR by placement — Compute CVR per placement on daily data
    • Why daily data: Placement-level metrics require daily granularity
  2. Compare against campaign average — Lean into placements with above-average CVR
  3. Cutoff — min_clicks 10+
    • Why min_clicks 10: Low-click placements have noisy CVR — this prevents misclassification
  4. Skip small differences — Skip if recommended-vs-current diff < 5%
    • Why skip <5%: Sub-5% changes are within learning-noise range and frequent micro-adjustments cause whipsaw
  5. Multiplier range — Compute within 0–900%

Placement multiplier adjustments: 6 items

CampaignPlacementCurrent multiplierSuggested multiplierCVR vs campaign avg
SP - amino acid shampooTop of Search0%50%+62%
SP - amino acid shampooProduct Pages30%0%-45%
…(4 more)…

Skipped 3 suggestions whose diff was under 5%. Reply “execute” to apply.

  • Multipliers are auto-clamped within 0–900%
  • Suggestions with diff under 5% are auto-skipped (noise filter)
  • Nothing is applied unless you explicitly say “execute”
  • Each suggestion has a 1-hour validity window
  • Rollback is possible by setting 0% via Prompt 7
PhaseStatusConditions
Phase 1 (current)One-shotAvailable with just Picaro connection
Phase 2 (Q3 2026)Daily executionMonthly KPI target registered + saved-prompt enabled
Phase 3 (Q4 2026)Auto-execute (approval-flow)Slack 1-click approval, weekly
Phase 4 (2027)Fully automatedML confidence ≥ 0.85, within guardrails

Prompt 7: Manual placement multiplier / rollback

Section titled “Prompt 7: Manual placement multiplier / rollback”

Directly set the placement multiplier to an arbitrary value for one campaign × one placement (including rollbacks of past adjustments).

  • You want to reset the top-of-search multiplier to 0%
  • You want to roll back a past placement adjustment
  • You want to manually set a multiplier on a specific campaign
For account_id {{ACCOUNT_ID}}, campaign_id {{CAMPAIGN_ID}}, set the placement multiplier
of "{{PLACEMENT_TYPE}}" to {{PERCENTAGE}}%.
(Use 0 for rollback, 1 for testing.)

Placeholders:

PlaceholderDescriptionDefault source
{{ACCOUNT_ID}}Target account IDUser input (selectable from default accounts)
{{CAMPAIGN_ID}}Target campaign IDUser input
{{PLACEMENT_TYPE}}Placement display name or internal name (e.g., Top of Search / PLACEMENT_TOP)User input
{{PERCENTAGE}}Multiplier to set (integer 0–900)User input
  1. Input validation — Confirm percentage is an integer in 0–900
    • Why this range: Amazon Ads defines placement multipliers as 0–900%
  2. Placement-name resolution — Accept either display name (Top of Search) or internal name (PLACEMENT_TOP)
  3. Scope limit — Only 1 campaign × 1 placement per execution
    • Why 1 item only: Keeps impact small enough that no approval step is needed and direct execution is safe
  4. Direct execution — Apply immediately without a suggestion step

Done.

FieldValue
account_idacc_XXXXXX
campaign_idcmp_XXXXXX
PlacementTop of Search
Multiplier (before)50%
Multiplier (after)0%

To roll back, run the same prompt with 50.

  • This prompt is applied directly (no approval step)
  • Scope is limited to 1 campaign × 1 placement (multiple items require separate prompts)
  • Out-of-range multipliers (outside 0–900%) are rejected
  • The previous value is logged — you can roll back by running the same prompt with that value
PhaseStatusConditions
Phase 1 (current)One-shot (direct execution)Available with just Picaro connection
Phase 2 (Q3 2026)One-shot (unchanged)Small scope — not a target for automation
Phase 3 (Q4 2026)One-shot (unchanged)Same as above
Phase 4 (2027)One-shot (unchanged)Maintained as a rollback tool

What you want to doPrompt to use
Back-solve keyword bids from ACoS targetPrompt 1
Unified keywords + ASINs + auto, with weightingPrompt 2
Carve zero-sales targets into negative candidatesPrompt 3
Follow Amazon’s Suggested bid (new campaigns etc.)Prompt 4
Adjust bids by IS% / CVRPrompt 5
Auto-tune placement multipliers by CVR ratioPrompt 6
Set placement multiplier manually / roll backPrompt 7