在程序化广告的日常运维中,无效流量(IVT)的过滤是保障预算效益的基本功。机房流量、代理(Proxy)、VPN 这三类非住宅流量常被混为一谈,但它们的风险等级和处理策略截然不同:机房 IP 通常对应自动化脚本或批量点击,代理流量可能来自数据爬虫或广告验证工具,而 VPN 的使用者既可能是隐私敏感的真实用户,也可能是进行地域欺骗的黑产。混为一谈的结果,要么是误杀正常用户,要么是放走真正的风险流量。
要精准区分这三类流量,需要从“IP 归属定性”逐步深入到“行为指纹对抗”,再辅以“地理与时间逻辑校验”。以下是一套经过工程实践验证的识别框架。
这是最直接、成本最低的区分手段。核心思路是查询 IP 的归属信息,判断其网络类型。
关键字段中,net_type(网络类型)若值为“数据中心”或“机房”,基本可判定为机房流量。这类 IP 通常归属于云服务提供商的 ASN(自治系统号),如 AWS、阿里云、腾讯云等,常用于部署自动化脚本或进行批量点击。is_proxy、is_vpn、is_tor 等布尔字段若为 true,则表明该 IP 当前或近期被用于代理/VPN 服务。
这里需要特别注意数据新鲜度问题。代理 IP 池的变化频率极高,静态库的代理标识可能在一周内就完全失效。免费 IP 库如 MaxMind 的免费版虽然成本为零,但代理/VPN 标识更新滞后严重,生产环境建议评估数据源的更新频率指标。在这方面,Digital Element 的代理数据列表每日更新,通过持续评估 IP 地址是否表现出代理特有行为来维持识别能力;IPinfo 则在 Snowflake Marketplace 上提供了包含 is_vpn、is_proxy、is_tor、is_relay 等字段的广告信号数据集,并支持追踪代理 IP 的“最近活跃时间”和“出现频率”。
基础的分类逻辑可以用如下伪代码表示:
function classify_ip(ip) {
info = ip_database.query(ip);
if (info.net_type === "Data Center") return "机房流量";
if (info.is_proxy || info.is_vpn) return "代理/VPN流量";
return "普通住宅/企业流量";
}仅靠第一层远远不够。黑产现在大量使用“住宅代理”——IP 本身是真实家庭宽带,net_type 显示为“住宅”,但实际被用作代理节点。据行业观察,住宅代理的轮换频率可达每分钟数次,单纯依赖 IP 属性几乎无法识别。此时需要引入行为指纹检测。
端口与服务特征是基础手段。主动或被动探测该 IP 的常见代理端口(8080、3128、1080 等)是否开放,以及是否有 SOCKS5、HTTP Proxy 等协议响应。在生产环境要注意扫描频率的合规问题,避免被云服务商标记为异常行为。
IP 存活时间是区分动态拨号代理和静态住宅 IP 的有效指标。通过历史数据追踪该 IP 首次出现到当前的时间差。若存活时间小于 3 天且请求频次异常高,则极大概率是秒拨 IP 或动态代理,常用于短时刷量。秒拨 IP 利用家庭宽带拨号在一定时间内持有作恶,专门拉长黑名单更新周期,传统“同 IP 频次”规则对它基本失效。
请求头与协议一致性检测则更进一步。检查 TLS 指纹(如 JA3 指纹)、HTTP User-Agent 与 IP 归属地之间是否存在矛盾。例如,一个来自“美国住宅 IP”的请求,其 TLS 指纹却表现出 Python-Requests/urllib3 库的特征,则高度可疑。
如果行为指纹显示某 IP 存在 Tor 出口节点、Tor 中继或 VPN 特有的连接模式,可以进一步确认其代理属性。Digital Element 的代理分析器就是通过梳理代理列表并存储数据以供分析,持续评估和再评估 IP 地址是否表现出代理特有的行为来工作的,其代理数据列表每日更新。威胁猎人的 IP 风险画像产品则提供了更细化的标签,包括“秒拨”“劫持共用代理”“云手机”等类型,并附有风险分数供分级处置。
这一层不直接判断 IP 类型,但能有效辅助确认是否为“地域伪装”行为,从而反推代理/VPN 的使用。
不可能的地理跳跃检测是经典手段。若同一设备 ID 或用户 Token 在 5 分钟内,IP 归属地从“中国北京”跳变为“美国纽约”,且两者网络类型均为“住宅”,则几乎可以确定该用户通过 VPN 或代理切换了出口节点。考虑到物理位移的极限,结合交通方式设定合理的时间阈值是一种有效的策略。
时区与活跃时间矛盾则从另一个角度提供线索。分析用户请求时间是否与其 IP 时区对应的本地作息时间严重不符。例如,一个 IP 归属地为“巴西”的用户,持续在巴西时间凌晨 3 点产生大量点击行为,这不符合自然人作息规律。Epom 的 Traffic Quality Fraud Analyzer 就利用了类似逻辑:人类流量有自然的昼夜节律——夜间低谷、早晨爬升、日间高峰,而机器人流量在 24 小时内分布是扁平的,系统会基于主流流量地理区域调整本地时区来评估异常。
识别出风险流量后,处置方式同样需要精细化。一刀切地封禁所有代理/VPN 流量会误伤隐私敏感的正常用户,而完全放行又会让风险流量畅通无阻。
一种可参考的分层策略是:对命中 Tor/开放代理或机房非白名单的高风险 IP,拒绝或强制验证;对同 /24 网段新注册或点击超阈值且数据中心占比高的中风险情况,进行网段级限流加人工抽检;对住宅低风险、ASN 属正常运营商且无聚集特征的流量,放行但打标签,在后续环节继续监测。企业/校园/运营商 CGNAT 等场景应单独维护白名单,避免正常集中流量被误杀。
架构层面,程序化广告的实时竞价(RTB)场景要求上述 IP 特征查询在毫秒级内完成。采用内存加载的离线 IP 情报库而非每次都调用在线 API,可以避免网络延迟和成本开销。将包含 IP 段、地理位置、网络类型、风险评分、代理/VPN 标识等字段的情报数据编译为本地可查询的格式,在竞价请求进入时直接内存查询,是兼顾性能与准确率的常见做法。
代理和 VPN 流量的识别没有一劳永逸的“银弹”。机房 IP 的识别相对简单,住宅代理和商业 VPN 的对抗则是一个持续演进的攻防过程。核心原则有三条:数据新鲜度优先于数据覆盖度,滞后的代理标识在实际对抗中价值有限;多维度交叉验证优于单一信号判断,IP 属性、行为指纹、地理逻辑三者结合才能有效降低误报;处置策略分层优于一刀切,不同风险等级的流量匹配不同的处置力度。
对于正在构建或优化广告反作弊体系的团队,可以从 IP 情报数据源的更新频率评估入手,先建立基础的机房/代理/VPN 识别能力,再逐步引入行为指纹和地理逻辑校验,最终形成一套可迭代、可解释的流量质量管控体系。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。