用 SP-API + Ads API 搭亚马逊每日自动报表:字段清单、时区口径,和三张表悄悄停更 5–7 周的教训
亚马逊每日运营报表怎么用 SP-API 和 Amazon Ads API 自动生成?我们的美国站小店每天北京 10:15 自动拉订单、销售与流量、库存、财务和广告报告,并给每个数据源单独写截止日期。本文给出真实在用的数据源表、广告报告字段清单、时区和口径规则,以及 2026-10-09 第一次做新鲜度检查时发现的三处停更:调度器约 8/22 起就没在跑、关键词层停在 9/4、库存快照停在 9/6。我们的结论是:自动报表最先要做的是「每张表截止到哪天」,不是漂亮的日报。店铺尚未盈利,本文讲怎么少看错数据,不承诺增长。
用 SP-API + Ads API 搭每日自动报表,难的不是接口,而是数据停了没人发现。我们的小店每天北京 10:15(美西前一天傍晚)自动拉 5 类数据:订单、销售与流量、库存、财务、广告,并且每天滚动重拉最近 7 天,因为报表有 48–72 小时延迟。2026-10-09 第一次给每个数据源写截止日期时,查出三处停更:整条流水线约 8/22 起没有调度器、关键词层数据停在 9/4、库存日快照停在 9/6,分别停了约 48、35、33 天。所以我们认为第一张该做的自动表,是写着每个来源截止到哪天的新鲜度表。
适用对象
每天几点跑
北京 10:15
等于美西前一天 19:15(夏令时)/ 18:15(冬令时),一般 30–60 分钟跑完
每天重拉多少天
最近 7 天
销售与广告报表有 48–72 小时延迟,只拉昨天会漏数
第一次新鲜度检查查出
3 处停更
调度器、关键词层、库存快照;2026-10-09
停了多久(自算)
约 48 / 35 / 33 天
从最后一次正常更新算到 10-09 发现
- 自动报表先做「每个来源截止到哪天」的新鲜度表,再做日报;我们三次出事都不是算错,而是数据停了。
- 时间一律原样存 UTC,业务日期按美西算;每天滚动重拉最近 7 天,已经封存核对过的日子不再改写。
- 订单金额、报表销售额、财务入账是三套口径,不要互相替代;退款按入账日期进财务层,不回头改销售额。
我们的每日报表由 5 类数据组成,每类走不同的接口
2026 年 3 月我们还是用脚本连上已经登录的 Chrome,到 Seller Central 和广告后台点下载报表;浏览器没开调试端口,脚本直接退出,当天就没有数据。后来改成以 SP-API 为主、广告走 Amazon Ads API,浏览器下载只留作过渡兜底。现在每天的数据源是这样的(接口版本以我们 2026-10 的接入文档为准):
本节判断
- 整条流程是「采集 → 规范化 → 兼容旧表 → 报表和告警」四层:设计上每次同步都记任务、带幂等键、能按日期回补,原始返回内容存档,方便事后核对。
- 流水线强制只读:一开始就清掉执行权限并设成只读模式,跑报表的过程中改不了广告、Listing、价格或买家消息。哪些活交给 AI、哪些要人批,见我们的 AI 分工表一文。
| 数据 | 接口或报告 | 每天拉什么 | 要注意的地方 |
|---|---|---|---|
| 订单 | SP-API Orders API(v2026-01-01) | 订单头、订单行、状态变化 | 订单状态会变,按「站点 + 订单号(+ 订单行号)」覆盖写入最新值,不重复计 |
| 销售与流量 | SP-API 报告 GET_SALES_AND_TRAFFIC_REPORT | Sessions、页面浏览、订购件数、销售额、转化率,最近 7 天 | 返回 JSON 不是 CSV;按我们的接入文档要 Brand Analytics 相关角色;一次一个请求,遇到 429 限流就退避 |
| 库存 | SP-API FBA Inventory(getInventorySummaries)+ 库存规划报告 + 库存台账报告 | 可售、保留、在途、不可售、核查中,分层存;库龄和仓储费汇总 | 台账报告(GET_LEDGER_SUMMARY_VIEW_DATA)要单独的角色,没有就返回 403 |
| 财务 | SP-API Finances(v2024-06-19 listTransactions) | 退款、费用、结算、调账流水 | 按入账日期归档,费用明细不合并成一个数 |
| 广告 | Amazon Ads API v3 报告:活动报告 spCampaigns、定向报告 spTargeting | 按天的展示、点击、花费、7 天归因订单和销售 | 两种报告字段不同,不能共用一份列清单(见下一节的坑) |
| 搜索词表现 | 品牌分析的搜索查询表现(SQP) | 最近 2 周 | 按周出,不能当日数据用 |
广告报告字段清单:定向报告少了 7 列,关键词数据就整段消失
这是我们真在用的两份列清单。活动报告 9 列够用;定向报告必须多要 7 列「是哪个词、哪个定向」的身份字段,否则每一行都只是活动级汇总,入库时会被当成无效行丢掉。
本节判断
- 坑 1:我们在配置里写过一份「默认列清单」,它是给活动报告用的,却被同样套到了定向报告上,定向身份列没了。现在配置里的列清单只对活动报告生效。
- 坑 2:报告是异步生成的,我们会缓存 1 小时内的报告编号避免重复请求;缓存必须同时比对报告类型和列清单,活动报告和定向报告不能共用一个缓存。
- 坑 3:销售与流量报告的关键字段是 sessions、pageViews、unitsOrdered、orderedProductSales、unitSessionPercentage,buyBoxPercentage 按需加;它不扣退款,退款归财务层。
| 报告 | 列 | 用途 |
|---|---|---|
| 活动报告 spCampaigns | date、campaignId、campaignName、impressions、clicks、cost、purchases7d、unitsSoldClicks7d、sales7d | 每天每个活动的花费和 7 天归因订单、件数、销售额,算 ACoS 和 TACoS |
| 定向报告 spTargeting | 上面 9 列 + adGroupId、adGroupName、keywordId、keyword、targeting、matchType、keywordType | 落到每个关键词或商品定向,决定调哪个出价、否哪个词 |
时间和口径的 5 条规则:大部分「数字对不上」出在这里
自动报表里最常见的错,不是公式错,而是两个数字其实不是一个口径、一个日子。我们定死了下面 5 条:
本节判断
- 时间原样存 UTC,业务日期按站点时区算(美国站按美西 America/Los_Angeles)。北京时间的「昨天」和美西的「昨天」不是同一天。
- 每天北京 10:15 跑:这时美西前一天已经结束好几个小时,订单和库存稳定了;销售和广告报表还有 48–72 小时延迟,所以每次滚动重拉最近 7 天,而不是只拉昨天。销售与流量报表不请求美西当天,避免把半天的数据当整天。
- 订单金额、报表销售额、财务入账是三套口径:经营日报用销售与流量报表的销售额,订单表看业务事实,财务表看真实入账;不用订单金额替代报表销售额。
- 退款晚到是正常的,按财务入账日期记,不回头改当初那天的销售额。月度盈亏要单独拼财务桥,不能直接拿日报相加。
- 已经核对封存的日子不许再改写。2026-10-09 一次手动试跑,旧导入脚本改坏了 38 个已封存的日子,从备份恢复后,所有导入都改成跳过封存日,每次跑完再校验一遍封存数据有没有变。
三处停更:都不是接口坏了,是数据悄悄停了
2026-10-09 我们给每个数据源登记「最大允许滞后天数」后跑了第一次检查。销售和广告活动数据到 10-07、订单明细到 10-08、财务到 10-04,都在预期内;但有三处明显停了。停了多少天是我们自己从最后一次正常更新算到 10-09 的:
本节判断
- 台账补出来的库存和真实快照不是一回事:我们用的口径是可售库存的期末结余,和 9/6、9/12、9/24 三天真实快照的「可售 + 预留」相比差不到 0.4%;入库数未知记 0,且只覆盖台账里的 33 个新品 SKU。补出来的数据在库里标了来源,文章和复盘里引用时会写明。
- 这三处停更期间,每日复盘一直在写(复盘直接读实时库存和订单),所以没人察觉库里的表已经停了。这就是我们说「先做截止日期表」的原因。
| 停更的数据 | 停在 | 停了约(自算) | 原因 | 怎么补的 |
|---|---|---|---|---|
| 整条每日流水线的调度 | 约 2026-08-22 | 48 天 | 旧的定时任务指向一个已经不存在的脚本,没加载;之后各同步只在有人手动跑时才跑 | 10-09 重装定时任务(每天北京 10:15),加防重入锁,旧任务改名停用 |
| 广告关键词 / 定向层 | 2026-09-04 | 35 天 | 一个本地数据保护规则把活动级的封存检查误套到定向报告上;同时定向报告用了缺身份列的列清单 | 修规则、补列清单,回填缺口 |
| 库存日快照 | 2026-09-06 | 33 天 | 复盘时实时读库存,但没有回写进库;补数要用的库存台账报告返回 403(应用缺这个角色) | 先用复盘留存的实时快照回放能补的日子;10-10 角色到位后,用 626 行台账汇总补齐 9/7–11、9/13–23,序列连续到 10-10 |
第一张自动表应该是新鲜度表:每个来源截止到哪天
大家搭自动报表,通常先做漂亮的日报和看板。我们的看法是顺序反了:日报会在数据停了以后继续照常生成,看不出问题;只有一张写着「每个来源截止到哪天、允许滞后几天」的表,才会在某个来源超过允许滞后时报警。
我们的登记表每个来源一行:用哪张表、看哪个日期列、过滤条件、最大允许滞后天数、谁负责生产、状态(在用 / 已知停更 / 已退役)。滞后按美西当天算。每天流水线最后一步跑一次检查,结果同时写成人读日志和机器读文件;已知停更和已退役的来源只显示不报错。检查不让整条流程失败,只告警,避免一张表停了连带其他报表都不出。
给 AI 做分析时也一样:每次复盘开头先贴这张表,结论里分别写订单、广告、库存、流量各自截止到哪天。具体怎么写,见我们的「证据分 4 级、每个来源单独写截止日期」一文。
| 列 | 填什么 | 为什么要 |
|---|---|---|
| 来源 | 订单 / 销售与流量 / 库存快照 / 财务 / 广告活动 / 广告定向 / 搜索词表现 | 一个来源一行,不合并 |
| 日期列 | 这张表里代表业务日期的字段 | 按它算最新一天 |
| 最大允许滞后 | 按来源分别定(示例:报表类 3 天、搜索词按周) | 超过就报警;报表本身有 48–72 小时延迟,不能设成 1 天 |
| 生产者 | 哪个同步任务写它 | 停了知道找谁 |
| 状态 | 在用 / 已知停更 / 已退役 | 退役的表不再报警,也不该再被引用 |
不写代码的卖家:先做一个手工版截止日期表
没有开发能力,也能拿到这套做法里最值钱的部分。下面是我们的建议,不是我们店铺的数据:
本节判断
- 每次从后台下载报表,文件名里写上报表覆盖的美西日期范围,比如「广告_活动_0925-1001」,不要只写下载日期。
- 每周一张表,列出你在看的每份报表最新一天是哪天;有一份落后超过 3 天就先别下结论。
- 把报表丢给 ChatGPT、DeepSeek 之类做分析前,先告诉它每份报表截止到哪天,并要求它在结论里分别写出来。
- 广告看最近 7 天时,记住最后 2–3 天的订单还会继续涨,别拿它和已经稳定的周比。
这套报表没有解决什么
它让我们少看错数据,但不会自己带来销量。店铺目前仍未真正盈利;我们没有「上自动报表前后」的利润对照,也没有统计省了多少工时,所以不写这类数字。部分接口要单独申请角色(比如库存台账),申请到之前就是会有缺口,只能如实标「未知」。
我们不对外提供接口代码和密钥。每日复盘的提示词、agent 规则模板和报表字段清单整理在 ¥99 工作流包里;想让我们帮你的店铺接数据、定截止日期规则,可以登记首次诊断。
免费 · 留邮箱领速查表
亚马逊上架报错码速查表(Excel 可直接打开)
- 站上已核对的报错码一张表:8541、8007、5461、5665、90057、13013 等,新码上线会同步加进来
- 每个码:一句话含义、官方原文说明、出现场景、官方处理步骤摘要
- 附官方 PDF 出处和详细说明页,打印出来贴在运营工位就能用
资料下载
用 SP-API + Ads API 搭亚马逊每日自动报表:字段清单、时区口径,和三张表悄悄停更 5–7 周的教训
免费资料无需注册即可下载;付费资料和 AI 诊断申请会绑定到你的账号,方便找回订单和继续沟通同一个经营问题。
觉得有用?转给正在做这件事的同事或朋友
参考依据
以下来源用于确认市场趋势、政策背景和术语边界;具体落地方案仍以客户的数据范围、权限和交付目标为准。
常见问题
SP-API 和 Amazon Ads API 是一回事吗?
不是。SP-API 管订单、销售与流量报表、库存、财务等店铺数据;广告的展示、点击、花费和归因销售要走 Amazon Ads API,两边授权和报告格式都不同。
每日报表应该几点跑?
等美西前一天结束几个小时后再跑。我们定在北京 10:15,相当于美西前一天傍晚;并且每次滚动重拉最近 7 天,因为销售和广告报表有 48–72 小时延迟。
广告定向报告要拉哪些字段?
在活动报告的 date、campaignId、campaignName、impressions、clicks、cost、purchases7d、unitsSoldClicks7d、sales7d 之外,还要 adGroupId、adGroupName、keywordId、keyword、targeting、matchType、keywordType。少了这些身份列,就只剩活动级汇总。
库存台账报告请求返回 403 怎么办?
通常是开发者应用缺这个报告需要的角色,要先给应用加上对应角色。我们 10-09 就卡在这里,10-10 角色到位后才补齐了库存缺口。
自动报表最容易出什么错?
我们遇到最多的是数据悄悄停更:定时任务没跑、某个报告字段缺了、权限不够,日报照常生成,数字却是旧的。所以每个数据源都要单独写截止日期并设滞后报警。
下一步
推荐动作
含每日复盘、月度盈亏桥等 5 套提示词,agent 规则模板(4 级证据优先级、数据截止时间、审批闸门)和报表字段清单;不含任何代码、密钥和店铺数据。想让我们帮你的店铺接入数据、定新鲜度规则,可登记首次诊断(¥999 起,只登记不预收)。