知识

大规模MAP执行:自动检测价格违规行为

最低广告价格关乎广告展示,而非实际销售。解析MAP的定义、自动检测的运作方式,以及为何大多数警报都是误报。

Matt Brown

Matt Brown

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

大多数 MAP 项目都在同一个地方失败。不是在采集环节,那是大家最担心的部分,而是在告警队列。品牌团队开启监控,第一周就收到四百条违规记录,花了一个月才发现其中大部分根本不是违规,然后悄悄不再打开报告。

检测本身是有效的。规则不行。

最低广告价格究竟是什么

最低广告价格是一种政策,品牌方在其中设定经销商可以广告宣传其产品的最低价格。它约束的是显示的价格,而不是交易本身。

这个区别就是全部要点所在。经销商通常可以以低于 MAP 的价格出售商品而不违反政策,只要这个较低的价格没有被广告宣传出来。这就是为什么很多网店会同时显示一个符合规定的价格,以及”加入购物车查看价格”、“购物车中查看价格”,或者结账时应用的优惠券。这些模式之所以存在,正是因为销售价格和广告价格是两回事。

MAP 还与两个经常被混淆的相邻概念不同:

  • 最低转售价格规定的是产品可以按什么价格出售,这在大多数司法管辖区中是一种法律处理方式不同的安排。
  • 未经授权销售关注的是谁在销售,而不是以什么价格销售。一个卖家可以完全符合 MAP 规定,但仍然根本没有权利销售你的产品。

第二点很重要,因为这两个问题来自同一个数据集,通常也由同一个团队负责,但它们需要不同的规则和不同的升级路径。卖家身份方面的内容在监控未经授权卖家和 MAP 违规中有介绍。本文讨论的是如何检测价格违规本身。

MAP 政策的设计和执行涉及真实的法律考量,因人随司法管辖区而异。本文讨论的是检测机制,而非关于你的政策的法律建议。

检测器究竟应该比较什么

天真的规则是 observed_price < map_price。它会生成那四百条告警。

一个可用的检测器会将广告价格与 MAP 进行比较,这就需要判断每个页面上什么算作广告价格。至少要分别捕获和评估以下内容:

字段为什么重要
显示的标价是主要显示的数字,但往往不是广告价格
删除线或参考价格有时是真实的广告价格,有时只是虚构的
自动应用优惠券后的价格如果折扣显示在页面上,则算作广告价格
仅在购物车中显示的价格通常不算广告价格,这也是该模式存在的原因
捆绑或多件套的单价在大多数政策中,就 MAP 而言算作不同的产品
配送费用很少属于 MAP 范畴,但经常出现在投诉中
货币与税费显示方式不含税显示与含税 MAP 相比会产生大量误报

在编写检测器之前,政策必须说明这些内容中哪些属于范围之内。跳过这一步的团队最终会把隐含的政策编码进脚本里,这是政策存在的糟糕之处。

误报从何而来

五种模式占了大部分噪音。每种都有一条规则可以消除它。

捆绑套装。 零售商以组合价格出售你的产品加配件。把它拆分开来看就像是违规。规则是按精确的产品身份进行匹配,排除多件商品的列表,而不是试图分摊价值。

合法促销活动。 你自己授权的促销期允许更低的广告价格。检测器需要将促销日历作为输入,每个 MAP 项目都应该维护一份带有生效日期的日历。

货币与税费。 一个显示不含税价格的市场,与含税 MAP 相比,每次都会显得不合规。在比较之前,将双方按照每个市场相同的基准进行标准化。

市场平台的”起售”价格。 一个显示多个卖家中最低价格的列表,包括二手或翻新状况的商品。应该与你实际指的那个卖家提供的全新状态报价进行比较。

过时的 MAP 值。 最尴尬的一种。政策变了,参考表却没变,于是检测器在执行的是上个季度的价格。给 MAP 列表按生效日期做版本管理,并记录每条告警是由哪个版本产生的。

阈值、持续性与严重程度

即使规则很干净,二元比较也会产生一个没人能处理的队列。三项改进能让它变得可操作。

容差范围。 由四舍五入、货币转换或显示格式造成的小差异不算违规。明确定义这个范围,而不是让每个分析师自行判断。

持续性。 一次观察到的价格可能只是零售商方面的临时错误。要求同一违规在连续两次或更多次观察中都出现,能去除相当一部分队列中的误报,代价只是检测延迟。

按深度和覆盖面划分严重程度。 低流量列表上低于 MAP 2% 的违规,与主要市场平台上低 25% 的违规,不是同一回事。按违规深度和页面的可见度排序,这样团队处理的才是真正对渠道造成损害的案例。

输出应该是一个小型的排序队列,而不是一份记录了所有比较失败项的电子表格。

证据才是最终产出

MAP 执行最终会落到与经销商的对话上,所以检测器真正的产出不是告警,而是一份在经销商说”价格从来没有那么低过”时依然站得住脚的记录。

每条确认的违规都应附带一张显示价格上下文的全页截图、URL、UTC 时间戳、页面上显示的卖家身份、观察到的价格及其对比的 MAP 版本、观察所在的市场和出口位置,以及显示其持续时长的历史记录。

以可以移交的形式保留这些内容。一条只写着”检测到违规”却没有可复现证据的告警,会招致一场你会输掉的争议,还会损害你本想保护的关系。

采集层

采集环节有两个特性比原始吞吐量更重要。

市场准确性。 定价、货币、税费显示和卖家构成因市场而异。一个位于美国的观测点检查欧洲网店,看到的并不是欧洲购物者所面对的广告内容。每个市场的监控都必须来自该市场本身,这正是带有国家定向功能的住宅代理所提供的。使用 Shifter 网关时,定向信息写在凭证中,针对 p.shifter.io:443

customer-USERNAME-country-fr-sid-map-fr-22-ttl-600:PASSWORD

在一个卖家的多个列表页面之间保持同一会话,能让快照内部保持一致,而不是把来自不同观测点的观察结果混在一次比较中。

中立性。 零售网站会进行个性化处理。一个被反复观察到检查同一批列表的观测点,可能会开始受到不同的对待,这恰恰会使你想要证明的那项测量产生偏差。适度、分散的请求速率配合真实的退避策略,如速率限制与请求节流中所述,能让观察行为保持普通。

将每个零售商的采集成功率与违规数量一并跟踪。如果违规数量的下降恰好与你自己的采集成功率下降同时出现,那说明的是采集层面的问题,把它报告为合规性改善就是错误的。

常见问题

低于 MAP 出售算违规吗?

单独来看通常不算。MAP 约束的是广告宣传,这正是购物车揭示价格和优惠券模式存在的原因。你的政策定义了什么算作广告,检测器必须实现那个定义,而不是一个通用定义。

MAP 监控应该多久运行一次?

对大多数商品目录来说,每天一次就足够了,对于违规集中的零售商和产品可以采用更快的节奏。持续性要求比原始频率更重要,因为单次观察是薄弱的证据。

为什么我们修复检测器之后违规数量下降了?

因为原来的数量大部分是捆绑套装、税费显示和过时的 MAP 值造成的。目标是一个更小、更干净、团队真正会处理的队列,而不是一个庞大却无人阅读的队列。

自动化检测能取代执行流程吗?

不能。它能找到候选项,排序,并整理证据。至于如何处理与经销商的关系,那是一个商业和法律判断,应该由人来做。

结论

MAP 执行是一个披着数据问题外衣的规则问题。采集是相对直接的部分。真正决定这个项目能否在品牌团队手中存活下来的,是检测器是否按照你的政策定义来比较广告价格、是否排除了那五种可预见的误报模式、是否应用了容差范围和持续性要求,以及是否产出证据而非告警。

把这些做对,队列就会变得小巧、有序且可信。产品概览见价格情报页面,价格见定价页面

准备好开始了吗?

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

立即开始