独立开发者 Nick Abe 给自己的解谜游戏 Dayzle 投放了 Google 广告,投放总额 220 美元。两周结算下来,账单上记了 56 次计费安装,其中 33 次是秒进秒退的脚本流量。
按事件计费的系统如果把转化定义成没有门槛的动作,预算就会自动流向能更便宜造假的一方。风控做得再细也拦不住这种事,可伪造的是目标函数本身。
广告预算流向虚假终端
这起买量事故的源头,是开发者给安装设了每次 CA$1.50 的目标成本。头几天广告几乎花不出去——Google 找不到这个价位的安装。Nick 把目标成本上限去掉试了一次,当天消耗直接翻倍到 CA$80,广告后台报告 21 次安装。
图:Dayzle 官方社交卡片图。来源:dayzlegame.com
游戏自建的后台只记录到 1 次安装。查原始分析数据才看清:当天确实有 21 台新的 Android 设备,其中 20 台跑的是 Play 商店几天前就停止下发的老版本。Play 已经拿不到这个版本,说明这些包是从别处装进去的,但每台机器的安装来源都写着 Google Play。
在这张为期两周的完整账单里,真假流量的对比揭示了机器农场的运作规模:
| 流量类型 | 数量 | 占比 | 行为特征 |
|---|---|---|---|
| 总计费安装 | 56 次 | 100% | 触发 Google 广告结算 |
| 脚本农场流量 | 33 次 | 58.9% | 停留 0 秒、装的是旧版本包、只开过一次 |
| 定向外地区流量 | 7 次 | 12.5% | 来自广告没有定向的国家 |
| 真实人类用户 | 13 人 | 23.2% | 合计通关 92 局游戏 |
| 未归类 | 3 次 | 5.4% | 开发者自述里没有单独说明 |
13 个真人合计通关 92 局,产品本身是有人愿意玩的。近六成预算流向了脚本农场。这批设备的停留时间统一是 0 秒,却分布在 19 个州、28 种机型——分散是伪装,统一是特征。
目标函数在主动激励反向套利
农场不是靠随机点击碰运气,它们有一套贴着广告算法长的套利逻辑。Google 优化的是广告主自己给的指标;指标只有「安装」,系统就会找完成这个动作成本最低的渠道。
为了省时间,脚本专挑广告组里时长最短的视频来看,而且不点击,直接从本地留存的安装包副本装上去。这样单次任务更快,Play 那边也可能察觉不到。
Google 的归因逻辑按定义办事:看到「看过广告 + 随后安装」这个组合,就记一次转化。这批农场节点因此被判成效率最高的渠道,拿到更多曝光。
装得越多,算法越认,推过去的广告越多,农场就装得更多。这个循环不需要谁合谋——开发者出钱、算法出力、农场收钱,每一方都在做对自己最合理的事。
Hacker News 评论区里,开发者 dangero 的说法佐证了这种不对称:在他们的实测中,只有 Google 的网络还在给这些机器人流量出价,其他广告网络似乎已经识别出这批流量并退出竞价。
开发者被迫拉高验证门槛
单一个案改不了平台的通用规则。Nick 向 Google 提交了无效流量申诉表、等着要回这笔钱,同时改了自己的转化定义。
他把广告目标从「打开 App」换成「解开一局谜题」。让脚本打开应用、随便点两下,成本约等于零;让脚本按数独规则真的解出一局并触发埋点,成本高一个量级。
策略的实质是把「刷自己」的单价抬到比刷下一款应用更贵。这个办法对一个小体量应用够用,大应用值得农场投入更多,恐怕看到的假量比知道的多。这条防线不是平台给的,是开发者自己在业务流程里加出来的。
平台迟钝处理引发信任危机
比这 220 美元更让开发者不安的,是社区里反复出现的封号循环。
评论区里有人总结了一个反复出现的剧本:开发者把带 AdMob 变现的 App 发到商店,再买 Google Ads 引流,没过多久 AdMob 以「无效流量」为由封掉他的变现账号。
另一位开发者 dangero 的经历更细:第一次申诉被驳回后,他们的 AdMob 对接人安排了第二次申诉机会,并叮嘱这次要先承认「无效流量进入账户的责任在自己」。他们照做了,附上整改清单,第二次申诉依然被驳回。
有从业者给出经验值:搜索广告里至少 17% 是欺诈流量,实际可能更高。由此衍生出一种猜测——广告费先花掉、变现账号随后封禁、申诉用自动回复拖着,这套流程对平台是净收益。
这只能算猜测,没有证据支持。另一种提醒也值得听:这类叙事自带幸存者偏差,广告体系对多数中小商家仍然有效,只是失败者才会出来发帖。
按事件计费的广告系统,最终比的是谁的转化定义更难伪造。只要验证成本还低于套利收益,投出去的每一块钱都会先流向报价最低的造假者。开发者能做的是抬高这个成本,平台能不能从规则层面解决它,报告里没有答案。
参考链接:
- Google Ads Bot Farm 开发者自述
- Hacker News 社区相关讨论