开始前准备
订阅前,手边要有这 4 样
LwA Client ID 与 Secret
你的 Ads API 应用凭证。还没有的看 Ads API 申请教程,或请我们 协助申请。
Refresh Token
用它换取 access token,后者有效期 60 分钟,过期再换 [5]。获取方法见 授权并获取 Refresh Token。
美国站 Profile ID
调用 GET /v2/profiles 获取 [6],详见 获取 Profile ID。
12 个 ARN
第 2 步每个数据集的 Firehose 流 ARN、订阅角色 ARN、订阅者角色 ARN。见 第 2 步。
分步演示
跟着动画完成一次订阅
可以用 Postman、官方命令行工具或 curl 发请求,填写内容相同。示例值均为占位。
请求示例
订阅请求怎么写:请求头与合法的 JSON 请求体
以 sp-traffic 为例。请求头与字段取自官方订阅文档 [1];destination 按官方列表接口返回的对象结构书写 [4]。
POST https://advertising-api.amazon.com/streams/subscriptions
Amazon-Advertising-API-ClientId: amzn1.application-oa2-client.xxxx
Amazon-Advertising-API-Scope: 你的美国站 profileId
Authorization: Bearer Atza|xxxx
Content-Type: application/vnd.MarketingStreamSubscriptions.StreamSubscriptionResource.v1.0+json
{
"clientRequestToken": "新建一个 GUID,重试时沿用",
"dataSetId": "sp-traffic",
"notes": "yourshop US sp-traffic",
"destination": {
"firehoseDestination": {
"deliveryStreamArn": "arn:aws:firehose:us-east-1:123456789012:deliverystream/NA-sp-traffic-sp-traffic-na",
"subscriptionRoleArn": "arn:aws:iam::123456789012:role/NA-sp-traffic-FirehoseSubscriptionRole",
"subscriberRoleArn": "arn:aws:iam::123456789012:role/NA-sp-traffic-FirehoseSubscriberRole"
}
}
}状态含义
Marketing Stream 订阅状态,分别是什么意思?
| 状态 | 含义 | 你该做什么 |
|---|---|---|
| PROVISIONING | 亚马逊侧正在配置订阅 [4] | 稍后再查 |
| ACTIVE | 订阅有效,正在投递数据 [4] | 进入 第 5 步 检查 S3 |
| FAILED_PROVISIONING | 亚马逊无法向你的 Firehose 投递,多为权限或配置问题 [3] | 核对 3 个 ARN、角色与 Firehose 是否存在,查 CloudTrail 拒绝记录 |
| SUSPENDED | 创建订阅的账号失去了该广告账户的访问权限 [4] | 不能恢复为 ACTIVE,只能用有权限的账号重新订阅 |
| ARCHIVED | 已归档,停止投递 [4] | 如需恢复,重新创建订阅 |
| PENDING_CONFIRMATION / FAILED_CONFIRMATION | SQS 方式才有的确认环节 [4] | Firehose 方式无需确认 [2];出现说明你订阅的目的地不是 Firehose |
工具与规则
用什么工具调用?有哪些订阅限制?
三种调用方式
- Postman(图形界面,推荐非技术卖家):官方 Postman 集合内置授权脚本和预置请求 [7],官方订阅管理页也推荐用它测试 Marketing Stream 接口 [4]。
- 官方命令行工具:亚马逊的 Marketing Stream 参考实现附带命令行工具,可创建、查询、列出和更新订阅 [2]。
- curl:按上方示例拼装请求即可。
订阅规则
- 同一 LwA 应用下,同一 profile + 数据集 + 目的地 ARN 只能有 1 个订阅;同一 profile + 数据集最多 2 个订阅 [4]。不要重复订阅。
- 始终用同一个 LwA Client ID 管理订阅 [4];订阅与生成 refresh token 的邮箱账号绑定,建议用公司共管邮箱授权 [3]。
- Ads API 的 refresh token 自同意之日起 365 天到期,需要重新授权 [8];重新授权时请用同一个亚马逊账号,否则看不到、也管不了原来的订阅 [3]。
- 只为本店的美国站 profile 订阅。加拿大、墨西哥站或其他店铺不要订阅到这 4 个 Firehose——一个桶只放一个广告账户的数据。
- 官方建议定期检查订阅状态,确认都处于 ACTIVE [4]。
为什么琼仁智度不直接替你订阅?订阅与创建它的账号和凭证绑定。由你本人用自己的 Ads API 凭证创建,订阅归属清晰,你随时可以归档停用;琼仁智度这边只需要读取你的 S3。API 凭证的归属与数据流向说明见 API 授权与数据说明。
订阅 Marketing Stream 常见故障
订阅一直卡在 PENDING_CONFIRMATION,怎么办?
状态是 FAILED_PROVISIONING,怎么修?
说明亚马逊无法把数据投递到你的 Firehose,常见原因是 IAM 权限不足、资源策略错误、跨账号访问问题、目的地已被删除或 Firehose 配置有误 [3]。逐一核对 3 个 ARN 是否属于同一个数据集的堆栈、两个角色是否由官方模板创建、Firehose 流是否仍存在,并在 CloudTrail 里查找拒绝记录。
调用时返回 400,提示区域不支持?
调用时返回 401?
GET 订阅列表是空的,可我明明订阅过?
订阅与生成 refresh token 的邮箱账号及客户端应用绑定。如果你换了邮箱重新授权,就看不到旧订阅 [3]。用原来的账号授权查看;原账号已无法使用的,官方建议联系 Ads API 支持协助归档。
想停掉某个订阅,怎么删?
没有删除接口。用 PUT /streams/subscriptions/{subscriptionId},把 status 设为 ARCHIVED 即停止投递 [4]。停用后该数据集不再推送,琼仁智度也就没有这部分小时级数据。
继续了解
相关功能
AWS 教程
AWS 小时级数据
5 步把亚马逊小时级广告数据接进你自己的 AWS,再交给中转客户端只读读取。
查看 →AWS 教程 · 2/5S3 与 Firehose
官方模板 ×4:自动建桶、Firehose 与 IAM 角色,默认不压缩、按 year=/month=/day= 分区。
查看 →AWS 教程 · 4/5只读 IAM 用户
一条只读策略 + 一个不开控制台的 IAM 用户 + 一对访问密钥,只能看 4 个桶。
查看 →Ads API · 第 4 步Profile ID 与验证
调用 /v2/profiles 取美国站 Profile ID,核对账户标识,做一次验证调用。
查看 →Ads APIAds API 申请
Ads API 申请 5 步:安全配置文件、申请分配、授权换 Token、Profile ID、365 天续期。
查看 →服务API 申请协助
¥499/次:你本人操作,我们远程指导 SP-API 与 Ads API 申请。
查看 →REFERENCES
参考资料与权威来源
本页所有涉及亚马逊规则、行业数据与方法论的表述均标注来源。链接指向官方文档、同行评审论文、专利或法律法规原文;访问日期 2026-09。
- [1]官方Subscribing to Amazon Marketing Stream datasets — Amazon Ads · 2026SP/SB 数据集用 POST /streams/subscriptions 订阅,请求头为 ClientId、Scope(profile ID)、Authorization 与指定的 Content-Type;请求体含 dataSetId、clientRequestToken 以及 destination.firehoseDestination 下的三个 ARN;为多个 profile 订阅须分别调用。
- [2]官方amzn/amazon-marketing-stream-examples(Amazon Marketing Stream reference implementation) — Amazon(GitHub) · 2026官方参考实现说明:使用 Firehose 时不再需要确认订阅(SQS 需要);附带命令行工具,可创建、查询、列出和更新订阅。
- [3]官方Amazon Marketing Stream FAQ — Amazon Ads · 2026FAILED_PROVISIONING 多因 Firehose 目的地的权限或配置问题;订阅与生成 refresh token 的邮箱账号及客户端应用绑定,换邮箱后看不到旧订阅;负数是无效流量等更正,聚合时应保留;ACTIVE 却收不到数据时应检查 Firehose 状态与权限;SQS 订阅须在 2 天内确认。
- [4]官方Managing Amazon Marketing Stream Subscriptions — Amazon Ads · 2026订阅状态含 PROVISIONING、ACTIVE、ARCHIVED、SUSPENDED 等,SUSPENDED 不能恢复为 ACTIVE;没有删除接口,只能用 PUT 把状态设为 ARCHIVED;同一应用下同一 profile+数据集+目的地只能有 1 个订阅、同一 profile+数据集最多 2 个;应使用同一个 LwA Client ID 管理订阅,并定期检查状态。
- [5]官方Access tokens — Amazon Ads API Docs · 2026Ads API 的 access token 有效期为 60 分钟,过期后需用 refresh token 重新获取。
- [6]官方Step 3: Retrieve a profile ID — Amazon Ads API Docs · 2026调用 GET /v2/profiles(请求头只需 Amazon-Advertising-API-ClientId 与 Authorization: Bearer)获取 profileId;返回空数组表示授权账号在该区域没有 View and Edit 权限。
- [7]官方Quickstart guide: Getting started using the Amazon Ads API Postman collection — Amazon Ads · 2026官方 Postman 集合内置授权脚本与预置请求,可在图形界面里调用 Ads API;官方订阅管理页也推荐用它测试 Marketing Stream 接口。
- [8]官方Refresh tokens — Amazon Ads API Docs · 20262026-07-30 及以后签发的 refresh token 自广告主同意之日起 365 天到期,到期日不因使用而延长,到期后须重新授权;撤销授权、移除应用、修改 LwA 凭证或可疑活动也会使其失效并返回 invalid_grant;建议加密保存并在到期前提醒重新授权。
- [9]官方Amazon Marketing Stream onboarding guide — Amazon Ads · 2026广告区域与 AWS 区域一一对应(北美 NA 对应 us-east-1);订阅时若资源所在区域不受支持会返回 400;多个 profile 需分别订阅;开通头一两天可能只收到更正数据而出现负数汇总。
- [10]官方Error responses and error status codes — Amazon Ads API Docs · 2026Ads API 错误说明:401 可能是缺少 Scope 请求头、profile 与广告主不匹配或无权访问该 scope;403 表示无权访问指定资源。