PPCWISER 琼仁智度 LogoPPCWISER琼仁智度
AWS + Marketing Stream 教程 · 第 3/5 步

第 3 步:用 Ads API 订阅 4 个 Marketing Stream 数据集

S3 和 Firehose 建好后,亚马逊还不知道要往哪里推。这一步用你的 Amazon Ads API 凭证,告诉亚马逊:把这个店铺的 4 类小时级数据,分别推到这 4 个 Firehose。琼仁智度不会替你创建订阅,订阅由你本人创建、归你所有。

30 天免费试用¥99/月/店铺起凭证只存你自己的电脑
开始前准备

订阅前,手边要有这 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 发请求,填写内容相同。示例值均为占位。

示意动画。请求头与字段名以 Amazon Ads 官方文档为准。
请求示例

订阅请求怎么写:请求头与合法的 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" } } }
官方 curl 示例里的 destination 写法不要照抄官方 Firehose 订阅页的 curl 示例把 destination 的值写成了带引号的字符串,这不是合法的 JSON 对象 [1]。请按上面的对象写法填写(依据官方列表接口的返回结构 [4],推断)。
  • clientRequestToken:调用方提供的不重复的值,用于识别重复请求;重试同一请求时要沿用同一个值,官方建议用 GUID [1]。
  • notes:选填,写明店铺与数据集,日后排查更方便。
  • 成功响应:返回 subscriptionId [1],把它和数据集名一起记到你的清单里。
状态含义

Marketing Stream 订阅状态,分别是什么意思?

状态含义你该做什么
PROVISIONING亚马逊侧正在配置订阅 [4]稍后再查
ACTIVE订阅有效,正在投递数据 [4]进入 第 5 步 检查 S3
FAILED_PROVISIONING亚马逊无法向你的 Firehose 投递,多为权限或配置问题 [3]核对 3 个 ARN、角色与 Firehose 是否存在,查 CloudTrail 拒绝记录
SUSPENDED创建订阅的账号失去了该广告账户的访问权限 [4]不能恢复为 ACTIVE,只能用有权限的账号重新订阅
ARCHIVED已归档,停止投递 [4]如需恢复,重新创建订阅
PENDING_CONFIRMATION / FAILED_CONFIRMATIONSQS 方式才有的确认环节 [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,怎么办?
这是 SQS 方式才有的确认状态,Firehose 订阅不需要确认 [2]。出现它说明你的请求体里写的是 SQS 目的地,请检查 destination 是否为 firehoseDestination。另外,官方两处文档对 SQS 确认期限写法不一(管理页写 3 天、FAQ 写 2 天)[4][3]。
状态是 FAILED_PROVISIONING,怎么修?
说明亚马逊无法把数据投递到你的 Firehose,常见原因是 IAM 权限不足、资源策略错误、跨账号访问问题、目的地已被删除或 Firehose 配置有误 [3]。逐一核对 3 个 ARN 是否属于同一个数据集的堆栈、两个角色是否由官方模板创建、Firehose 流是否仍存在,并在 CloudTrail 里查找拒绝记录。
调用时返回 400,提示区域不支持?
Marketing Stream 只支持特定的 AWS 区域,北美为 us-east-1;资源建在其他区域就会报这个错,官方建议用 CloudFormation 模板避免 [9]。回到 第 2 步 在 us-east-1 重建。
调用时返回 401?
常见于 access token 过期、缺少 Amazon-Advertising-API-Scope 请求头、profile 与授权账号不匹配 [10]。access token 有效期 60 分钟,过期重新换取 [5];profile 必须来自北美端点 [6]。
GET 订阅列表是空的,可我明明订阅过?
订阅与生成 refresh token 的邮箱账号及客户端应用绑定。如果你换了邮箱重新授权,就看不到旧订阅 [3]。用原来的账号授权查看;原账号已无法使用的,官方建议联系 Ads API 支持协助归档。
想停掉某个订阅,怎么删?
没有删除接口。用 PUT /streams/subscriptions/{subscriptionId},把 status 设为 ARCHIVED 即停止投递 [4]。停用后该数据集不再推送,琼仁智度也就没有这部分小时级数据。

订阅需要 Ads API 凭证?可以自己申请,也可以请我们协助

按教程自行申请免费;需要协助 ¥499/次。PPCWISER 琼仁智度 30 天免费试用,全部功能开放。

入门版 ¥99/月/店铺 · 含 10 个产品 · 每增加 1 个产品 +¥10/月
继续了解

相关功能

AWS 教程

AWS 小时级数据

5 步把亚马逊小时级广告数据接进你自己的 AWS,再交给中转客户端只读读取。

查看 →
AWS 教程 · 2/5

S3 与 Firehose

官方模板 ×4:自动建桶、Firehose 与 IAM 角色,默认不压缩、按 year=/month=/day= 分区。

查看 →
AWS 教程 · 4/5

只读 IAM 用户

一条只读策略 + 一个不开控制台的 IAM 用户 + 一对访问密钥,只能看 4 个桶。

查看 →
Ads API · 第 4 步

Profile ID 与验证

调用 /v2/profiles 取美国站 Profile ID,核对账户标识,做一次验证调用。

查看 →
Ads API

Ads API 申请

Ads API 申请 5 步:安全配置文件、申请分配、授权换 Token、Profile ID、365 天续期。

查看 →
服务

API 申请协助

¥499/次:你本人操作,我们远程指导 SP-API 与 Ads API 申请。

查看 →
REFERENCES

参考资料与权威来源

本页所有涉及亚马逊规则、行业数据与方法论的表述均标注来源。链接指向官方文档、同行评审论文、专利或法律法规原文;访问日期 2026-09。

  1. [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. [2]官方amzn/amazon-marketing-stream-examples(Amazon Marketing Stream reference implementation) — Amazon(GitHub) · 2026官方参考实现说明:使用 Firehose 时不再需要确认订阅(SQS 需要);附带命令行工具,可创建、查询、列出和更新订阅。
  3. [3]官方Amazon Marketing Stream FAQ — Amazon Ads · 2026FAILED_PROVISIONING 多因 Firehose 目的地的权限或配置问题;订阅与生成 refresh token 的邮箱账号及客户端应用绑定,换邮箱后看不到旧订阅;负数是无效流量等更正,聚合时应保留;ACTIVE 却收不到数据时应检查 Firehose 状态与权限;SQS 订阅须在 2 天内确认。
  4. [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. [5]官方Access tokens — Amazon Ads API Docs · 2026Ads API 的 access token 有效期为 60 分钟,过期后需用 refresh token 重新获取。
  6. [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. [7]官方Quickstart guide: Getting started using the Amazon Ads API Postman collection — Amazon Ads · 2026官方 Postman 集合内置授权脚本与预置请求,可在图形界面里调用 Ads API;官方订阅管理页也推荐用它测试 Marketing Stream 接口。
  8. [8]官方Refresh tokens — Amazon Ads API Docs · 20262026-07-30 及以后签发的 refresh token 自广告主同意之日起 365 天到期,到期日不因使用而延长,到期后须重新授权;撤销授权、移除应用、修改 LwA 凭证或可疑活动也会使其失效并返回 invalid_grant;建议加密保存并在到期前提醒重新授权。
  9. [9]官方Amazon Marketing Stream onboarding guide — Amazon Ads · 2026广告区域与 AWS 区域一一对应(北美 NA 对应 us-east-1);订阅时若资源所在区域不受支持会返回 400;多个 profile 需分别订阅;开通头一两天可能只收到更正数据而出现负数汇总。
  10. [10]官方Error responses and error status codes — Amazon Ads API Docs · 2026Ads API 错误说明:401 可能是缺少 Scope 请求头、profile 与广告主不匹配或无权访问该 scope;403 表示无权访问指定资源。