做竞品分析时,很多采样脚本第一版都会写得很直接:
request page
check status code
parse title / price / promotion
save result
如果页面返回 200,就认为访问成功;如果解析到了价格或标题,就认为样本有效。
这个逻辑在普通页面监控里可以作为起点,但在竞品分析里不够。因为竞品分析关注的不只是页面是否返回,还要确认这个页面是不是目标地区用户真实看到的页面。
同一个 URL,在不同国家、城市、语言、货币、促销规则、库存状态和访问环境下,可能返回不同内容。比如广告落地页会按地区跳转,价格会按市场变化,本地化页面会自动切换语言和货币。
所以,采样逻辑里更重要的问题不是:
status_code == 200 ?
而是:
sample_is_valid_for_target_region ?
发现和复查要分开
竞品分析里,网络环境通常要服务两个阶段:发现和复查。
发现阶段关注覆盖面。比如要观察多个国家、城市、竞品站点和页面类型,目的是先发现页面差异。
复查阶段关注稳定性。比如发现某个地区价格异常、落地页跳转异常、促销展示不一致,就需要在更稳定的条件下确认它是否真实存在。
如果把这两个阶段混在一起,数据会很难解释。
比如发现阶段只用一个固定环境,样本覆盖不够;复查阶段又频繁变化环境,结果不稳定。最后拿到的数据很多,但很难判断差异来自页面本身、地区规则、缓存、Cookie,还是访问条件变化。
动态住宅地址适合做发现
动态住宅地址更适合用于大范围观察。
典型场景:
multi-region price sampling
ad landing page regional check
localized page verification
public promotion observation
competitor page structure comparison
它的作用是扩大样本覆盖,让团队从不同地区视角观察公开页面。
但动态不等于每次请求都随机切换。比较稳的做法是先定义采样维度:
country
city
competitor
page_type
time_window
retry_policy
session_rule
然后再决定哪些任务需要轮换,哪些任务需要保持短时间一致。
这样后面看到页面差异时,才有机会解释差异来源。
静态住宅地址适合做复查
当发现阶段筛出异常,就进入复查。
复查阶段更适合使用静态住宅地址。它的价值是稳定条件。
适合复查的场景包括:
固定地区价格复查
广告落地页截图留证
连续几天观察同一页面
本地化页面人工复核
重要异常二次验证
复查阶段的目标不是看更多页面,而是确认关键异常是否真实存在。
如果复查时还频繁变化访问条件,就会引入新的变量。结果看起来更丰富,但实际上更难判断。
不要把 200 当成有效样本
很多采样系统只记录:
url
status_code
title
price
timestamp
这些字段不够。
页面返回 200,只能说明请求成功,不能说明样本有效。
更完整的记录可以包括:
target_region
target_city
target_url
network_type
session_rule
request_time
status_code
final_url
redirected
page_language
currency
price
promotion
screenshot_path
html_hash
failure_reason
review_result
其中几个字段非常关键:
target_region
network_type
final_url
currency
screenshot_path
review_result
有了这些字段,后续复盘时才能判断这个样本到底能不能用。
比如:
- 页面返回 200,但货币不对
- 页面能打开,但跳到了通用页面
- 页面解析到价格,但语言不是目标语言
- 页面结构正常,但广告落地页不是目标地区版本
这些都不能简单算作有效样本。
一个更稳的采样流程
可以把流程拆成这样:
1. define_question
2. define_region_and_page_type
3. sample_with_dynamic_residential_address
4. filter_abnormal_samples
5. review_with_static_residential_address
6. save_evidence_and_result
对应到工程实现,大概是:
发现阶段:
- 多地区
- 多页面
- 多竞品
- 关注覆盖
- 记录异常
复查阶段:
- 固定地区
- 固定页面
- 固定时间窗口
- 关注一致性
- 保存证据
指标也要换
竞品分析不应该只看请求成功率。
更值得记录的是:
available_sample_rate
wrong_region_rate
content_match_rate
retry_cost
session_consistency
evidence_completeness
其中 available_sample_rate 比 http_200_rate 更重要。
因为一个样本可能请求成功,但地区、语言、货币、页面内容都不符合目标场景。这样的样本对竞品分析帮助有限。
小结
竞品分析里的采样,不是简单地把页面抓下来。
动态住宅地址更适合发现阶段,用来扩大样本覆盖;静态住宅地址更适合复查阶段,用来稳定验证证据。
如果发现和复查混在一起,数据会变得难以解释。
比较稳的做法是先用动态住宅地址发现市场差异,再用静态住宅地址确认关键异常。最后把地区、页面、访问类型、最终 URL、截图和复查结论都记录下来。
这样竞品分析才不是“抓到了页面”,而是形成了一套可复盘的采样流程。