ads_create_optimization_rule

Sponsored Products rule-based bidding — hand bid control to Amazon under a ROAS guardrail you declare; Amazon raises and lowers the campaign's base bids itself to increase conversi

destructiveAmazon Adsads.sp

ons while trying to hold it. This is NOT the same API as ads_sp_create_optimization_rules (which only applies fixed percentage increases on a schedule). Amazon Ads API · CreateOptimizationRule · POST /sp/rules/campaignOptimization Docs: https://advertising.amazon.com/API/docs/en-us/sponsored-products/3-0/openapi/prod#tag/Campaign-Optimization-Rules/operation/CreateOptimizationRule Gate: approve — interactive: show the change (Amazon's preview first where one exists), wait for an explicit approve; autopilot: only when the seller's own words asked for this change; otherwise ask.

Call it

In an AI client (MCP)

tools/call
{
  "name": "ads_create_optimization_rule",
  "arguments": {
    "store": "myStore-US",
    "countryCode": "<countryCode>",
    "body": {}
  }
}

From code (Tool API)

curl -X POST https://api.sellersheetai.com/api/v1/tools/ads_create_optimization_rule \
  -H "Authorization: Bearer $SELLERSHEET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"store":"myStore-US","countryCode":"<countryCode>","body":{}}'
Early access — the Tool API is open on request, contact us.

Arguments

NameTypeDescription
storerequiredstringthe store ref `<store>-<CC>` (name-country, e.g. 'myStore-US') — one of get_user_context's store_refs, verbatim.
countryCoderequiredstringthe Ads profile's 2-letter country code (e.g. 'US').
bodyrequiredobject{campaignIds (max 20, fewer than eligibility's 100 — split larger sets), ruleType: BID, ruleAction: ADOPT, recurrence: DAILY, ruleCondition: [{metricName, ...}]}. Use the roas returned by ads_get_optimization_rule_eligibility as the threshold rather than inventing one.

Result

Every tool answers {notification, data, human_action}; data carries:

  • Amazon's payload in data.result.
  • data.result.campaignOptimizationId — the rule id that ads_get_campaign_optimization_rule, ads_update_optimization_rule and ads_delete_campaign_optimization_rule take.
  • data.result.code / data.result.details — whether Amazon created it.

Gotchas

  • ALWAYS call ads_get_optimization_rule_eligibility first — Amazon rejects ineligible campaigns.
  • ruleType only supports BID today: KEYWORD and PRODUCT are in the spec enum but Amazon answers "Rule type is invalid. Only support BID as of now."
  • A ROAS condition is MANDATORY — AVERAGE_BID is in the spec enum but Amazon answers "Condition on ROAS is required, and AVERAGE_BID is not allowed."
  • When metricName=ROAS, Amazon only actually supports GREATER_THAN and EQUAL_TO, despite the fuller comparisonOperator enum in the spec.
  • Mutually exclusive with ads_associate_optimization_rules_to_campaign on the same campaign — associating a schedule/intraday bid rule fails once this kind is attached. Pick ONE automation model and say which one you picked.

On this page

Actions

View as Markdown

Ask an assistant

Ask ChatGPTAsk Claude