Skip to content
Charles Shao
Go back

反作弊与 IVT:竞价拦截、近线回灌与结算扣量

Updated:
–views

在程序化广告交易中,无论是 Bidder 定向 阶段最先过滤掉的请求,还是 MMP 结算 环节最终扣除的「疑似作弊安装」,本质上都在拷问同一个核心问题:这笔广告曝光(Impression)、点击或转化,究竟算不算合格流量?

行业内将不合格的流量统称为无效流量(Invalid Traffic,简称 IVT)。在真实的业务场景中,IVT 的表现形式多种多样,常见的包括自动化机器人(Bot)、数据中心流量、点击农场、域名伪装以及像素填充等。需要强调的是,这些作弊行为在前端页面上往往难以察觉,但它们无一例外都会潜入需求方平台(DSP)的竞价日志,并最终体现在买方(Buy Side)的账单中。

正因如此,在公开的程序化广告生态里,名义上的千次曝光成本(CPM)看似诱人,但实际的合格率却往往不尽如人意。正如我们在 交易模式 一文中所展示的「可见 × 非 IVT × 品牌安全」折损表,流量质量绝不仅仅是一套防作弊话术,而是直接决定了买方每一分预算的真实单位成本。

本文是 归因与度量 系列的第 2 篇(流量真伪)。 全系列 3 篇:

  1. 归因与结算:MMP、SKAN 与 SSOT
  2. 反作弊与 IVT
  3. 可见性与广告验证

一句话定位:从买方工程视角拆解无效流量(IVT)的防御体系,涵盖从 Pre-bid 竞价拦截、Render 端防伪、近线回灌到最终结算扣量的全链路治理方案。

TL;DR

Table of contents

Open Table of contents

1. 痛点重估:名义曝光很好看,合格流量却很贵

在程序化广告生态中,需求方真正想要采买的,绝不是一条冰冷的广告曝光像素记录,而是一次能够切实影响真实用户的合格曝光;沿着转化漏斗向下,才是真实的点击、应用安装与最终付费。然而,无效流量(IVT)的存在犹如一把利刃,生生截断了这条价值链:

你以为买到的实际可能是
优质域名上的展示垃圾站冒充 nytimes.com 的域名伪装
App 内激励完播设备农场自动「看完」领奖励
渠道带来的安装点击洪水 / 安装劫持抢来的归因
高 CTR 素材像素填充、叠层、不可见点击

行业内普遍认同的一个严峻现实是:在开放的实时竞价(RTB)环境中,高达两位数百分比的广告预算可能被消耗在无效或低质流量上。面对这一挑战,买方工程团队必须在漏杀与误杀之间寻找平衡:一方面,放过一次 IVT 不仅会烧掉当次的 CPM 成本,虚假数据还会顺着管道向下游蔓延,进而污染召回策略、模型打分与频次控制逻辑;另一方面,防御策略若过于激进导致误杀真实流量,系统则会损失宝贵的填充率(fill rate)与正向学习样本,长此以往更会破坏与优质媒体(Publisher)及供给方平台(SSP)的合作关系。

正因如此,反作弊绝不能仅仅停留在风控部门的一纸孤立报表上。它必须被深度嵌入到整个竞价漏斗与结算账本的硬性约束中,工程架构需要清晰地回答:究竟应该在哪一层实施拦截?判定拦截的证据链是什么?一旦发生误杀,系统又该如何快速回滚?

2. 流量分类:GIVT、SIVT 与常见欺诈家族

2.1 MRC 与行业标准口径:GIVT vs SIVT

在行业规范层面,MRC(Media Rating Council) 与 IAB 将无效流量粗略划分为两大阵营。目前,几乎所有的第三方验证厂商以及买方商业合同,都在沿用这套话语体系:

IVT 分类图:左侧 GIVT(一般无效)含数据中心/已知 bot、非浏览器环境、已知坏源清单;右侧 SIVT(复杂无效)含域名/App 伪装、点击农场与劫持、像素填充与叠层。底部说明 GIVT 偏规则命中、SIVT 偏行为与模型,供应链伪造另见 ads.txt/schain GIVT 大致是黑名单能扫掉的明显假人,SIVT 是看起来像人、行为却不对的那种;两者对应的检测成本和误杀风险截然不同。

GIVT(General Invalid Traffic)SIVT(Sophisticated Invalid Traffic)
是什么一般无效:已知爬虫、数据中心、预取、监控探针等复杂无效:刻意伪装、刷量、劫持、不可见造假等
怎么抓名单、ASN、UA、环境能力声明,以规则为主行为序列、设备图谱、供应链交叉、模型,更依赖证据
工程含义适合 Pre-bid 硬拦,误杀相对可控更适合近线 / 离线,热路径上多用降权或高置信黑名单

在商业合同中,最常见的免责条款往往表述为:「结算时无条件剔除 GIVT,而 SIVT 则依据第三方厂商标签或联合抽检结果进行争议处理」。将这一业务逻辑映射到工程实现上,意味着 GIVT 基本上可以通过轻量级的查表逻辑实时阻断;而面对 SIVT,系统必须在近线或离线环境中积攒足够丰满的证据链,才敢于执行拦截或扣费动作。

2.2 欺诈家族:按攻击面归类

为了让底层检测信号能够精准匹配到对应的防御闸门,我们需要先按照攻击面将常见的欺诈手法进行归类:

家族典型手法优先信号
Bot / 数据中心机房 IP、已知爬虫、无头浏览器ASN、IP 信誉、UA / Client Hints
域名 / App 伪装把垃圾库存标成优质 domain / bundleads.txt / app-ads.txt / schain 对不上
库存洗钱 / 长链转售未授权层层倒手sellers.json 身份、complete=0、异常 hops
点击农场 / 激励刷量低价人工或脚本刷点击、完播点击率异常、设备指纹重复、地理/时段扎堆
点击洪水 / 安装劫持狂点或临近安装伪造点击抢归因点击→安装时序、自然量被截胡、SSOT 去重
像素填充 / 叠层 / 1×1广告「曝光」但人看不见或点不到OMID 可见性、几何异常、与 MRC 口径冲突
SDK / 信标造假客户端伪造曝光、点击、奖励回调S2S 校验、签名、服务端真相源

关于供应链层面的伪装与库存洗钱问题,其核验闭环已经在生态透明度系列文章中进行了详尽推演。在本文的后续探讨中,我们将确立一个基本共识:供应链核验失败完全可以作为高置信度的 IVT 信号;然而,核验通过却绝不意味着流量一定安全——因为真人刷量、点击农场以及像素填充等作弊行为,照样可以堂而皇之地跑在一条完全合法的 schain 节点链路上。

2.3 MFA 与「低质流量」:厘清与 IVT 的核心边界

IVT 治理的核心目标是回答「这笔流量该不该付钱」;但在实际交易中,还存在另一类棘手的流量:屏幕背后的确是真实用户,但广告展示几乎产生不了任何转化效果。行业内常说的 MFA(Made For Advertising,为广告而生的站点)、空壳内容农场以及纯粹为了堆砌广告位而拼凑的页面,均属于此类「低参与度」流量。

IVTMFA / 低参与
人假人或无效会话多半是真人
钱合同上常可剔 / 拒付通常仍要付,除非合同另写
工程动作拦、降权、结算扣量席位降权、SPO 收敛、效果模型降分
看板IVT%、争议率停留、滚动深度、viewability、下游 CVR

日常交流中,「流量质量」这个宽泛词汇极易将这两件事混为一谈。但在工程实务中,IVT 占比低仅意味着系统未将预算浪费在假人身上,却无法证明买到了具备商业价值的真实受众。对比前一种拦截方案,MFA 的治理逻辑实际上更贴近于供应链质量控制与出价模型优化,因此不必将其强行塞入 GIVT 或 SIVT 的标签体系中。需要强调的是,在构建席位(Seat)评分机制与执行供应链路径优化(SPO)时,MFA 的惩罚权重往往需要与历史 IVT 表现并列,共同作为核心输入特征。

3. 全链路四道闸:从竞价到结算的层层防御

在构建反作弊架构时,最常见的设计误区便是试图依赖单一的庞大模型来拦截所有形态的 IVT。真实的业务流转逻辑是:随着交易链路向后延伸,系统能够捕获的作弊证据会越来越充分,但执行拦截所付出的沉没成本也随之水涨船高。

反作弊四道闸:① Pre-bid 请求级 gating(IP/ASN/UA/黑名单、供应核验 → no-bid/降权);② Render 端上 OMID/SDK 防伪 → 丢坏会话;③ Post-bid 近线开窗聚合 → 拉黑回灌;④ Settlement 计费校正与 MMP/SSOT 防劫持 → 拒付/扣量。越靠前越便宜,越靠后证据越足 四道闸在同一条钱路上:Pre-bid 省的是算力,Settlement 省(或追回)的是真金白银。缺哪一层,账都会歪。

3.1 Pre-bid 阶段:低成本的请求级拦截

第一道防线直接挂载于 Bidder 定向 模块的最前端。一旦判定当前请求存在高风险,系统会立刻执行 no-bid 逻辑,甚至连后续的广告候选召回环节都直接跳过。

为了确保竞价引擎的极速响应,能够放置在这一层的过滤条件,必须满足「支持纯本地计算」、「亚毫秒级执行完毕」以及「误杀率极低」这三大严苛要求。典型的可用信号包括:

需要特别警惕的是,绝对不能将深度学习模型打分、跨用户图计算,或是需要同步等待第三方 API 响应的「实时 IVT 评分」强行塞入竞价热路径。这些高耗时的复杂计算本质上属于近线产物,它们最终必须以静态数据表的形式回灌到本地内存中供 Pre-bid 查表使用。

3.2 Render 阶段:端上防伪与会话测量

当买方成功竞胜后,广告创意还需要在客户端被真实渲染、被测量可见性,并最终被用户点击。在这一渲染与测量层,系统通常会执行以下核心动作来捕获异常会话:

3.3 Post-bid 阶段:近线流式开窗与状态回灌

当海量的广告曝光、点击与转化数据涌入 Kafka 事件中枢 后,工程团队通常会借助 Flink 等流处理引擎开启秒级时间窗口,以此捕捉跨请求的异常聚集行为:

一旦近线引擎命中上述规则,系统通常会触发实时告警,并生成带有生存时间(TTL)限制的临时黑名单,随后将这些惩罚状态异步回灌至 Pre-bid 的本地内存表中。正因如此,我们在定向篇中反复强调「复杂状态依赖异步回灌」,从而确保在线竞价路径始终只执行极速的布尔查表逻辑。

3.4 Settlement 阶段:计费校正与归因防线

结算是真金白银真正发生易手的最终环节,同时也是系统掌握作弊证据最为充分的阶段。在这一层,防御动作直接与财务账单挂钩:

4. 渠道画像差异:打破通用规则的「一刀切」迷思

如果试图用同一套 GIVT/SIVT 标签体系去生搬硬套所有类型的广告库存,必然会导致防线的崩溃。因为在不同的媒介渠道上,最先失效的特征信号以及最应该发力的防御闸门截然不同。将通用开放程序化市场的默认假设强加于 CTV 或激励视频场景,不仅会造成大量漏杀,更会引发灾难性的误杀。

渠道高发问题优先信号更该使劲的闸门
Web 展示域名伪装、像素填充、数据中心 botsite.domain + ads.txt、IP/ASN、OMID 几何Pre-bid 核验 + Render 可见性
Appbundle 伪装、模拟器农场、SDK 信标造假app.bundle + app-ads.txt、设备一致性、S2S 校验Pre-bid + Render(SDK)+ 归因
激励视频自动完播领奖、点击/奖励回调伪造完播时序、奖励 S2S 签名、设备重复度Render 防伪 + Settlement;Pre-bid 可更狠
CTV / OTT身份稀、信标易漂、SSAI 超计播放心跳 vs stitch、ifa 稀疏、app-ads 覆盖差Render/信标校准 + 事后扣量;少做粗暴 Pre-bid 误杀

需要强调的是,激励视频流量在工程架构中默认必须按照高风险库存进行管控。这意味着不仅要收紧拦截阈值、强制要求 S2S 签名校验,还要在数据看板上将其与普通插屏广告严格隔离开来。对比之下,CTV 流量的单价极其昂贵且误杀成本极高,因此更适合采用温和的降权策略配合事后的结算校正;在面对 CTV 普遍存在的身份标识稀疏问题时,切忌迷信单一字段的粗暴拦截。

5. 信号清单拆解:热路径与近线的特征分流

为了保障竞价引擎的吞吐量,我们必须以「特征计算能否挤进 20ms 的耗时预算」为硬性标尺,对海量反作弊信号进行严格分流。切忌将所有看似有用的特征一股脑地塞进 Bidder 模块:

信号典型用法放哪一层
IP / ASN / 数据中心库GIVT 硬拦Pre-bid
UA / Client Hints / 设备字段一致性环境造假Pre-bid
坏源黑名单(domain/bundle/seat)已知农场、历史高 IVTPre-bid(回灌)
ads.txt / sellers.json / schain伪装与未授权Pre-bid 核验
点击率 / 转化率窗内突变刷量、坏席位近线
设备指纹重复度、模拟器标记农场近线 + 归因
点击→安装时序、自然量截胡归因欺诈Settlement / MMP
OMID 可见比例、几何异常像素填充Render / 离线校正
厂商标签(MRC 认证测量)合同口径、抽检离线结算

5.1 OpenRTB 关键字段速查指南

在竞价热路径上执行的 IVT 初筛,其核心养料完全来自于 Bid Request 报文中携带的上下文信息。以下梳理了反作弊引擎最常调用的核心字段(完整的对象模型请参阅协议篇,关于 schain 的深度核验则详见 专文):

对象 / 字段反作弊怎么用注意
device.ip / ipv6ASN、数据中心库、地理冲突代理 / 企业出口会误伤,名单要分级
device.ua / suabot、无头、能力声明矛盾各 ADX 有的只给 sua,解析层要归一
device.ifa / lmt / dnt设备农场重复度、限跟踪下的异常密度CTV 上 ifa 常稀疏,缺值 ≠ 作弊
device.geo vs IP 归属声称位置与网络位置系统性偏离漫游、VPN、SSP 粗粒度 geo 都会吵
device.make / model / os / hwv与 UA 声明交叉校验字段造假成本低,只作辅助信号
site.domain / app.bundle坏源黑名单、伪装入口App 还要商店映射才能查 app-ads.txt
user.buyeruid / user.id近线里看同一 ID 的点击洪峰cookie 退场后覆盖率掉,别当唯一键
source.schain逐跳授权、complete、hops核验失败可硬拦或降权;通过仍可能是真人刷量
source.fd / tid最终决策方、事务去重辅助排障,很少单独当 IVT 依据
imp.tagid / 席位相关席位级历史 IVT 分、灰名单和 SPO 的 seat 评分共用一张表最省事

在读取这些底层字段时,工程团队必须牢记一个核心原则:上游流量方自报的 domain、bundle 甚至 geo 坐标都是极易伪造的;只有经过 ads.txt、sellers.json 交叉验证的身份,以及买方自建的坏源历史库,才是真正可靠的信任锚点。至于底层解析与数据归一化过程中潜藏的工程暗坑,我们在 Bidder 解析层 中已有详述。

此外,在隐私合规层面,尽管反作弊机制在 TCF 框架中通常被豁免划入 Special Purpose(必要目的)一侧,但数据最小化原则照样适用。具体而言,能够通过哈希处理的标识符就坚决不要保留明文,能够通过聚合维度判定的特征就不要沉淀为长期的用户级档案。关于全球各地区的合规差异,请参考 地区合规 与 TCF。

6. DSP 反作弊工程架构:热路径极轻、近线加重、离线回灌

为了兼顾低延迟与高拦截率,DSP 的反作弊架构必须在三层计算环境中进行严格的职责隔离。我们可以通过下图清晰地梳理其流转逻辑:

DSP 反作弊架构:上层热路径 Bid Request → 本地表 → 供应索引后分叉为「通过进入定向」或「命中整请求 no-bid」;左下近线 Kafka → Flink 开窗 → 拉黑回灌;右下离线厂商标签与样本 → 模型 → 计费校正。热路径禁止跑重模型 Bidder 热路径只查表,Kafka / Flink 处理刚发生的异常,离线管合同口径和难例,三层靠回灌串起来。

6.1 竞价热路径的铁律

6.2 近线流处理与离线批处理

6.3 决策日志与审计字段规范

如果在日志中漏打关键字段,一旦进入商务争议环节,工程团队将彻底丧失现场回放的能力。因此,在竞价与结算日志中,至少必须沉淀以下核心字段:

字段用途
ivt_decisionpass / block / soft_downrank
ivt_reasonasn_dc / ua_anomaly / schain_fail / blacklist / model_vN …
ivt_list_version / rule_version回放与争议
path_score / seat_id和 SPO、席位质量对齐
vendor_ivt_tag(若有)对账与 make-good

在面对媒体或 SSP 的对账争议时,买方能够摆上谈判桌的必须是带有明确版本号的结构化证据,而绝不能是一句模糊的「当时模型觉得该流量可疑」。

还原到热路径的执行流中,拦截顺序大致遵循如下漏斗:系统首先校验 ASN 与数据中心库,接着比对 UA 与设备字段的一致性,随后探查域名、bundle 或席位是否命中黑名单,紧接着执行 schain 链路核验,最后参考席位的历史 IVT 评分。一旦命中硬性拦截规则,系统即刻返回整请求的 no-bid;若仅触发降权,则允许请求继续参竞,但在出价环节乘以惩罚系数。需要补充的是,对于品牌 PG(程序化保证)或自有 App 的优质流量,完全可以在进入硬拦逻辑前通过白名单机制予以豁免。

7. 协同作战:自建规则与第三方验证厂商的分工边界

在成熟的买方反作弊体系中,极少出现「纯粹自建」或「完全外包给厂商」的极端架构。最务实的工程分工往往如下表所示:

自建(规则 + 近线)验证厂商(HUMAN / IAS / DV 等)
强项Pre-bid 快、可控、和席位/SPO 一体MRC 口径、合同认可、跨买方样本
弱项SIVT 难例覆盖、对外说服力标签延迟、采样、热路径延迟/成本
典型用法竞价拦截、TTL 黑名单、席位分结算抽检、品牌报告、争议证据

在将这套协同机制落地到工程代码时,必须死守以下几条边界:

8. 厘清治理边界:供应链、可见性与归因的职责划分

在日常的业务沟通中,以下几个截然不同的技术领域经常被销售话术含糊地打包成一句「流量质量」。但在工程架构层面,我们必须将其严格拆分并交由不同的子系统去治理:

主题回答的问题代表手段专文
供应链透明度路真不真、谁被授权ads.txt / sellers.json / schain透明度上、schain
SPO路贵不贵、是否自我竞争跳数、税代理、席位收敛SPO
IVT / 反作弊人真不真、行为合不合格GIVT 规则、SIVT 行为、结算扣量本篇
可见性 / 验证算不算看见、品牌安不安全OMID、MRC、IAS/DV可见性与广告验证;渲染见 VAST/MRAID
归因欺诈安装/事件是谁抢的点击洪水、劫持、SSOTMMP 归因

需要强调的是,这些治理模块在实际运行中会产生不可避免的交集。例如,域名伪装既是一个典型的供应链授权问题,同时也是高置信度的 IVT 信号;而像素填充既直接破坏了可见性指标,又是 SIVT 家族的惯用伎俩。因此,在进行线上排障时,工程师必须首先理清当前排查的标的究竟是「交易路径」、「用户真伪」还是「渲染可见性」——如果对错了排查层级,两端的报表数据将永远无法对齐。至于 MFA 与低参与度流量的治理,前文 §2.3 已有论述,切忌将其与单纯的 IVT 占比画上等号。

9. 架构验收指标:上线后究竟该看什么?

在反作弊工程的价值观里,绝对不存在「拦截率越高越好」的粗暴逻辑。为了科学评估防御体系的健康度,建议工程团队至少建立以下这组内部监控指标,并将其与第三方厂商的报表进行物理隔离:

指标含义怎么用
ivt_block_ratePre-bid 因 IVT 直接 no-bid 的占比按渠道 / 席位拆;骤升先查误杀
ivt_reason 分布各 reason 的量与趋势看是 ASN 暴增还是 schain 变更
席位 / 域名 IVT%近线或厂商标签回灌后的源质量喂 seatScore、灰名单
误杀解封量 / 豁免次数白名单救火与 TTL 回滚上升说明阈值或名单太激进
争议率 / make-good 金额结算侧和媒体扯皮的比例合同与证据包是否够用
合格 CPM / 合格曝光成本名义支出 ÷ 非 IVT(且按需 viewable)曝光比单独 IVT% 更接近业务
下游 CVR / 学习样本纯度扣 IVT 前后的模型与归因质量样本管道是否切开合格子集

在进行策略上线验收时,通常需要引入以下几个维度的科学对照:

10. 生产环境的工程取舍与排障口诀

在将反作弊架构推向生产环境时,工程团队往往需要在极致的拦截率与脆弱的商业生态之间做出艰难取舍。以下是几条经过实战检验的调优原则:

排障与调优口诀:误杀比漏杀更伤关系;黑名单必带 TTL 与豁免;样本污染必反噬模型;激励场景默认高风险;SPO 不能替代反欺诈;合同优先级高于模型。

在筑牢了反作弊的底层防线之后,如何进一步确保这些真实的曝光能够切实被用户看见并保障品牌安全?请继续阅读下一篇:可见性与广告验证。

延伸阅读

同系列与相邻篇:

规范与一手资料:


–views
Share this post on:

Previous Post
可见性与广告验证:MRC、OMID与品牌安全
Next Post
VAST、MRAID与端上引擎:广告渲染协议解析