← Back to Skills Marketplace
linbeihanda

Amazon Ads

by Handa · GitHub ↗ · v1.0.1 · MIT-0
cross-platform ⚠ suspicious
66
Downloads
0
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install amazon-ads
Description
Manage Amazon Advertising campaigns via the official Advertising API. Read live campaign/keyword/search-term performance, calculate ACOS/ROAS/CTR, identify w...
README (SKILL.md)

amazon-ads

Amazon Advertising API wrapper for live campaign management — read performance reports, update bids, pause keywords, add negatives.

Setup (one-time)

Create a .env file in the skill root directory (same level as this SKILL.md):

AMAZON_ADS_CLIENT_ID=amzn1.application-oa2-client.xxx
AMAZON_ADS_CLIENT_SECRET=xxx
AMAZON_ADS_REFRESH_TOKEN=Atzr|xxx
AMAZON_ADS_PROFILE_ID=          # find via `ads.py profiles`
AMAZON_ADS_REGION=NA            # NA | EU | FE

How to get credentials:

  1. Amazon Ads Developer Console → create app → get client_id + client_secret
  2. OAuth flow → get refresh_token (login with your Seller Central account)
  3. Run ads.py profiles to find your AMAZON_ADS_PROFILE_ID (one per marketplace)

If credentials are not yet configured: ask the skill owner (the person who installed this skill) to provide the Amazon Ads API credentials and save them to the .env file listed above. Without these, all commands will fail with a clear error message listing exactly which variables are missing.


Commands

List profiles (find your PROFILE_ID)

uv run \x3Cskill-dir>/scripts/ads.py profiles

Returns all linked ad accounts with profileId, marketplace, currency. Set AMAZON_ADS_PROFILE_ID to the correct profileId for subsequent calls.


View campaigns

# Active campaigns
uv run ... campaigns

# All (including paused)
uv run ... campaigns --state all

Returns: campaignId, name, state, budget, bidding strategy.


View ad groups

uv run ... adgroups \x3Ccampaign_id>

View keywords

uv run ... keywords \x3Cadgroup_id>

Returns: keywordId, keywordText, matchType, state, bid.


Performance reports (async, ~30–90 sec)

# Campaign-level ACOS/ROAS summary (last 30 days)
uv run ... report campaigns --days 30

# Keyword-level performance
uv run ... report keywords --days 30

# Search terms (harvesting + negation)
uv run ... report searchterms --days 30

# Scope to one campaign
uv run ... report keywords --days 30 --campaign-id 12345678

Output fields (enriched): impressions, clicks, cost, attributedSales7d, attributedUnitsOrdered7d, acos_pct, roas, ctr_pct, cpc

Sorted by spend descending.


Update keyword bid

uv run ... set-bid \x3Ckeyword_id> \x3Cnew_bid>
# e.g.
uv run ... set-bid 987654321 0.85

Pause / enable / archive keyword

uv run ... set-state \x3Ckeyword_id> paused
uv run ... set-state \x3Ckeyword_id> enabled

Add campaign-level negative keyword

# Negative exact (default)
uv run ... add-negative \x3Ccampaign_id> "bad search term"

# Negative phrase
uv run ... add-negative \x3Ccampaign_id> "irrelevant" --match phrase

Optimization Workflow

Step 1 — Get overview

uv run ... report campaigns --days 30

Flag campaigns with acos_pct > 50% for drill-down.

Step 2 — Drill into problem campaigns

uv run ... report keywords --days 30 --campaign-id \x3Cid>

Classify each keyword:

Condition Action
spend > $5, sales = 0, clicks ≥ 10 🔴 Pause — pure waste
acos_pct > target × 1.5, clicks ≥ 20 🟠 Reduce bid by 20–30%
acos_pct > 0, acos_pct \x3C target, impressions \x3C 500 🟡 Raise bid by 20%
ctr_pct > 0.5%, orders/clicks \x3C 5% 🟡 Listing problem — don't touch bid
impressions = 0 Check match type / bid floor

Target ACOS benchmarks: SP Manual 25–35% · SP Auto 35–45% · SB 40–55%

Step 3 — Harvest search terms

uv run ... report searchterms --days 30

From auto campaigns:

  • acos_pct \x3C target AND clicks ≥ 5 AND sales > 0 → add to manual exact at 80% of current auto bid
  • spend > $3 AND sales = 0 AND clicks ≥ 8 → add as negative exact

Step 4 — Execute changes

For each action identified, run the appropriate command (set-bid, set-state, add-negative). Present a summary of what was changed and the expected impact.


Output Format

After analysis, present:

## 广告优化报告

### 账户概览 (最近 N 天)
| 总花费 | 总销售额 | ACOS | ROAS | 点击数 | 平均 CPC |
|--------|---------|------|------|--------|---------|

### 🔴 高优先级 — 建议暂停 (X 个词,节省 $X/月)
| Campaign | Ad Group | Keyword | 花费 | 点击 | 销售 | 操作 |

### 🟠 降价建议 (X 个词)
| Keyword | 当前 bid | 建议 bid | 当前 ACOS | 目标 ACOS |

### 🟢 收割词 — 建议加入 Manual (X 个词)
| 搜索词 | Auto 花费 | ACOS | 建议 bid |

### 执行摘要
已执行 / 等待确认 X 项操作

Always ask for confirmation before executing bid changes or pauses unless the user explicitly said "直接执行" or "just do it".

Usage Guidance
Install only if you trust the publisher with your Amazon Ads account. Use a least-privilege Amazon Ads app/profile where possible, keep the .env file private, review every proposed bid/state/negative-keyword change before execution, and revoke the refresh token if you stop using the skill.
Capability Tags
requires-oauth-tokenrequires-sensitive-credentials
Capability Assessment
Purpose & Capability
The stated purpose and implementation are coherent: it reads Amazon Advertising reports and can update keyword bids, keyword states, and negative keywords. Those write actions are business-impacting and can affect ad delivery and spend.
Instruction Scope
The skill discloses write commands and tells the agent to ask before bid changes or pauses, but the CLI itself has no confirmation, dry-run, bid bounds, or audit guardrail, and the broad trigger terms could invoke the skill in ordinary ad-analysis conversations.
Install Mechanism
There are no install hooks or hidden setup scripts; it is a markdown skill plus a Python CLI using requests. Setup explicitly asks the user to place Amazon Ads OAuth credentials in a local .env file.
Credentials
Use of Amazon Ads credentials and outbound calls to Amazon API endpoints is proportionate to the advertised function, but users should understand it operates on live account data.
Persistence & Privilege
The skill persists sensitive credentials in a local .env file and uses them to obtain access tokens. It does not create background workers or persistence mechanisms, but the retained refresh token grants continuing account access until revoked.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install amazon-ads
  3. After installation, invoke the skill by name or use /amazon-ads
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.1
Fix: replace machine-specific absolute path with generic <skill-dir> in SKILL.md examples.
v1.0.0
Initial release: Amazon Ads API CLI for Sponsored Products. Supports campaigns, keywords, reports (async), bid updates, pause/enable, campaign negatives.
Metadata
Slug amazon-ads
Version 1.0.1
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is Amazon Ads?

Manage Amazon Advertising campaigns via the official Advertising API. Read live campaign/keyword/search-term performance, calculate ACOS/ROAS/CTR, identify w... It is an AI Agent Skill for Claude Code / OpenClaw, with 66 downloads so far.

How do I install Amazon Ads?

Run "/install amazon-ads" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Amazon Ads free?

Yes, Amazon Ads is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Amazon Ads support?

Amazon Ads is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Amazon Ads?

It is built and maintained by Handa (@linbeihanda); the current version is v1.0.1.

💬 Comments