amazon-ads — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited amazon-ads (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Strategic guide for managing Amazon Ads Sponsored Products campaigns. Research first, validate products, optimize for ACoS targets.
If amazon_ads_list_profiles is not in the tool list, stop and tell the user to enable Hyper MCP and connect Amazon Ads.
| Tool | Purpose |
|---|---|
amazon_ads_list_profiles, amazon_ads_run_health_check | Profile discovery + integration health. |
amazon_ads_list_campaigns, amazon_ads_create_campaign, amazon_ads_update_campaign | Campaign lifecycle. |
amazon_ads_create_ad_group, amazon_ads_create_product_ad | Ad group + product ad creation. |
amazon_ads_create_keyword, amazon_ads_create_negative_keyword, amazon_ads_create_campaign_negative_keyword | Keyword targeting. |
amazon_ads_create_product_target, amazon_ads_create_negative_product_target | Product (ASIN/category) targeting. |
amazon_ads_create_budget_rule, amazon_ads_list_budget_rules | Budget automation. |
amazon_ads_create_report, amazon_ads_get_report_status | Performance reporting. |
amazon_ads_get_bid_recommendations | Theme-based bid recommendations. |
CRITICAL: Keyword, negative keyword, product ad, and product target operations require BOTHad_group_idANDcampaign_id. Omittingcampaign_idcauses validation errors.
CRITICAL: Keywords and product targets cannot coexist in the same ad group. Choose one targeting type per ad group.
CRITICAL: AUTO campaigns only allow negative keywords and negative product targets. Positive keywords and product targets are rejected.
CRITICAL: Campaign dates useYYYY-MM-DDformat. Budget rule dates useYYYYMMDDformat. Do not mix these up.
CRITICAL: Create campaigns with state "PAUSED". Never launch live without user review.CRITICAL: Negative product targets only supportASIN_SAME_ASandASIN_BRAND_SAME_ASexpressions. Category exclusions are not supported.
CRITICAL: All enum values must be UPPERCASE:PAUSED,ENABLED,BROAD,PHRASE,EXACT,NEGATIVE_EXACT,NEGATIVE_PHRASE,MANUAL,AUTO.
IMPORTANT: Portfolio operations return 404 for vendor accounts. Use campaign-level management instead.
IMPORTANT: Budget rule listing may return empty even after successful creation. Track rule IDs from creation responses.
IMPORTANT: All budgets are in dollars (not cents, not micros). $25 daily budget = 25.Call amazon_ads_list_profiles() to list advertising profiles.
profileId — it's required for every subsequent API call.Health Check: Call amazon_ads_run_health_check() to verify OAuth tokens, profile access, and billing status.
amazon_ads_list_campaigns(profile_id=PROFILE_ID)Review active campaigns, budgets, and targeting types (auto vs manual).
(ad spend / ad revenue) × 100.Ask about budget and goals:
LEGACY_FOR_SALES (default): Amazon lowers bids when less likely to convert.AUTO_FOR_SALES: Dynamic bids, up and down.MANUAL: Full control over bid amounts.Campaign (targeting type: MANUAL or AUTO)
└── Ad Group (default bid)
├── Product Ads (ASINs)
├── Keywords (MANUAL campaigns only)
└── Product Targets (MANUAL campaigns only, mutually exclusive with keywords)AUTO Campaign:
→ Single campaign
→ Single ad group (broad matching)
→ Add product ads (ASINs)
→ Campaign-level negative keywords
→ Let Amazon optimize
MANUAL Campaign:
→ Separate ad groups by targeting theme
→ Each ad group: keywords OR product targets (not both)
→ Specific bids per keyword/target
→ Campaign and ad-group level negativesCampaign Strategy for [Product/Brand]
Profile: [profileId] ([marketplace])
Account Type: [seller/vendor]
ASINs: [list]
Target ACoS: [X]%
Daily Budget: $[X]
Targeting: [AUTO/MANUAL/both]
Bidding Strategy: [strategy]
Keywords: [count] across [match types]
Negatives: [count] terms excluded
Approve to proceed?Wait for explicit approval.
amazon_ads_create_campaign(
profile_id=PROFILE_ID,
name="SP - Manual - [Product]",
targeting_type="MANUAL",
daily_budget=25,
start_date="2026-03-01",
state="PAUSED",
bidding_strategy="legacy_for_sales"
)Returns: campaignId.
amazon_ads_create_ad_group(
profile_id=PROFILE_ID,
campaign_id=CAMPAIGN_ID,
name="[Product] - Exact Keywords",
default_bid=0.75,
state="PAUSED"
)Returns: adGroupId.
amazon_ads_create_product_ad(
profile_id=PROFILE_ID,
ad_group_id=AD_GROUP_ID,
campaign_id=CAMPAIGN_ID,
asin="B0XXXXXXXXX",
state="PAUSED"
)amazon_ads_create_keyword(
profile_id=PROFILE_ID,
ad_group_id=AD_GROUP_ID,
campaign_id=CAMPAIGN_ID,
keyword_text="wireless earbuds",
match_type="EXACT",
bid=0.85
)amazon_ads_create_campaign_negative_keyword(
profile_id=PROFILE_ID,
campaign_id=CAMPAIGN_ID,
keyword_text="cheap",
match_type="NEGATIVE_PHRASE"
)amazon_ads_create_negative_keyword(
profile_id=PROFILE_ID,
ad_group_id=AD_GROUP_ID,
campaign_id=CAMPAIGN_ID,
keyword_text="refurbished",
match_type="NEGATIVE_EXACT"
)amazon_ads_create_product_target(
profile_id=PROFILE_ID,
ad_group_id=AD_GROUP_ID,
campaign_id=CAMPAIGN_ID,
expression=[{"type": "ASIN_SAME_AS", "value": "B0COMPETITOR"}],
bid=0.60,
state="PAUSED"
)Available expression types:
ASIN_SAME_AS: target a specific ASIN.ASIN_CATEGORY_SAME_AS: target an entire category.ASIN_BRAND_SAME_AS: target a brand (requires numeric brand ID).amazon_ads_create_negative_product_target(
profile_id=PROFILE_ID,
ad_group_id=AD_GROUP_ID,
campaign_id=CAMPAIGN_ID,
expression=[{"type": "ASIN_SAME_AS", "value": "B0EXCLUDE"}],
state="ENABLED"
)Only ASIN_SAME_AS and ASIN_BRAND_SAME_AS are supported for negative targets.
Auto-increase budget on specific dates:
amazon_ads_create_budget_rule(
profile_id=PROFILE_ID,
campaign_id=CAMPAIGN_ID,
rule_type="SCHEDULE",
name="Holiday Boost",
budget_increase_percent=50,
start_date="20261201",
end_date="20261225"
)Auto-increase budget when metrics are met:
amazon_ads_create_budget_rule(
profile_id=PROFILE_ID,
campaign_id=CAMPAIGN_ID,
rule_type="PERFORMANCE",
name="High ROAS Rule",
budget_increase_percent=25,
performance_metric="ROAS",
comparison_operator="GREATER_THAN_OR_EQUAL_TO",
threshold=5.0,
start_date="20260301"
)Performance metrics: ACOS, CTR, CVR, ROAS.
CRITICAL: Budget rule dates useYYYYMMDDformat (notYYYY-MM-DD).
amazon_ads_create_report(
profile_id=PROFILE_ID,
report_type="spCampaigns",
columns=["impressions", "clicks", "cost", "spend"],
start_date="2026-02-01",
end_date="2026-02-28",
group_by=["campaign"],
time_unit="SUMMARY"
)amazon_ads_get_report_status(profile_id=PROFILE_ID, report_id=REPORT_ID)Reports are async. Status transitions: PENDING → PROCESSING → COMPLETED.
| Type | Description |
|---|---|
spCampaigns | Campaign-level metrics. |
spAdGroups | Ad group-level metrics. |
spAdvertisedProduct | ASIN-level metrics. |
spTargeting | Keyword/target metrics. |
spSearchTerm | Search term report. |
group_by is required: campaign, adGroup, or campaignPlacement.impressions, clicks, cost, spend, sales7d, purchases7d, unitsSoldClicks7d, clickThroughRate, costPerClick.campaignId and campaignName are not allowed in the columns list.| Metric | Formula |
|---|---|
| ACoS | ad spend / ad revenue × 100 |
| ROAS | ad revenue / ad spend |
| TACoS | ad spend / total revenue × 100 |
| CTR | clicks / impressions × 100 |
| CPC | cost / clicks |
| CVR | orders / clicks × 100 |
Get theme-based bid recommendations for an existing ad group:
amazon_ads_get_bid_recommendations(
profile_id=PROFILE_ID,
campaign_id=CAMPAIGN_ID,
ad_group_id=AD_GROUP_ID,
targeting_expressions=[
{"type": "KEYWORD_BROAD_MATCH", "value": "wireless earbuds"},
{"type": "KEYWORD_EXACT_MATCH", "value": "bluetooth headphones"},
{"type": "CLOSE_MATCH"},
{"type": "LOOSE_MATCH"}
]
)Available targeting expression types:
CLOSE_MATCH, LOOSE_MATCH, SUBSTITUTES, COMPLEMENTS (auto targeting).KEYWORD_BROAD_MATCH, KEYWORD_EXACT_MATCH, KEYWORD_PHRASE_MATCH (keyword targeting).Amazon Ads supports multiple profiles per integration:
Cross-Profile Strategy:
PAUSED: Created but not live (safe default).ENABLED: Running and spending budget.ARCHIVED: Deleted (cannot be restored).| Issue | Workaround |
|---|---|
| Portfolio operations return 404 (vendor) | Use campaign-level grouping + naming conventions. |
| Budget rule listing may return empty | Track rule IDs from creation responses. |
| Category recommendations may fail (500) | Use manual research or dashboard. |
Discovery → Research (products + keywords) → Strategy (auto vs manual) → Approve Summary → Create (PAUSED) → Add Keywords/Products → Add Negatives → Test (1–3 days) → Optimize → Activate.
Never:
campaign_id from keyword/product operations.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.