Summary
亚马逊广告(Amazon Ads)管理技能,覆盖 SP/SB/SD 的查询与创建/修改。Sponsored Brands 同时支持 V3 Legacy 与 V4:新活动、多 Ad Group、Ad/Creative 默认走 V4,历史 Legacy 可显式走 V3,Keyword/Target 按 Campaign 结构通过版本化脚本调用 Amazon ?
linkfox-ai/linkfox-skills
亚马逊广告(Amazon Ads)管理技能,覆盖 SP/SB/SD 的查询与创建/修改。Sponsored Brands 同时支持 V3 Legacy 与 V4:新活动、多 Ad Group、Ad/Creative 默认走 V4,历史 Legacy 可显式走 V3,Keyword/Target 按 Campaign 结构通过版本化脚本调用 Amazon ?
npx skills add linkfox-ai/linkfox-skills --skill linkfox-amazon-ads-manager
亚马逊广告(Amazon Ads)管理技能,覆盖 SP/SB/SD 的查询与创建/修改。Sponsored Brands 同时支持 V3 Legacy 与 V4:新活动、多 Ad Group、Ad/Creative 默认走 V4,历史 Legacy 可显式走 V3,Keyword/Target 按 Campaign 结构通过版本化脚本调用 Amazon ?
Other skills from linkfox-ai/linkfox-skills · top by installs.
npx skills add linkfox-ai/linkfox-skills
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
main
Parsed from SKILL.md frontmatter.
Files included with this skill beyond the listing page.
SKILL.md
18,596 B
SUMMARY.md
5,849 B
Amazon Ads 广告管理 skill,支持 list(查询)和 create / update(创建与修改)操作;经 developerProxy 传 profileId,由服务端解析 token(勿先 storeTokens 取 raw token)。自动处理分页、过滤字段规范化。
| 广告产品 | 覆盖实体 | 脚本子目录 | 详细参数 |
|---|---|---|---|
| SP (Sponsored Products) v3 | campaigns / adGroups / keywords / negativeKeywords / productAds / targets | scripts/sp/ |
[references/api/sp.md](./references/api/sp.md) |
| SB V3 Legacy + V4 | V3 campaigns/keywords/targets;V4 campaigns/adGroups/ads/keywords/targets/creatives | scripts/sb/v3/、scripts/sb/v4/ |
[references/api/sb.md](./references/api/sb.md) |
| SD (Sponsored Display) v3 | campaigns / adGroups / productAds / targets / negativeTargets / creatives | scripts/sd/ |
[references/api/sd.md](./references/api/sd.md) |
依赖 linkfox-amazon-ads-auth(脚本启动时自动检查;未安装时 exit 42,stderr 打 DEPENDENCY_MISSING)。
用户经常只说自然语言("美国站"、"日本站"、"我的店铺"),本 skill 的所有脚本都必须拿到数字 profileId 才能调。按下列顺序处理,不要跳过:
linkfox-amazon-ads-auth 的 authorized_stores.py 拉出用户已授权的账号 × 站点清单。countryCode,如 美国→US)匹配候选 profile:- 只有 1 个候选 → 静默取对应 profileId,继续调用;不要把 profileId 数字播报给用户。 - ≥ 2 个候选(同站点下多个授权账号) → 必须向用户澄清,用 accountName 问:"你在美国站授权了 A 和 B 两个账号,这次用哪个?" - 0 个候选 → 告知用户该站点未授权,引导去 linkfox-amazon-ads-auth 做授权。
完整决策表见 linkfox-amazon-ads-auth SKILL.md 的 Usage Scenarios 第 4 节。
fetchAll=true(默认)跟随分页到结束或 maxPages=50 兜底;SP/SB V4/Target 用 nextToken,SB V3 GET 与 SD 用 startIndex + countlinkfox-amazon-ads-report,按 id joincreate.py / update.py 脚本创建或修改实体(campaign / adGroup / keyword / target / productAd / creative / budgetRule),payload 透传 Amazon 原生格式scripts/sb/v4/;只有确认是 Legacy 或用户明确要求 V3 时使用 scripts/sb/v3/。不自动执行 V4→V3 回落;已知 Multi-Ad-Group Campaign 必须拒绝 V3sb/keywords、sb/targets[/list],没有伪造的 /sb/v4/keywords;V3/V4 脚本入口隔离,但底层共享官方 targeting 资源GET /sd/<entity> + querystring,分页用 startIndex + count;state / id 类过滤为逗号分隔字符串;includeExtendedDataFields:true 时请求 /sd/<entity>/extended 路径。所有过滤字段统一支持 {"include":[...]} 入参| 脚本 | 业务实体 | 操作 |
|---|---|---|
sp/list_campaigns.py |
广告活动 | 查询 |
sp/create_campaigns.py |
广告活动 | 创建 |
sp/update_campaigns.py |
广告活动 | 修改(预算/策略/状态/名称等) |
sp/listadgroups.py |
广告组 | 查询 |
sp/createadgroups.py |
广告组 | 创建 |
sp/updateadgroups.py |
广告组 | 修改(默认出价/状态/名称等) |
sp/list_keywords.py |
关键词 | 查询 |
sp/create_keywords.py |
关键词 | 创建 |
sp/update_keywords.py |
关键词 | 修改(出价/状态等) |
sp/listnegativekeywords.py |
否定关键词 | 查询 |
sp/createnegativekeywords.py |
否定关键词 | 创建 |
sp/updatenegativekeywords.py |
否定关键词 | 修改(状态等) |
sp/listproductads.py |
商品广告 | 查询 |
sp/createproductads.py |
商品广告 | 创建 |
sp/updateproductads.py |
商品广告 | 修改(状态等) |
sp/list_targets.py |
商品定向 | 查询 |
sp/create_targets.py |
商品定向 | 创建 |
sp/update_targets.py |
商品定向 | 修改(出价/状态等) |
sp/createcampaignnegative_keywords.py |
活动级否定关键词 | 创建 |
sp/updatecampaignnegative_keywords.py |
活动级否定关键词 | 修改(状态等) |
sp/createcampaignnegative_targets.py |
活动级否定定向 | 创建 |
sp/updatecampaignnegative_targets.py |
活动级否定定向 | 修改(状态等) |
sp/createnegativetargets.py |
广告组级否定定向 | 创建 |
sp/updatenegativetargets.py |
广告组级否定定向 | 修改(状态等) |
sp/listbudgetrules.py |
预算规则 | 查询 |
sp/createbudgetrules.py |
预算规则 | 创建 |
sp/updatebudgetrules.py |
预算规则 | 修改 |
sp/createbudgetrules_association.py |
预算规则关联 | 关联规则到活动 |
| 脚本组 | 业务实体 | 操作 |
|---|---|---|
sb/v3/list/create/update_campaigns.py |
Legacy 广告活动(Creative 内嵌) | 查询/创建/修改 |
sb/v3/listadgroups.py |
Legacy 广告组 | 查询 |
sb/v3/list/create/update_keywords.py |
关键词 | 查询/创建/修改 |
sb/v3/list/create/update_targets.py |
商品定向 | 查询/创建/修改 |
V3 仅兼容 Legacy。若参数包含 campaignStructure:"MULTIADGROUP" 或 isMultiAdGroupsEnabled:true,脚本返回 SBV4CAMPAIGNNOTSUPPORTED。脚本没有本地 Campaign 数据库,因此调用前应先用 V4 Campaign list 确认结构。
| 脚本组 | 业务实体 | 操作 |
|---|---|---|
sb/v4/list/create/update_campaigns.py |
广告活动 | 查询/创建/修改 |
sb/v4/list/create/updateadgroups.py |
广告组 | 查询/创建/修改 |
sb/v4/list/create/update_ads.py |
广告 | 查询/创建/修改 |
sb/v4/list/create/update_keywords.py |
关键词(Amazon 共享 V3 transport) | 查询/创建/修改 |
sb/v4/list/create/update_targets.py |
商品定向(Amazon 共享 V3/V3.2 transport) | 查询/创建/修改 |
sb/v4/listcreatives.py、createcreatives.py |
独立 Creative Version | 查询/创建新版本 |
sb/v4/list/create/updatebudgetrules.py |
预算规则 | 查询/创建/修改 |
原 scripts/sb/*.py 继续作为既有 V4 操作的兼容入口(薄封装转发到 scripts/sb/v4/);新调用统一使用带版本目录。完整规则见 [references/api/sb-coexistence.md](./references/api/sb-coexistence.md)。
| 脚本 | 业务实体 | 操作 |
|---|---|---|
sd/list_campaigns.py |
广告活动 | 查询 |
sd/create_campaigns.py |
广告活动 | 创建 |
sd/update_campaigns.py |
广告活动 | 修改(预算/状态/名称等) |
sd/listadgroups.py |
广告组 | 查询 |
sd/createadgroups.py |
广告组 | 创建 |
sd/updateadgroups.py |
广告组 | 修改(出价/状态等) |
sd/listproductads.py |
商品广告 | 查询 |
sd/createproductads.py |
商品广告 | 创建 |
sd/updateproductads.py |
商品广告 | 修改(状态等) |
sd/list_targets.py |
定向子句 | 查询 |
sd/create_targets.py |
定向子句 | 创建 |
sd/update_targets.py |
定向子句 | 修改(出价/状态等) |
sd/listnegativetargets.py |
否定定向子句 | 查询 |
sd/createnegativetargets.py |
否定定向子句 | 创建 |
sd/updatenegativetargets.py |
否定定向子句 | 修改(状态等) |
sd/list_creatives.py |
创意素材 | 查询 |
sd/create_creatives.py |
创意素材 | 创建 |
sd/update_creatives.py |
创意素材 | 修改(素材/状态等) |
sd/listbudgetrules.py |
预算规则 | 查询 |
sd/createbudgetrules.py |
预算规则 | 创建 |
sd/updatebudgetrules.py |
预算规则 | 修改 |
详细过滤器、枚举值、返回字段见 [references/api/sp.md](./references/api/sp.md) / [references/api/sb.md](./references/api/sb.md) / [references/api/sd.md](./references/api/sd.md)。
POST /amazonAds/developerProxy(不同操作通过请求体区分;完整参数/响应/错误码见 references/api.md)python scripts/<脚本名>.py '<JSON 参数>' [--inline];SB 新调用必须显式使用 scripts/sb/v3/ 或 scripts/sb/v4/输出策略(脚本默认行为):
<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-amazon-ads-manager-<timestamp>.json(<cwd> 为脚本执行时的工作目录,在 Claude Code 里即当前项目目录;<session> 取自环境变量 SESSION_ID,按用户任务自动聚合;禁止写入 /tmp,当前目录不可写则报错)total/costToken、最大列表字段的长度 + 前 3 条样本)--inline 强制全量打印到 stdout(同样落盘)读数据建议:先看摘要判断是否足够;需要具体字段时优先用 jq或ConvertFrom-Json 从保存的 json 文件按需抽取,避免整份 JSON 进入上下文。
发生以下异常情况时,采用 references/onboarding.md 引导解决问题:
LINKFOXAGENTAPIKEY,也未配置 LINKFOXAGENTAPI_KEY。创建和更新操作可能直接影响广告花费,立即生效且无法撤回。
决策规则:
| 用户状态 | Agent 行为 |
|---|---|
| 已授权(说过"自动调价"/"按你判断来"/"不用问我"/"确认"等) | 直接执行 → 输出操作回执 |
| 未授权(首次交互、未明确表态) | 先输出确认摘要 → 等用户确认后执行 |
确认摘要模板(未授权时,执行前输出):
📋 即将执行:
- 操作:[创建/修改] [N 个] [实体类型]
- 变更:[关键字段变化,如 bid $1.0→$1.5 / budget $50→$100]
- 影响:[花费变化预估,引用日预算作为上限]
确认执行?后续如需自动处理,告诉我即可。
操作回执模板(每次写操作执行后必须输出):
✅ 已执行:[简短描述]
- 范围:[实体数量、名称或 ID]
- 变化:[具体变更内容]
- 结果:[成功 N 个 / 失败 M 个]
| 字段 | 类型 | 说明 |
|---|---|---|
profileId |
number | 必填,从 ads-auth 获取 |
region |
string | 必填,NA / EU / FE |
fetchAll |
bool | 默认 true;SP/SB V4/Target 用 nextToken,SB V3 GET 与 SD 用 startIndex + count |
maxResults |
int | 1-100,默认 100;对应 Sponsored Display 端 count |
includeExtendedDataFields |
bool | 返回扩展字段(部分实体);SD 通过路径切换为 /sd/<entity>/extended 实现 |
locale |
string | 本地化(SP keywords 支持) |
| 结构 | 示例 | 适用字段 |
|---|---|---|
| Object | {"include":[...]} / {"exclude":[...]} |
全部 id/状态类:campaignIdFilter、adGroupIdFilter、keywordIdFilter、stateFilter、portfolioIdFilter、expressionTypeFilter、adIdFilter |
| Array | ["EXACT","BROAD"] |
matchTypeFilter(SP keywords/negativeKeywords) |
| Scalar | "AUTO" |
campaignTargetingTypeFilter(SP adGroups) |
| Text | {"queryTermMatchType":"BROAD_MATCH","include":["..."]} |
nameFilter、keywordTextFilter |
| Client | 任意形式,本 skill 本地过滤 | asinFilter、skuFilter(SP productAds) |
易错点:
matchTypeFilter 是裸数组 ["EXACT"](传错本 skill 自动规范化)expressionTypeFilter 反而是 Object(与 matchType 不同)asinFilter / skuFilter 客户端过滤,建议同时传 campaignIdFilter / adGroupIdFilter 收窄{
"success": true,
"apiVersion": "V3 | V4",
"amazonResourceVersion": "V4 | V3_SHARED_TARGETING | V3.2_SHARED_TARGETING | SHARED",
"<entityKey>": [ /* 实体数组,字段原样 */ ],
"total": 157,
"pagesFetched": 2,
"truncated": false
}
SB 的 apiVersion 表示调用入口/结构意图,amazonResourceVersion 表示实际 Amazon 资源版本;两者不同不代表发生自动回落。SP productAds 客户端过滤时额外带:serverTotalBeforeClientFilter + clientSideFilters。
python scripts/sp/list_campaigns.py '{"profileId":1234567890,"region":"NA",
"stateFilter":{"include":["ENABLED"]}}'
python scripts/sp/list_ad_groups.py '{"profileId":1234567890,"region":"NA",
"campaignIdFilter":{"include":["998877665544"]}}'
python scripts/sp/list_product_ads.py '{"profileId":1234567890,"region":"NA",
"asinFilter":{"include":["B01ABCDEFG"]},
"campaignIdFilter":{"include":["998877665544"]}}'
python scripts/sb/v4/list_campaigns.py '{"profileId":1234567890,"region":"NA",
"stateFilter":{"include":["ENABLED"]}}'
python scripts/sb/v4/list_ad_groups.py '{"profileId":1234567890,"region":"NA",
"campaignIdFilter":{"include":["1122334455"]}}'
python scripts/sb/v4/list_ads.py '{"profileId":1234567890,"region":"NA",
"adGroupIdFilter":{"include":["5566778899"]}}'
python scripts/sb/v4/list_keywords.py '{"profileId":1234567890,"region":"NA",
"campaignIdFilter":["1122334455"],"adGroupIdFilter":["5566778899"]}'
python scripts/sb/v3/list_campaigns.py '{"profileId":1234567890,"region":"NA",
"campaignStructure":"LEGACY","stateFilter":["enabled","paused"]}'
python scripts/sd/list_campaigns.py '{"profileId":1234567890,"region":"NA",
"stateFilter":{"include":["ENABLED"]}}'
python scripts/sd/list_product_ads.py '{"profileId":1234567890,"region":"NA",
"asinFilter":{"include":["B01ABCDEFG"]},
"campaignIdFilter":{"include":["998877665544"]}}'
本 skill 返回实体元数据(id、名称、状态、匹配类型等);指标(曝光、点击、花费、转化)交给 linkfox-amazon-ads-report(reportTypeId: "spTargeting" / "sbCampaigns" / "sdCampaigns" 等),按 id join。
httpStatus + body 告知用户truncated=true 时明确提示数据未取完| 状态 | 含义 | 建议 |
|---|---|---|
HTTP 401 |
accessToken 过期 | 调 ads-auth 的 refresh_token.py 后重试 |
HTTP 403 |
profileId 无权限 | 核对 profileId 归属 |
HTTP 400 |
入参结构错 | 先核对"过滤器结构速查"表 |
HTTP 429 |
限流 | 等 2-5s 重试 |
| exit 42 | 依赖 skill 未安装 | 先装 linkfox-amazon-ads-auth |
linkfox-amazon-ads-reportlinkfox-amazon-ads-auth不消耗积分。
Feedback:
Auto-detect and report feedback via the Feedback API when any of the following apply:
Call the feedback API as specified in references/api.md. Do not interrupt the user's flow.
For more high-quality, professional cross-border e-commerce skills, visit LinkFox Skills.