数据抓取

如何追踪竞争对手的促销活动与折扣周期

促销活动是有始有终的事件,而价格快照两端都会错过。如何将促销活动记录为事件,并还原竞争对手的日程安排。

James Meadow

James Meadow

2026年9月7日 · 1 分钟阅读

大多数想要追踪竞争对手促销活动的团队已经有了价格监控,却惊讶地发现它无法回答这个问题。

原因是结构性的。价格监控记录的是水平值:我们查看时这个商品的价格是多少。而促销是一个事件:它何时开始、有什么机制和幅度、持续了多长时间、何时结束。一系列的价格水平可以暗示存在一个事件,但它无法告诉你促销何时开始、原计划持续多久,或是什么触发了它。而如果你的采样间隔比促销时长还长,那么就你的数据而言,这个事件根本没有发生过。

价格序列会漏掉什么

大部分失误来自两种失效模式。

促销时长比你的采样间隔短。 每日一次的快照根本看不到一场持续六小时的限时抢购。不是折扣显示得浅,而是完全看不到。你的数据会显示竞争对手一直维持原价,而他们的顾客看到的却是促销活动。

促销时长比你的采样间隔长,但你只看到了边缘部分。 一次恰好落在三天促销活动内的每周快照,会将其记录为整整一周的通行价格。这一次误读就会扭曲基于它构建的所有平均值。

两者产生的数据看起来都很干净。都不会报错。这正是为什么促销追踪需要独立的设计,而不能仅仅当作价格表上的一份报告来处理。

促销信息不在价格字段里

第二个结构性问题是:折扣往往不会改变你的解析器读取到的那个数字。

价格监控经常漏掉的机制:

  • 购物车层级的折扣。 商品价格不变,减免出现在结账时。
  • 优惠码。 在购物车中应用,有时会以横幅形式显示在页面上,有时只通过邮件分发。
  • 组合装和多件购买。 买两件享受更低的单价。列出的单价保持不变。
  • 条件资格。 会员价、首单折扣、区域优惠、忠诚度等级。
  • 运费门槛。 实质上是一种折扣,但在价格字段中完全不可见。

因此,采集要抓取的不只是那个数字。至少需要:显示的价格、任何划线价或参考价、促销标签文字、横幅文字,以及显示出来的截止时间(如果有的话)。倒计时器值得专门解析,因为这是竞争对手唯一会告诉你他们预定结束日期的地方。

通用零售采集机制见用于价格监控的住宅代理,该问题针对特定商店的版本见Walmart价格与库存监控

记录事件,而不是观测点

让后续一切工作生效的设计决策是:从你的观测数据中推导出促销事件,并将其作为独立的记录存储。

一个事件需要有一个起始观测点、一个结束观测点,以及描述它的各个字段:

字段重要性
基准价格折扣的衡量参照,不是上周的价格
促销价事件期间的实际价格
机制百分比、固定金额、组合装、优惠码、购物车层级、运费
幅度由基准价和促销价计算得出,存储而非重新计算
起始和结束观测点带时间戳,以便可以测量持续时间
声明的截止时间来自倒计时或横幅,竞争对手公布的信息
市场观测数据来源的国家,以及相关时的地区
置信度边界是被实际观测到的,还是受限于你的采样间隔

最后这个字段才是诚实的那个。如果你每六小时采样一次,你只知道促销在一个六小时的窗口内开始,而不知道它具体何时开始。记录这种不确定性,意味着你的持续时间分析可以将其纳入考量,而不是假装拥有它并不具备的精确度。

采样频率必须比你想观察到的时长更短

这条规则不太舒服但很简单:你无法探测到比采样间隔更短的促销,也无法以比该间隔更高的精度来测量促销的持续时间。

与其在所有方面都提高频率,不如分层处理。针对你最激进的竞争对手的一小份高价值商品观察名单,值得采用较短的间隔。长尾商品可以按天采样。然后再加一层事件驱动的机制:当某个竞争对手的某个商品出现变动时,就在一段时间内缩短对该竞争对手的采样间隔,因为促销往往是成群出现的。

零售日历也让这一点在某些方面变得可预测。已知促销季前后的几周应该提前设定更高的采样频率,因为那正是促销的频率和幅度都会发生变化的时候。

促销是区域性的

竞争对手的促销日历通常不是单一的一份日历。优惠是按市场运行的,同一个商品页面在同一天可能在一个国家显示折扣,而在另一个国家显示原价。

从单一的观测点采集数据,得到的只是一个市场的日历,却被当作竞争对手的整体策略。如果你在多个市场销售,采集就必须来自每一个市场。带有国家定向的住宅代理正是让这种视角变为现实的工具。使用Shifter网关时,定向和会话信息放在针对p.shifter.io:443的凭证中:

customer-USERNAME-country-fr-sid-promo-fr-01-ttl-600:PASSWORD

country-fr设定市场,sid-promo-fr-01在整个类目遍历期间保持一个出口不变,以确保你读取到的价格内部一致,而ttl-600将其保持十分钟。在爬取过程中途切换,正是导致你在一条记录中比较两个市场价格的原因。

保持并发量适中,遇到错误时退避而不是重试,详见速率限制与请求节流。产品视图见电商数据采集页面。

事件数据到底能告诉你什么

一旦促销被处理为事件,分析就会变得直接明了,并真正对决策有用。

每个竞争对手的促销节奏。 他们促销的频率如何,以及这个间隔是否规律到可以预判。有些竞争对手会呈现出可识别的两周一次的节奏。

幅度分布。 他们的典型折扣、最大折扣,以及哪些品类获得最深的削减。这才是你们定价委员会真正想要的数字。

持续时间。 优惠持续多久,这可以区分真正的清仓和那种划线价从未真正适用过的永久性假促销。

领先还是跟随。 竞争对手是持续在你之前还是之后行动。这只有在时间戳足够精确以对事件排序时才可见,这也是坚持采样间隔纪律的另一个理由。

日历聚集性。 哪些周活动最密集,这样你自己的计划就不再只是被动反应。

常见问题

我需要多频繁地采集才能捕捉到限时抢购?

要比限时抢购的时长更短。对于一个分钟必争的观察名单,这意味着对一小部分商品要做到每小时甚至更频繁,而不是对整个目录。确定这个观察名单的大小才是真正的决策所在。

我该如何确定基准价格?

将其作为一个独立的、变化缓慢的序列来追踪,而不是使用上一次的观测值。用上周的价格作基准,会让连续第二次的折扣看起来像是没有折扣。

我需要把商品加入购物车才能捕捉到购物车层级的优惠吗?

对于只在购物车阶段出现的那些机制,某种形式的结账阶段观测是唯一能看到它们的方法。把这限定在一小部分刻意选定的商品上,遵守网站的条款,绝不要完成交易。

划线价作为基准可靠吗?

不总是。有些零售商展示的参考价,商品最近其实并未以此价格售出过。把你自己观测到的基准价与他们的对照保留下来,并记录二者不一致的情况,因为这个差距本身就是一个发现。

底线

当促销追踪被当作对价格历史的查询来处理时,就会失败。促销是带有机制、幅度、持续时间和市场的事件,而这些信息大多根本不在价格字段中。

在价格之外同时采集标签、划线价和声明的截止时间,以明确的边界置信度推导出事件,在值得投入的商品上以比你关心的促销更快的速度采样,并从你销售的每一个市场采集数据。价格见定价页面

准备好开始了吗?

试用 Shifter 住宅代理,205M+ 个 IP,195+ 个国家,低至 $0.10/GB。

立即开始