店群运营的核心竞争力,很大程度上体现在定价上。
价格定高了,没转化;定低了,没利润。更关键的是,竞争对手随时在调价。你早上定99元,对手下午改成89元,你的商品就卖不动了。
人工盯竞品价格,既不现实也不高效。我们曾经让运营每天花2小时手动记录竞品价格,不仅累,而且反应滞后。
后来我们基于影刀RPA搭建了一套竞品价格监控与动态定价策略系统。
这篇文章不讲调度架构,也不讲脚本编写细节。专门聊聊如何用自动化采集竞品数据、分析价格变动、并结合自身成本和库存,自动调整店铺价格。
适用场景:价格敏感型品类(3C、家居、快消)、竞争激烈的店群项目。 技术栈:影刀RPA + Python + 时序数据库 + 规则引擎 + 动态调价API。
一、竞品监控的痛点与目标
先说说为什么要做自动化竞品监控。
痛点一:竞品数量多
一个店铺可能有几十个核心SKU,每个SKU需要监控3-5个竞品。手工记录根本不可能。
痛点二:价格变动频繁
大促期间,竞品价格可能一天变几次。等运营发现再调价,已经晚了。
痛点三:跨平台比价
同一个商品,可能在拼多多、TEMU、淘宝上都有竞品。需要跨平台比较。
痛点四:定价策略复杂
不是简单跟着竞品降价。要考虑成本、库存、促销周期、店铺评分等多因素。
我们的目标:系统自动采集竞品价格,按策略生成建议价格,运营一键应用或自动执行。
二、整体架构
系统分为五个模块。
采集模块:影刀RPA脚本定时访问竞品商品页面,抓取价格、销量、促销信息。
存储模块:将竞品价格历史存入时序数据库(InfluxDB),用于趋势分析。
分析模块:对比自身商品与竞品的价格、转化率,输出定价建议。
决策模块:规则引擎根据策略(如“保持比竞品低5%但不低于成本”),生成目标价格。
执行模块:调用平台API或影刀脚本,自动更新店铺商品价格。
整个流程闭环运行,频率可根据品类竞争激烈程度设置(每小时、每2小时、每天)。
三、竞品数据采集(影刀RPA实现)
影刀RPA脚本负责从电商平台采集竞品数据。
采集内容:
- 商品标题
- 当前价格(包括券后价、拼团价)
- 销量(月销)
- 促销标签(如“限时85折”)
- 店铺评分
由于平台可能有反爬,我们采用以下策略:
- 使用指纹浏览器,每个竞品任务随机切换指纹
- 使用住宅代理IP,避免被封锁
- 随机间隔,模拟人类浏览节奏
- 采集频率设置合理(高频商品1小时/次,低频4小时/次)
影刀脚本输出结构化数据:
{
"product_id": "pdd_12345",
"competitor_shop_id": "shop_678",
"price": 89.00,
"original_price": 129.00,
"discount_tag": "限时8折",
"sales_30d": 1250,
"shop_score": 4.8,
"timestamp": "2025-01-15T10:30:00Z"
}
数据写入Kafka,下游进行清洗和存储。
四、价格数据处理与清洗
原始数据可能有噪音:券后价需要解析、拼团价需要识别、促销活动可能临时结束。
我们有一个清洗层:
# price_cleaner.py
def clean_price(raw_data):
price = raw_data.get("price")
# 如果有券后价,优先使用
if "coupon_price" in raw_data and raw_data["coupon_price"] < price:
price = raw_data["coupon_price"]
# 如果是拼团价,取拼团价(单买价太高,不具参考性)
if "group_price" in raw_data and raw_data["group_price"]:
price = raw_data["group_price"]
# 排除异常值(价格低于1元或高于10000元)
if price < 1 or price > 10000:
return None
return price
对于销量、评分等字段,也做归一化和异常过滤。
清洗后的数据存入InfluxDB,保留最近90天。我们可以查询某个竞品的价格历史曲线,判断其调价频率和幅度。
五、竞品分析:知己知彼
有了竞品历史数据,就可以做多维度分析。
价格竞争力指数
计算自身商品价格与竞品平均价格的比值。比值>1表示高于竞品,<1表示低于竞品。
def competitiveness_index(my_price, competitor_prices):
avg_competitor = sum(competitor_prices) / len(competitor_prices)
return my_price / avg_competitor
价格弹性估计
通过分析竞品调价前后销量的变化,估算品类价格弹性。如果竞品降价10%销量涨30%,说明价格敏感;反之不敏感,我们不需要盲目跟降。
价格战预警
如果某个竞品在一周内降价超过3次,且累计降幅超过20%,可能是在清仓或打价格战。系统触发预警,建议运营重新评估该商品。
最低价追踪
记录每个商品在监控周期内的历史最低价,作为调价下限参考。
六、动态定价策略引擎
定价策略不是一成不变的。我们设计了一个可配置的策略引擎。
策略包含几个维度:
- 目标定位:是要比竞品低、持平、还是略高(基于品牌溢价)
- 幅度系数:比竞品低5%或10%
- 成本底线:不得低于成本价 + 利润目标
- 库存因子:库存积压时,可以更激进降价;库存紧张时,可以提价
- 时段因子:大促期间,跟随竞品降价;平日维稳
策略用JSON配置:
{
"strategy_id": "price_follower",
"conditions": {
"inventory_days": "< 7",
"season": "normal"
},
"target_price_formula": "max(competitor_min_price * 0.95, cost * 1.2)",
"max_daily_change": 0.1,
"cooldown_hours": 6
}
Python策略引擎解析公式,结合实时竞品价格和自身数据,输出建议价格。
# pricing_engine.py
class PricingEngine:
def __init__(self, strategy):
self.strategy = strategy
def suggest_price(self, my_product, competitors):
competitor_min = min(c.price for c in competitors)
formula = self.strategy["target_price_formula"]
# 安全执行公式
allowed_locals = {"competitor_min_price": competitor_min, "cost": my_product.cost}
suggested = eval(formula, {"__builtins__": {}}, allowed_locals)
# 限制单次最大变动幅度
max_change = my_product.current_price * self.strategy["max_daily_change"]
if abs(suggested - my_product.current_price) > max_change:
suggested = my_product.current_price + (max_change if suggested > my_product.current_price else -max_change)
return round(suggested, 2)
策略引擎每小时运行一次,输出建议价格列表。运营在后台看到建议,可以选择一键应用或自定义修改。
七、自动执行与监控
对于信任度高的策略,可以开启自动执行。
自动执行器调用平台的价格修改API(优先)或影刀RPA脚本(备选)。
# auto_executor.py
class AutoExecutor:
def __init__(self, shop_adapter):
self.shop = shop_adapter
def execute(self, product_id, new_price):
# 先通过API修改
try:
self.shop.update_price(product_id, new_price)
self.log_execution(product_id, new_price, "api")
except Exception as e:
# API失败,降级到UI自动化
self.run_yingdao_script("update_price", product_id, new_price)
self.log_execution(product_id, new_price, "ui")
每次自动调价都记录审计日志,包括触发策略、新旧价格、竞品价格快照。如果调价后销量/转化率出现异常下降,系统会暂停该商品的自动调价,并通知运营。
我们还设置了调价保护:同一商品24小时内自动调价不超过3次,避免价格频繁波动引起平台风控或用户投诉。
八、效果评估与策略迭代
定价策略需要持续优化。我们建立了AB测试框架。
将同类商品分成两组:A组使用策略A(如“比竞品低5%”),B组使用策略B(如“比竞品低8%但限制最低价”)。运行一周后对比:
- 销量变化
- 利润率变化
- 库存周转率
- 价格战触发频率
数据证明更优的策略自动扩展到所有商品。
例如,我们发现对于高客单价商品,降价5%对销量影响不大,但利润率下降明显;而低客单价商品降价8%能显著提升销量且利润总额增加。策略引擎据此为不同价格区间设置不同系数。
九、真实踩坑与经验
坑1:竞品采集被平台反爬封IP
频繁采集竞品页面,触发了平台的风控。尤其是同一个IP短时间内大量请求。
解决:使用代理池+随机User-Agent,每个任务不同IP;采集间隔随机化(30-90秒);对核心竞品降低频率(2小时一次)。
坑2:券后价解析错误
很多商品的“券后价”需要通过点击领取优惠券才能获得。直接页面抓取可能拿不到真实成交价。
解决:模拟点击领券(仅针对监控账号,不产生实际购买),或者使用平台提供的API(如果有)获取商品最低价。
坑3:竞品最低价识别不准确
竞品可能会用低价SKU引流(如配件),主商品价格并没降。系统误判为竞品降价。
解决:采集时对比商品标题,确保是同款或同系列。同时监控竞品店铺的销量分布,低价SKU销量极低时忽略。
坑4:自动调价导致恶性竞争
对手检测到我们降价,也跟着降价,形成螺旋下降。
解决:设置价格下限(成本+合理利润),低于下限不再跟随。同时引入“调价冷静期”:对手降价后,我们等待2小时再反应,给对方留出提价空间。
十、总结:从被动跟价到主动定价
竞品价格监控与动态定价策略,让店群运营从“凭经验调价”走向“数据驱动决策”。
我们这套系统上线后,核心品类的毛利率提升了5个百分点,库存周转率提高了20%。同时,运营每天节省了1.5小时的手工比价时间。
关键经验:
- 数据质量比算法更重要:采集清洗做不好,策略都是空谈
- 策略可配置、可灰度:不要一上来就全自动,先建议后执行
- 设置保护机制:价格底线、调频限制、熔断机制
- 持续AB测试:市场在变,最优策略也在变
如果你也在运营价格敏感品类的店群,不妨从监控3-5个核心竞品开始,逐步建立自己的定价模型。不必一步到位,但方向值得投入。
最后,价格战不是目的,获取合理利润才是。自动化的价值在于让你更聪明地竞争,而不是更疯狂地降价。
作者:林焱
