# ads_get_rule_notification (https://sellersheetai.com/docs/mcp-api/tools/ads_get_rule_notification)

> Sponsored Products: the daily health-check for a rule-based-bidding rule — whether Amazon has silently disabled it.

Access: **READ** · toolset amazon_ads · family ads.sp

Amazon Ads API · GetRuleNotification · POST /sp/rules/campaignOptimization/state Docs: https://advertising.amazon.com/API/docs/en-us/sponsored-products/3-0/openapi/prod#tag/Campaign-Optimization-Rules/operation/GetRuleNotification

## Call it

MCP tool call:

```json
{
  "name": "ads_get_rule_notification",
  "arguments": {
    "store": "myStore-US",
    "countryCode": "<countryCode>",
    "body": {}
  }
}
```

Tool API (early access — contact us):

```bash
curl -X POST https://api.sellersheetai.com/api/v1/tools/ads_get_rule_notification \
  -H "Authorization: Bearer $SELLERSHEET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"store":"myStore-US","countryCode":"<countryCode>","body":{}}'
```

## Arguments

| Name | Type | Required | Description |
|---|---|---|---|
| `store` | string | yes | the store ref `<store>-<CC>` (name-country, e.g. 'myStore-US') — one of get_user_context's store_refs, verbatim. |
| `countryCode` | string | yes | the Ads profile's 2-letter country code (e.g. 'US'). |
| `body` | object | yes | {campaignIds: [...]} (max 100). |

## Result

- Amazon's payload in data.result.
- `data.result.campaignOptimizationNotifications[]` — {campaignId, campaignOptimizationId, ruleState (ENABLED or DISABLED), notificationString}.
- `data.failed` — per-campaign errors.

## Gotchas

- Amazon can disable the rule on its own: if the campaign's ROAS over the last 20 days falls below 30% of its ROAS over the 20-to-40-day window, Amazon switches the rule off, restores the previous bidding strategy and target-level bids, and only notifies inside the Seller Central bell drawer — nothing is pushed to the API. Poll this at least once a day and tell the user when ruleState changes, or a dead rule looks alive.
- The guardrail is evaluated over the PREVIOUS 21 DAYS at campaign level — it is not an intraday control.