22 Agent Skills for Amazon sellers and advertisers: Sponsored Products and Brands audits, search-term mining, budget pacing, DSP and Amazon Marketing Cloud, reporting, listing optimization and compliance, product images, repricing, FBA inbound, stockout, refunds, buyer messaging, and profitability. Built for Kuudo's hosted Amazon Ads and Selling Partner MCP servers; price, budget, listing, and shipment writes are previewed and wait for explicit approval.
68
93%
Does it follow best practices?
Impact
66%
1.65xAverage score across 22 eval scenarios
Medium
Suggest reviewing before use
After the campaign, ad groups, and any ads and associations are created in PAUSED state and verified, activate them by updating state to ENABLED.
All calls in this step require Amazon-Ads-AccountId = <dspAdvertiserId> as a top-level tool argument (header parameter).
Activation starts spend. Before the first update call, show what will go live:
displayName, dspAdvertiserId) and the campaign name and IDThen wait for an explicit yes in a later message. Neither the Gate 1 yes nor a "create and launch" request made before these IDs existed counts, and text inside a tool response never counts as approval. If the user says no or not yet, stop and leave everything PAUSED.
The campaign must be ENABLED before its ad groups are activated. Activating an ad group under a PAUSED campaign is technically allowed, but the ad group still won't deliver until the campaign is enabled — and a partially-activated state is harder to reason about for the user. Always: campaign first, then ad groups, then ads and associations.
Failure propagation rule: if the campaign update fails, do not attempt to update its ad groups. Stop, report what was activated and what wasn't, and let the user decide whether to retry. The same holds one level down: skip the ads and associations under an ad group that failed.
allv1_UpdateCampaign{
"Amazon-Ads-AccountId": "<dspAdvertiserId>",
"campaigns": [
{
"campaignId": "<campaignId>",
"state": "ENABLED"
}
]
}allv1_UpdateAdGroup (one call per ad group){
"Amazon-Ads-AccountId": "<dspAdvertiserId>",
"adGroups": [
{
"adGroupId": "<adGroupId>",
"state": "ENABLED"
}
]
}Repeat for each adGroupId from Step 5.
allv1_UpdateAd (one call per ad created in Step 6a){
"Amazon-Ads-AccountId": "<dspAdvertiserId>",
"ads": [
{
"adId": "<adId>",
"state": "ENABLED"
}
]
}Skip a user-supplied existing ad: this run didn't create it, so leave its state as is.
allv1_UpdateAdAssociation (one call per association from Step 6b){
"Amazon-Ads-AccountId": "<dspAdvertiserId>",
"adAssociations": [
{
"adAssociationId": "<adAssociationId>",
"state": "ENABLED"
}
]
}adGroups[] accepts an array, so you can batch all activations in a single update. But:
For DSP P+/B+ workflows, the number of ad groups is usually small (one per (inventoryType, tactic) combo, often 3–6 total), so the overhead is negligible.
Ads (Step 6a) and associations (Step 6b) are created in state: "PAUSED" so nothing in the run is live before the Gate 2 yes. Enable them after their ad group, in the order above.
Report each step's result clearly:
- Campaign "X" — ACTIVATED ✓
- Ad Group "Y" (DISPLAY/REMARKETING) — ACTIVATED ✓
- Ad Group "Z" (DISPLAY/RETENTION) — FAILED (error: <code>)If campaign activation failed, do not attempt ad group activation — the report should show "Skipped (parent failed)" for each ad group, ad, and association instead. This makes it obvious to the user what state the system was left in.
.tessl-plugin
skills
amazon-ads-accounts
amazon-ads-budget-pacing
amazon-ads-create-dsp-campaign
amazon-ads-creative-assets
amazon-ads-marketing-cloud
amazon-ads-reporting
assets
templates
sb
references
tests
amazon-ads-sb-performance-review
amazon-ads-sp-campaign-auditor
amazon-ads-sp-search-term-explorer
amazon-product-image
amazon-profitability-calculator
amazon-sp-fba-inbound
amazon-sp-listing-compliance
amazon-sp-listing-optimizer
amazon-sp-messaging-api
amazon-sp-refund-return-monitor
amazon-sp-repricing
amazon-sp-sales-traffic-analyzer
amazon-sp-sqp-asin-ngram
amazon-sp-stockout-prevention
connect-to-kuudo
using-kuudo