这跟卖家有什么关系?
如果你已经在亚马逊(Amazon)投放 Sponsored Products/Sponsored Brands 广告,肯定知道关键词和搜索词(search term)优化是日常必做的事。传统上我们都是每周手动下载搜索词报告、筛选无效词、调价,然后再导入 Bulk Sheet。现在有了 MCP(Model Context Protocol),AI 可以直接连通亚马逊广告 API,自动完成报告抓取、负向词筛选、关键词调价甚至执行改动。把这套自动化搬进你的独立站/店铺运营,等于是把每周几小时的手工工作压缩到几分钟,省的人力成本直接转化为更快的 ROAS 提升。
前置条件
- 拥有亚马逊广告(Amazon Advertising)开发者账号并开通 API 权限。
- 能够使用 OpenAI 或 Anthropic(Claude)等大模型的最新版(ChatGPT、Claude)并拥有对应的 API Key。
- 一台可以运行 Python 脚本的服务器或本地电脑(推荐使用
venv虚拟环境)。 - 基础的 Python 编程经验(会安装库、运行脚本即可)。
分步操作
1. 注册并获取亚马逊广告 API 访问凭证
- 登录 Amazon Advertising Console,进入 “Developer Settings”。
- 创建新 “App”,记下
Client ID、Client Secret。 - 在 “OAuth 2.0” 中为你的账号生成
Refresh Token(后续脚本会用它换取 Access Token)。 - 把上述四个字段保存到本地
.env文件,格式如:
AMZ_CLIENT_ID=xxxx
AMZ_CLIENT_SECRET=xxxx
AMZ_REFRESH_TOKEN=xxxx
2. 搭建 MCP 代理层(Model Context Protocol)
MCP 本质上是一个中间件,让大模型可以直接调用外部 API。我们这里使用开源的 Semantic Kernel(微软语义内核)配合 sk-toolkit 实现。
- 在服务器上创建项目文件夹并初始化虚拟环境:
mkdir amz-mcp && cd amz-mcp
python -m venv venv
source venv/bin/activate - 安装依赖:
pip install semantic-kernel openai anthropic requests python-dotenv - 新建
mcp_config.py,内容示例:import os from dotenv import load_dotenv load_dotenv() AMZ_CLIENT_ID = os.getenv("AMZ_CLIENT_ID") AMZ_CLIENT_SECRET = os.getenv("AMZ_CLIENT_SECRET") AMZ_REFRESH_TOKEN = os.getenv("AMZ_REFRESH_TOKEN") OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") # 或 ANTHROPIC_API_KEY - 编写
amz_api.py,封装获取 Access Token、请求搜索词报告、执行负向词和出价修改的函数(代码略,参考官方 API 文档)。 - 在
mcp_toolkit.py中注册两个工具: get_search_term_report()– 返回最近 7 天的搜索词报告(CSV 转 JSON)。apply_negative_keywords(keywords:list)– 调用亚马逊 Bulk API 添加负向词。adjust_bid(keyword:str, new_bid:float)– 单关键词即时调价。- 启动 Kernel 并加载工具:
from semantic_kernel import Kernel
from mcp_toolkit import get_search_term_report, apply_negative_keywords, adjust_bid
kernel = Kernel()
kernel.import_skill(get_search_term_report, "amz")
kernel.import_skill(apply_negative_keywords, "amz")
kernel.import_skill(adjust_bid, "amz")
3. 编写 Prompt 并让模型自动化执行
下面是一套实测有效的 Prompt 模板,直接复制到 prompt.txt,模型会先抓报告、再筛选负向词、最后执行。
你是亚马逊广告优化专家,使用已连接的 MCP 工具完成以下步骤:
1. 调用 amz.get_search_term_report(),获取最近 7 天的搜索词数据。
2. 对每条记录计算 ACOS = (spend / sales) * 100。
3. 选出满足以下任一条件的搜索词作为负向词:
- ACOS > 80% 且 转化率 < 0.5%;
- spend > $20 且 sales = 0;
- 关键词出现次数 < 5 且 过去 30 天无任何点击。
4. 将筛选出的关键词列表传入 amz.apply_negative_keywords(keywords)。
5. 对表现好的关键词(ACOS < 30% 且 转化率 > 2%)进行出价提升 10%,调用 amz.adjust_bid(keyword, new_bid)。
6. 输出本次操作的摘要(负向词数量、调价关键词数量、预计节省 spend)。
把 Prompt 放进 run.py:
from semantic_kernel import Kernel
from mcp_toolkit import * # 已在前一步注册
kernel = Kernel()
kernel.import_skill(get_search_term_report, "amz")
kernel.import_skill(apply_negative_keywords, "amz")
kernel.import_skill(adjust_bid, "amz")
prompt = open("prompt.txt").read()
result = kernel.run(prompt)
print(result)
运行 python run.py,模型会在几秒钟内完成整个流程,并在终端打印操作摘要。
4. 设置定时任务,实现每日自动化
- 在 Linux 主机上编辑 crontab:
crontab -e - 添加每日 02:00 执行的任务行:
0 2 * * * /path/to/venv/bin/python /path/to/amz-mcp/run.py >> /var/log/amz_mcp.log 2>&1 - 保存后,系统会在每晚自动抓取报告、负向词、调价,几乎不产生额外人工成本。
5. 监控与报表(可选)
如果想要把每日执行结果推送到 Slack 或 Telegram,只需在脚本末尾调用对应的 Webhook:
import requests
SLACK_WEBHOOK = os.getenv("SLACK_WEBHOOK")
payload = {"text": result}
requests.post(SLACK_WEBHOOK, json=payload)
避坑提醒
- API 调用频率限制:亚马逊广告 API 对每个账号每天的请求次数有限,建议把报告抓取和批量操作合并在一次请求里,避免触发 429 错误。
- 负向词阈值要适度:过于激进的负向词筛选会导致流量骤降,建议先在测试广告组(Test Campaign)里跑 1 周,确认 ACOS 改善后再全站推广。
- 出价调幅控制:模型默认 10% 提升,实际操作中可根据品类利润率自行调低(如 5%),防止因竞价过高导致 ACoS 反弹。
- 日志与回滚:每次调价或负向词添加后,都应记录下 API 返回的
operationId,出现误删时可通过亚马逊后台手动恢复。
你现在就该做的 3 件事
- 获取亚马逊广告 API 凭证(Client ID、Client Secret、Refresh Token),并在本地保存到
.env。 - 部署 MCP 脚本:按照上述步骤安装依赖、配置
mcp_config.py、复制 Prompt 模板并测试一次手动运行。 - 设置每日定时任务(cron)并把执行结果推送到你的团队沟通工具,确保自动化真正落地。
完成以上三步后,你的 Amazon PPC 负向词和关键词调价将实现“几秒钟完成、每日自动化”,人力成本基本为零,ACOS 通常能下降 10%~20%,ROAS 相应提升。