申请体验
全渠道整合 · 实战指南

DTC + Amazon 广告数据打通:如何用一个 MMM 看清全渠道真实增量

Meta/Google/TikTok 的花费在你自己的后台,Amazon Ads 的花费和转化在亚马逊的后台,两套数据从粒度到归因逻辑完全不是一回事。预算会议上经常出现"两边都说自己贡献大"的死锁——这篇文章讲清楚问题出在哪,以及怎么打通。

SparkX 团队2026 年 9 月 3 日约 23 分钟阅读
目录
问题:两套账本,一个预算 为什么口径天然不一样 Amazon 数据能拿到什么 统一口径第一步:目标变量 统一口径第二步:时间粒度对齐 统一口径第三步:站内站外协同效应 外溢公式一:直接效应扩展 外溢公式二:两阶段中介模型 怎么验证外溢效应是真的 证明双向外溢:为什么单向不够 对称双方程系统 用 Granger 因果检验验证方向 实操建议 在 MMM 里怎么建这个模型 三个常见误区 落地清单

问题:两套账本,一个预算

如果你的品牌同时在 Meta、Google、TikTok 投站外广告,又在 Amazon 上跑 Sponsored Products / Sponsored Brands / DSP,你大概率遇到过这个场景:季度预算会议上,站外团队拿着 GA4 或者 Shopify 的归因报告,说"Meta 贡献了 35% 的收入";Amazon 运营团队拿着 Amazon Ads Console 的 ACOS 报表,说"Sponsored Products 的 ROAS 是 4.2"。两份数据都不假,但没有人能回答一个更关键的问题:如果把预算从 Meta 挪 10% 到 Amazon DSP,总增量会怎么变?

这个问题回答不了,本质原因不是数据不够,而是两套体系的"转化"根本不是同一件事。Meta 归因的是站外落地页到 Shopify/独立站的购买,Amazon Ads 归因的是站内 ASIN 的购买——同一个消费者可能被 Meta 广告种草后,直接搜索品牌词跑去 Amazon 下单,这笔交易在 Meta 后台看是"未转化",在 Amazon 后台看是"自然搜索转化",两边都不会把功劳记给对方,但真正驱动这笔交易的可能恰恰是 Meta 广告的种草效应。

常见误判

把 Meta ROAS 和 Amazon ACOS 倒数直接放在同一张表里比大小,是这个问题最常见的错误处理方式。两个指标的分母(归因窗口、转化定义、是否含自然流量)都不一样,直接比较得出的"谁更该加预算"的结论,大概率是错的。

为什么口径天然不一样

把两套数据放进同一个模型之前,先要理解三个结构性差异,这些差异不是"数据没对齐",而是两个平台的产品设计决定的:

维度DTC 站外(Meta/Google/TikTok)Amazon Ads
转化定义落地页/独立站的购买事件(像素/Conversions API 回传)ASIN 层级的订单,可能来自广告点击,也可能来自广告曝光后的自然搜索
归因窗口Meta 默认 7 天点击 + 1 天曝光,可配置取决于广告类型和卖家身份:Sponsored Products 对 Seller 是 7 天点击归因,对 Vendor/Author 是 14 天;Sponsored Brands / Display 统一 14 天;Amazon DSP 统一 14 天(含点击和曝光)
销售数据粒度订单级,可关联独立站 SKU、客户 IDASIN 级汇总,Amazon 出于隐私政策不提供订单级明细给第三方工具
是否含自然流量广告平台只报告广告归因的转化Amazon 的"广告后台 ROAS"不含自然搜索/推荐流量贡献,但 Brand Analytics 报表可以看到品类搜索词整体趋势
渠道间外溢站外广告对 Amazon 站内转化的拉动,站外平台完全看不到Amazon 站内广告对站外品牌搜索的拉动,Amazon 后台也完全看不到

最后一行是关键——渠道间外溢(cross-channel spillover)在任何单一平台的原生报表里都是不可见的。这也是为什么"两边都算自己的账"永远算不出谁的贡献更大:因为各自的账本设计上就不包含对方渠道制造的外溢效应。这恰恰是 MMM 存在的意义:MMM 不依赖任何单一平台的归因像素,而是用全渠道的花费和总销售额时间序列,反推每个渠道(含外溢)的真实边际贡献。

Amazon 数据能拿到什么

要把 Amazon 纳入 MMM,第一步是搞清楚能程序化拿到哪些数据。Amazon 目前对第三方分析工具开放的是 Amazon Marketing Stream 和 Amazon MMM API(Beta/GA 状态因市场而异)两条路径,核心可用数据分三类:

接入现状说明

SparkX 的 Amazon Ads API 连接器目前状态是即将上线(产品路线图 v1.5),需要品牌在 Amazon Ads Console 完成注册并通过审批后才能授权同步。在连接器正式上线前,这条数据目前需要通过 Amazon Ads Console 或 Amazon Marketing Stream 手动导出 CSV,再通过 SparkX 的通用数据上传功能接入建模管道。这不影响下文讲的建模方法——手动导出的数据和未来自动同步的数据在字段结构上是一致的。

拿到这些数据后,真正的工作才开始:把它们对齐到和站外渠道同一张时间序列表里,这是下面三步要解决的问题。

统一口径第一步:目标变量

MMM 的目标变量(要解释的 Y)必须是一个能同时装下站内站外交易的口径。如果你的品牌在 Amazon 上的销售占比不小(很多 DTC 品牌 Amazon 渠道占 20–40% 的总收入),只用独立站收入作为目标变量,会让模型系统性低估所有能拉动 Amazon 站内转化的渠道(尤其是品牌类广告和电视/线下渠道)的真实贡献。

正确的做法是把目标变量定义为总收入 = 独立站收入 + Amazon 站内收入(含广告归因和自然搜索),按天或按周汇总成一条时间序列。这一步的难点不是技术,是组织协调——独立站收入通常在 Shopify/GA4,Amazon 收入在 Amazon Ads Console 和 Seller Central,两个数据源的对账口径(含税、含退款、含运费)需要提前拉齐,否则会在合并后的序列里引入噪音,反过来污染模型对广告效应的估计。

统一口径第二步:时间粒度对齐

Amazon 广告的归因窗口普遍比站外平台更长,但具体长度因广告类型和卖家身份而不同——Sponsored Products 下 Seller 账户是 7 天,Vendor/Author 账户是 14 天;Sponsored Brands/Display 和 DSP 不区分卖家身份,统一是 14 天。如果直接把两边的"当日转化数"拼接成一张表,会造成一个隐蔽的时序错位:Amazon 侧(尤其是 14 天窗口的广告类型)的"转化"实际上是过去一到两周内多次曝光/点击的累积结果,而站外侧的"转化"更贴近当天或近几天的曝光效果。

MMM 本身用 Adstock(广告存量衰减)机制来处理这种时序延迟效应,这也是为什么 MMM 比单纯拼表格更适合处理跨平台数据——你不需要人工把 Amazon 的归因窗口"拉平"成 7 天,而是把 Amazon 花费也当作一个独立渠道输入模型,让 Adstock 衰减参数自己去拟合这个渠道实际呈现出的滞后效应长度。需要人工做的,只是保证花费数据本身按自然日/自然周正确对齐,不要把 Amazon 的"归因周期"和实际"花费发生周期"搞混——花费永远按实际投放日期记录,归因窗口的差异交给模型的 Adstock 层处理。

统一口径第三步:站内站外协同效应

这是整篇文章最重要的一步,也是回答"两边都说自己贡献大"这个死锁问题的关键。品牌搜索量(Branded Search Volume)是连接站外和站内渠道的桥梁——Meta/TikTok 上的种草广告,很大一部分转化路径是:看到广告 → 不点击 → 几天后在 Amazon 或 Google 上搜索品牌词 → 下单。这条路径里,Meta 广告制造了需求,但转化发生在 Amazon 站内,Meta 广告后台看不到这笔转化,Amazon 广告后台会把它算成"自然搜索"而不是广告归因。

把站外广告花费和 Amazon 站内销售放进同一个 MMM 模型,模型能够捕捉到这种滞后的跨渠道拉动关系:如果 Meta 花费的系数在控制了 Amazon 自身广告花费之后依然显著为正,且这个效应在时间上滞后于 Meta 花费本身(通过 Adstock 衰减参数体现),这就是统计意义上可信的"外溢证据"——比任何单一平台的归因报表都更接近真实的因果关系。

实践建议

如果条件允许,建议同时把"品牌词搜索量"(Google Trends 品牌词指数,或 Amazon Brand Analytics 里的搜索排名数据)作为一个辅助的控制变量纳入模型。它本身不是一个媒介渠道,但能帮助模型把"站外广告拉动品牌搜索、品牌搜索转化到 Amazon"这条路径的中间环节显性化,减少外溢效应被错误地归因给其他相关变量(比如季节性)的风险。

把外溢效应写成公式:两种建模方式

"站外广告拉动站内自然转化"这句话要在 MMM 里落地,需要先明确一个前提:普通的单渠道 MMM 方程没有办法表达外溢,因为它假设每个渠道的贡献只取决于自己的历史花费。要装下外溢,有两种数学上站得住脚的做法——直接效应扩展法和两阶段中介模型,两者可以配合使用。

方式一:把外溢项直接写进销售方程

标准 MMM 的销售方程是:

Sales(t) = Base + Σi βi · f(Adstocki(Spendi(t))) + Seasonality(t) + ε(t)

这个方程假设渠道之间互不影响,Amazon 站内转化只取决于 Amazon 自己的广告花费。要显式建模"Meta 花费拉动 Amazon 站内自然转化",需要在方程里加一个跨渠道交互项:

SalesAmazon(t) = Base + βamz · f(Adstockamz(t)) + γ · Adstockmeta(t − τ) + ε(t)

其中 γ(gamma)就是外溢系数——它衡量的是"控制了 Amazon 自身广告花费之后,Meta 的历史花费对 Amazon 站内销售还有多少净贡献"。τ(tau)是滞后期数,因为种草到转化通常有几天到两周的延迟,不会是当天发生。这个方程能不能估计出稳健的 γ,取决于三件事:

方式二:两阶段中介模型(把品牌搜索作为中间变量)

直接效应扩展法有个局限:它把 Meta 花费到 Amazon 销售之间的机制当成一个黑箱,只估计一个总的 γ,看不出"到底是不是通过品牌搜索这条路径"在起作用。如果你有品牌词搜索量数据(Google Trends 品牌词指数,或 Amazon Brand Analytics 的搜索排名),可以把这条因果链拆成两段来估计,这在计量经济学里叫中介分析(Mediation Analysis):

Stage 1: BrandSearch(t) = α0 + α1 · Adstockmeta(t) + controls + ε1(t)
Stage 2: SalesAmazon(t) = β0 + β1 · BrandSearch(t) + β2 · Adstockamz(t) + controls + ε2(t)

第一阶段回答"Meta 花费能不能拉动品牌搜索",第二阶段回答"品牌搜索能不能转化为 Amazon 站内销售"。整条中介路径的间接效应(indirect effect)是两段系数的乘积:

IndirectEffect = α1 × β1

这个乘积就是"Meta 广告通过品牌搜索这条路径,对 Amazon 销售的真实拉动量",比方式一里那个笼统的 γ 更有解释力,因为它把机制拆开了——如果 α1 显著但 β1 不显著,说明 Meta 确实在拉动搜索,但搜索没能有效转化成 Amazon 订单,问题出在 Amazon 站内的转化环节(可能是 Listing 质量、价格、评论数不够),而不是 Meta 广告本身没用。这个区分对预算决策的意义完全不同:前者该优化 Amazon Listing,后者才该砍 Meta 预算。

统计上的注意事项

中介效应的显著性检验不能直接用两段回归各自的 p 值相乘去判断,标准做法是用 Bootstrap 重采样(重复抽样计算 α1 × β1 的分布)或 Sobel 检验来估计间接效应本身的置信区间。样本量小(比如少于 100 周的数据)时,Bootstrap 方法的置信区间会更保守也更可信。

怎么判断外溢效应是真的,不是模型过拟合出来的假象

加了跨渠道交互项或者中介路径之后,模型的解释力(R²)几乎总会提升——但这不代表外溢效应就是真的,有可能只是给模型多加了自由度、让它更容易拟合噪音。三个诊断步骤能帮你判断结果是否可信:

诊断方法怎么做通过标准
留出集验证用最近 8-12 周数据作为 holdout,比较含外溢项和不含外溢项两个模型在 holdout 上的预测误差(MAPE 或 RMSE)含外溢项模型的 holdout 误差应该更低,不只是训练集拟合更好
置换检验(Permutation Test)把 Meta 花费的时间序列随机打乱顺序(破坏真实的时序关系)重新估计 γ 或间接效应,重复 500-1000 次,看真实数据估计出的效应值排在打乱后分布的第几百分位真实效应值应该显著偏离打乱后的分布(通常要求排在前 5% 或后 5%)
反向检验把因果方向反过来跑一遍——用 Amazon 花费预测 Meta 渠道的表现,如果反向也能跑出类似强度的"效应",说明原来的结果更可能是共同趋势(比如季节性)而不是真实的跨渠道拉动反向模型的效应应该明显更弱或不显著

三项diagnostics里,留出集验证是最基本的门槛——如果加了外溢项后训练集拟合变好但 holdout 误差没有改善甚至变差,几乎可以确定是过拟合,这个外溢项不该留在最终模型里,不管它的系数看起来多么"合理"。

证明"双向"外溢:为什么单向模型不够用

前面的直接效应扩展法和中介模型,估计的都是一个方向——Meta 站外花费对 Amazon 站内销售的拉动。如果你想证明的是"Amazon 广告也能反过来带动独立站/DTC 渠道的销售",不能简单地把公式里的 amz 和 meta 互换再跑一次就算完事,因为这样做完全可能得到两个看起来都"显著"的方向,但其中至少一个是假的——共同的季节性、大促节奏、品牌整体声量上升,会同时推高两个渠道的销售,让模型误以为"A 拉动了 B",而实际上是"C(某个没进模型的共同因素)同时拉动了 A 和 B"。

要严谨地检验双向关系,需要两件东西:一个对称的双方程系统,以及一个专门为检验双向因果设计的统计工具(Granger 因果检验)。

对称双方程系统

把方式一里的单向交互项,扩展成两条方程,每条方程都控制对方渠道自身的花费和滞后效应:

Salesamz(t) = β0 + β1·Adstockamz(t) + γ1·Adstockdtc(t−τ1) + controls + ε1(t)
Salesdtc(t) = α0 + α1·Adstockdtc(t) + γ2·Adstockamz(t−τ2) + controls + ε2(t)

这里 γ1 衡量"DTC 站外花费对 Amazon 销售的净拉动",γ2 衡量反过来"Amazon 广告花费对 DTC 独立站销售的净拉动"。两条方程必须同时估计、共享同一组控制变量(尤其是季节性和促销日历),而不是分别单独跑两次回归——这一点很关键:如果两条方程用的控制变量集合不一致,某个方向"显著"很可能只是因为那条方程漏掉了本该控制的共同驱动因素。真正双向的证据是:在两条方程都充分控制了共同因素之后,γ1 和 γ2 依然分别显著为正。

用 Granger 因果检验做方向性证据

Granger 因果检验(Granger Causality Test)是计量经济学里专门用来回答"A 的历史信息能不能帮助预测 B 的未来,超出 B 自身历史信息所能预测的范围"这个问题的工具,天然适合检验双向关系,因为它可以对两个方向分别独立检验,不要求你预设"谁影响谁"。基本逻辑是比较两个预测模型:

受限模型:Salesamz(t) = f(Salesamz(t−1), …, Salesamz(t−p))
完整模型:Salesamz(t) = f(Salesamz(t−1), …, Salesamz(t−p), Spenddtc(t−1), …, Spenddtc(t−p))

如果加入 DTC 花费的历史滞后项之后,完整模型对 Amazon 销售的预测显著优于只用 Amazon 自身历史的受限模型(用 F 检验比较两者的残差平方和),就说"DTC 花费 Granger-causes Amazon 销售"。把两个渠道的角色互换,再做一次同样的检验,就能独立得到"Amazon 花费是否 Granger-causes DTC 销售"的结论。四种可能的结果组合,分别对应四种不同的业务结论:

检验结果业务含义
双向都显著DTC 和 Amazon 之间存在真实的相互拉动,预算决策需要同时考虑两个方向的外溢,单独优化任何一个渠道都会低估其对另一渠道的贡献
只有 DTC → Amazon 显著种草效应主要走"站外广告→品牌搜索→Amazon 转化"这条路径,Amazon 广告本身更多是承接站外流量而非独立创造新增需求,Amazon 预算应该侧重防守型投放(品牌词保护)而非进攻型扩量
只有 Amazon → DTC 显著可能是 Amazon 站内的评论/排名信任背书效应外溢到了独立站决策(消费者先在 Amazon 上验证产品口碑,再回独立站用会员价/订阅折扣下单),这种情况下砍 Amazon 预算去补贴独立站,反而会伤到独立站的转化
双向都不显著此前观察到的"效应"更可能来自未被模型充分控制的共同因素(大促日历、季节性、品牌整体声量),需要回头检查控制变量是否完整,而不是急着下"两个渠道无关"的结论
前提条件

Granger 因果检验要求两个时间序列都是平稳的(不存在持续增长或衰减的趋势),如果 Amazon 或 DTC 的销售额本身有明显的长期增长趋势,需要先做差分(用逐周变化量代替原始水平值)或去趋势处理,否则检验结果会虚高,两个高速增长的序列几乎总能"检验出"双向显著,但这只是趋势共振,不是真实的渠道拉动。

实操建议:怎么在 SparkX 里跑这套双向检验

把双向外溢证据落到实际操作上,建议按这个顺序推进:

  1. 先用 Instant Mode 分别对 DTC 和 Amazon 两个口径跑一版基线模型,确认单渠道模型本身的拟合质量过关(R² 和残差诊断没有明显问题),再谈跨渠道的事。
  2. 在 Expert Mode 里用 PyMC 或 Stan 引擎同时估计上面的对称双方程系统,两条方程共享同一份日历型控制变量(大促、节假日、竞品动作),拿到 γ1、γ2 的贝叶斯后验分布。
  3. 对两个方向分别做 Granger 因果检验,作为对贝叶斯系数结果的独立交叉验证——两种方法结论一致,才是比较可信的双向证据;如果贝叶斯系数显著但 Granger 检验不显著(或反过来),说明结果对模型设定比较敏感,需要更谨慎地下结论,不建议直接写进给管理层的汇报里。
  4. 用置换检验和留出集验证(前面"怎么判断外溢效应是真的"一节提到的方法)对两个方向分别做一遍,确认双向效应不是过拟合的产物。

这套流程跑下来,能得到的不是一句"DTC 和 Amazon 互相带货"的定性结论,而是两个有置信区间、经过交叉验证的量化系数——这才是能真正支撑预算决策(比如"该不该为了拉动 Amazon 搜索排名,把 10% 的 Amazon DSP 预算挪去做站外品牌广告")的证据,而不是一句听起来合理但经不起推敲的直觉判断。

在 MMM 里怎么建这个模型

具体到建模操作,把 Amazon 数据接入后的渠道结构大致是这样:

变量类型包含内容作用
媒介渠道(自变量)Meta、Google、TikTok 花费 + Amazon Sponsored Products / Sponsored Brands / DSP 花费,各自独立作为渠道模型分别估计每个渠道的 Adstock 衰减和饱和曲线
控制变量品牌词搜索指数、价格/促销强度、季节性(假期、Prime Day)、竞品大促剥离非媒介因素对销售的影响,避免把季节性错误归因给广告
目标变量总收入(独立站 + Amazon 站内,含自然流量)让模型能捕捉到站外渠道对站内自然转化的外溢贡献

引擎选择上,如果 Amazon 渠道和站外渠道之间存在明显的非线性交互(比如"Meta 和 Amazon Sponsored Brands 同时投放时的联合效应,大于两者单独效应之和"),LightGBM + SHAP 引擎比线性引擎更适合这类场景——它天然能捕捉渠道间的交互效应而不需要提前手动指定交互项。如果你更关注每个渠道系数的置信区间和统计显著性(比如要在董事会上讲清楚"Amazon 广告的真实增量 ROI 有多大把握"),PyMC 或 SparkX Expert 引擎的贝叶斯后验分布能给出更严谨的不确定性量化。

建议的实际流程:先用 Ridge 引擎跑一个 Instant Mode 基线(几分钟出结果),确认合并后的数据序列没有明显异常值或口径错位;再切到 Expert Mode,用 LightGBM + SHAP 或 PyMC 精细建模,重点看 Amazon 渠道系数在剥离站外渠道影响后是否依然稳健。

三个常见误区

落地清单

开始之前,先确认
  • 独立站收入和 Amazon 站内收入的对账口径(税费、退款、运费)是否已经拉齐
  • 能否拿到至少 26 周(推荐 2 年以上)的 Amazon 花费和销售历史数据
  • 是否有品牌词搜索量数据作为辅助控制变量(Amazon Brand Analytics 或 Google Trends)
  • Amazon Ads API 连接器尚未上线前,是否已经安排好手动导出 CSV 的周期性流程
  • 建模目标是"精细拆分 Amazon 各广告产品线的贡献"还是"先确认 Amazon 整体渠道和站外渠道的相对效率"——决定用 Expert Mode 精细建模还是先用 Instant Mode 出一版基线

DTC 和 Amazon 从来不是两个割裂的生意,消费者的决策路径本身就是跨渠道的。数据体系不打通,模型看到的永远是残缺的因果链条。把两边的花费和销售放进同一个 MMM,不是为了得到一个"更好看"的仪表盘,而是为了在下一次预算会议上,能拿出一个两个团队都认的答案。

← 上一篇
LightGBM + SHAP 引擎上线:抗过拟合的树模型 MMM
下一篇 →
合成对照法与功效分析:地理增量实验怎么设计才靠谱

本站使用 Cookie 和类似技术以提升体验并分析流量。继续浏览即表示同意。详见隐私政策。