互联网广告作弊十八般武艺 (上)

本贴最后更新于 2088 天前,其中的信息可能已经时移世异

本文原载于“计算广告”公众号,作者曾宪超、北冥乘海生。经过深入采风和精心准备,我们毅然决定做“互联网流量作弊的秘密”这期 live。Live 里的内容绝对是干货,学到这些知识,你可以毅然投身“流量优化”行业,也可以在自己业务中擦亮双眼避免上当。

中国在线广告的从业者,都有一颗感恩之心:**不论广告主给了你什么样的 KPI,不论你的流量多么不堪,都会创造条件把 KPI 完成,有人把这戏称为“作弊”。**当然,除了有感恩之心,还必须要有工匠精神。为了帮助大家在这个行业顺利发展,我们与秒针营销科学院一起,悉心整理了一个合格的广告人应该掌握的十八种常用手段,姑且称为“作弊十八般武艺”吧!带上这十八般武艺,在精准营销和大数据的道路上坚定前行吧!

在正式介绍十八般武艺之前,我们先来快速过一下广告投放的全过程,看看作弊都可能存在于哪些环节。

  1. 广告主与媒体或代理商签订广告合同,约定结算方式并提供广告创意。主要结算方式有:按展示量结算(Cost Per Mille, CPM)和按点击量结算(Cost Per Click, CPC)的手段做为一类;将按转化量结算(Cost Per Action, CPA)和按销售额结算(Cost Per Sale, CPS)。
  2. 广告市场中往往有第三方来监测广告效果,保障广告主的投入产出比。如果是 CPM/CPC 结算的,第三方会在广告展示环节添加检测代码/SDK,随着广告一齐到达用户端;如果是 CPS/CPA 结算的,第三方会在广告主网站或应用内添加检测代码/SDK,进行效果归因(Attribution)。
  3. 媒体展示广告,用户看到广告创意。
  4. 用户产生广告交互行为(展示、点击、下载和注册等)。在第三方代码的控制下,这些行为连带用户信息一齐被发送到第三方,第三方进行统计。
  5. 第三方将统计得到的数据报表交给广告主,广告主凭借这份数据与媒体按照指标进行结算。

看起来,广告的逻辑和流程都挺透明公开的,似乎没有什么可以作弊的地方,究竟是哪里出了问题呢?近现代史老师告诉我们,凡是遇到问“根本原因”的选择题,只用在 ABCD 里找有“资本”字眼的答案即可。在广告中,要想理清业务的脉络,跟着钱的流向走准没错。以 CPM 为例,广告主按照第三方提供的曝光数据与媒体进行结算,而第三方的数据来源于用户端接收到的广告展示,广告展示又是通过第三方的检测代码统计来的。**从数据到展示,从展示到检测代码。只要检测代码认为广告确实被展示了一次,那么不管该用户是否真的见到了广告,广告主都要为此次曝光付费。所谓作弊,就是一个让代码说谎的手段。**那么问题来了,如何能让检测代码说谎呢?这就是咱们要聊的“作弊十八般武艺”呀!

作弊手段与广告主要求的 KPI 有直接关系。从方法论来看,可以将作弊手法分为两类:**针对 CPM/CPC(记为 M)**的手段为一类;**针对 CPA/CPS(记为 S)**的手段为另一类。

从另一个角度,还可以将广告作弊分为虚假流量作弊(记为 N)流量归因作弊(记为 A)。所谓虚假流量,也称为 Non-Human Traffic(NHT),指的是广告的展示、点击或转化本身就是伪造出来的;而后者,则是将其他渠道的流量或者自然流量记在自己名下。一般来说,CPA/CPS 的广告由于伪造转化的成本较高,多采用归因作弊的思路。

另外,还可以根据作弊的手段,将广告作弊分为机器作弊(记为 R)人工作弊(记为 H)。相比之下,机器作弊十足炫酷、易规模化,具有大数据和人工智能的科技感觉;而人工作弊则精巧细致、韵味悠长,让人回忆起故乡醇厚的雾霾味道。

为了方便读者贯彻落实广告作弊的精神,我们将十八般武艺分成上下两篇来进行介绍。今天,咱们先来看看 CPM/CPC 作弊手段。

一、直接访问监测代码 (M,N,H)

监测代码是指那些具有客户端信息收集功能的代码。它的主要工作,是将客户端的信息以参数的形式拼凑成 URL,并以 HTTP 请求的方式传给第三方,告知“谁,在什么时候,看到了来自哪个媒体展示的,哪个广告主的广告”。以移动端为例,常见的客户端参数有如下几种(数据来自《中华人民共和国广告行业标准》):

除了这些,常见的需要被收集的参数还有展示广告时间戳、操作系统、浏览器、设备类型、联网方式、APP 信息和标准 UA 信息等。当广告在客户端产生了曝光,监测代码就会记录此次曝光,并采集用户信息,其生成的 URL 如下所示。除了第一个参数使用“?”连接外,后面参数都用“&”连接。从这段 URL 中很容易读出几个信息:用户的 IP 地址是 10.26.78.45,使用设备 UA 是 iPhone,IDFA 是 70E0E6465B7B12C844C63EC681C7507C 等。直接对这个 URL 发起 HTTP 请求,第三方 http://www.xxxxx.com 就可以根据 URL,解析出广告、媒体和用户的三方信息,在后台形成日志,作为一次正常的广告曝光。在行业中,常说的“检测代码”指的就是这个检测 URL,而非装填 URL 的代码,本文亦如此。

http://www.xxxxx.com/imp?CID=ad20&CPID=1321&CRID=20&OS=1&IDFA=70E0E6465B7B12C844C63EC681C7507C&OpenUDID=F1C7976BC455CB548BFC550EB7687F06&IP=10.26.78.45&UA=iPhone;%20CPU%20iPhone%20OS%206_1_2%20like%20Mac%20OS%20X)%20AppleWebKit/536.26%20(KHTML,%20like%20Gecko&TS=1198628984102

既然是个 URL,严谨的大数据从业者一定会思考:直接在浏览器地址里输入这段代码,是不是也就在广告主那里记录了一个曝光呢?是的,这就是作弊刷量最朴素的哲学原理。这其实算不上什么武器,只是个玩具,我们借此来说明基础的 CPM 作弊原理,CPC 也是一样一样的啊!

二、服务器刷监测代码 (M,N,R)

靠手工输入监测代码的方式来刷曝光虽然原理上可行,实际生产中则是没有什么卵用的,量太小,不足以产生质的影响。那能不能写一个爬虫程序,自动装填各种参数,自动发起 HTTP 请求呢?咳咳,你看看,这人要是想学坏,是真容易呀!可以租一些云服务器,把代码都搬到天上去,一键云作弊。

对于服务器刷代码的作弊手段,第三方是蓝瘦香菇的,占用了服务器大量带宽不说,虚假流量的涌入为真实效果的统计也提出了严峻的挑战。当然,服务器刷代码的方法还是有漏洞的:云机房的 IP 地址大多属于同一 IP 段,屏蔽掉主要云服务提供商的 IP 段即可——谁没事吃饱了撑的租了服务器上去看广告呢?

三、客户端刷监测代码 (M,N,R)

用服务器刷监测代码, 虽然简单直接,却在 IP 和 cookie 等用户身份统计上很难做到自然。于是,勤劳勇敢的作弊人们又想到了一个新办法,直接在客户端刷监测代码。您觉得访问了一个网页,其实网页上的 JS 又免费赠送了您好几次浏览,或许还有一次点击。这样一来,从用户行为上就很难找出什么马脚了。

当然, 这样的作弊也不难发现:上次我偶尔看到某汽车网站一次广告投放的用户频次,大多数都在 8/16/24/32 这些吉利的数字上。这是为什么呢?就是给用户的正常浏览都买一赠七了呗!如何自动化找出这样的作弊呢?我说两个关键词:傅立叶变换、频域,懂的码农自然懂了,不懂得恐怕还要去补习一下《信号与系统》,这超出了本文的范畴。

另外,不论是服务器刷还是客户端刷,在点击环节都会有个破绽:正常用户在点击广告时,自然的点击分布与广告创意有关,而刷的点击要么较为集中,要么均匀散布,并不难以分辨。画个点击热力图,就一目了然了。

四、频繁换用户身份 (M,N,R)

广告投放中的用户身份,不会是 email、手机号等 PII 信息,一般情况下,在 web 场景下用 cookie,在苹果手机原生应用中用 IDFA,在安卓手机原生应用中用 AndroidID,如果这些都没有,就用 FingerPrint(IP + User Agent)。

不论您采用哪种刷量的手段,一般来说都要比较频繁地变更用户身份。否则,在一个 cookie 身上猛薅羊毛,一个用户有成千上万次展示,一看就知道是假的。因此,频繁换用户身份,是作弊行业的基本功之一,也是反作弊时都应该了解的一点。

这个方式怎么对付呢?对可以选流量的 DSP 来说,有个简单的办法:凡是第一次看到的 cookie 或设备,就干脆不要出价了。

不过对供给方产品来说,这个法子就行不通了。但是,供给方有供给方的好处,对于移动上以 SDK 方式潜入媒体的 SSP 产品来说,可以拿到很多终端的信息。举个小例子,如果一台手机的电量总是满的,十有八九是有问题的,您明白了么?

五、放 iframe 造假展示 (M,A.R)

iframe 是一个 HTML 标签,可以在当前页面中插入其他页面的内容,常常被用来作为承载展示广告的载体。iframe 有诸多属性可以设置,其中最为广告人喜爱的莫过于宽度 width 和高度 height 了。通过对这两个参数的设置,可以将广告尺寸从肉眼可见的 220140 变成不可见的 11。不就改了一个大小嘛,这算什么作弊呢?各位,大小改了之后,虽然你看不见,但检测代码看见了呀,这是一次正常的广告展示,可以向广告主收钱了。可见,作弊者对我们广大用户还是有一颗怜悯之心的:我就挣广告主的钱,向借您一个像素点,广告不会显出来,不影响您正常上网。这不正印证了那句老话嘛:“不打扰,是我的温柔”。

在展示广告中使用 iframe 的手段进行作弊,广告效果自然是很差的,用户并没有看到宣传,广告主白花花的银子就没了。除了展示广告之外,视频广告也面临着类似的问题。例如,在一些新闻页面,会在一个非常不起眼的位置上播放视频广告,效果也是极差的。

六、肉鸡和 Root(M/S,N/A,R)

“肉鸡”是指那些被木马感染,可以被黑客远程控制的机器和设备。一说到黑客,大家可能就觉得“哇噻好厉害”,其实一点都不难。不知道大家有没有听说过“灰鸽子”,某人在小学 4 年级时是一名 script kids,而且还成功的捉到过一只肉鸡。就在要远程登录的一瞬间,肉鸡不见了,应该是被杀毒软件 Kill 掉了,从此卸甲归田从了良。言归正传,这个鸡呀,噢不,肉鸡,它就是一个正常的用户,可以发起浏览和点击等行为,因为肉鸡的后面是真人。提醒各位,注意上网安全,小心被捉鸡,指不定会点什么乱七八糟的东西呢。

Root 是指操作系统中超级管理员权限,当拿到 Root 权限后,整个系统就是你家,拆了都可以。这里所说的 Root 访问广告,主要指的是在移动端,某些 APP 获得了 Root 权限,就可以在后台静悄悄的进行着各种各样的访问、点击和下载操作,也都是真实的数据。与肉鸡不同的是,肉鸡后面是有真人在操作,而 Root 更多的是程序在执行,但从效果上来看,都是在用户不知情的情况下,在后台进行着各种各样的广告操作,欺骗第三方检测代码产生真实的用户行为数据。

说到这个 Root,可以说是移动时代“效果广告”的神器!去年,有一家中国公司的 Root 程序甚至惊动了美国 FBI,差点被当成窃取美国用户信息的典型而破坏中美友好大业,其实人家只是很单纯地想挣点儿广告费;而另外一家上市公司(请不要问我是哪一家)则收购了业内一家 Root 变现大师级企业,被他们 Root 的手机,除了 24 小时弹广告之外基本上就没啥用了,据说当天就能回本儿,但是用户的留存就很差了,为啥?连手机都摔了!

七、诱骗用户点击广告 (M,A,R)

诱骗用户点击广告的情况通常发生在 BBS 中,经常会有广告伪装成帖子,以博人眼球的内容诱骗用户产生点击。在点击之后,就会发生页面跳转或者触发软件的下载,用户很容易中招。除了 BBS 以外,在有些下载网站中,有很多的“点击下载”,相信各位也都经见过,点击之后指不定就跳到哪里去了,反正我是被带到某特卖网站上转了一圈,看到 0.2 折的貂绒大衣正准备剁手,才想起来原来我是要下载软件的。

从上述这些 CPM/CPC 的作弊手段中可以看出,广告作弊的一般思路都是围绕着检测规则而进行的各种 Hack,用虚假或低值的流量完成订单,骗取广告主的预算。只要抓住这一本质,广告的作弊手法就不难理清了。至于作弊者的底线是什么,不好意思,恐怕连底裤都不知道是何物。

《互联网广告作弊十八般武艺(上)》到这里就结束了。在下篇中,我们将就 CPS/CPA 作弊手段进行介绍,花样之繁多,手段之丰富,恐怕会令您咋舌。不信?在下篇里,我们将介绍运营商劫持、Cookie Stuffing、游戏自冲、淘宝代销、Cloaking、下载归因等五花八门的作弊手段,我们下篇不见不散,科科

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖 • 2 关注
  • CodeMirror
    1 引用 • 2 回帖 • 120 关注
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 592 关注
  • 导航

    各种网址链接、内容导航。

    37 引用 • 168 回帖 • 1 关注
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    228 引用 • 1450 回帖
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    20 引用 • 74 回帖 • 2 关注
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    18709 引用 • 69853 回帖 • 1 关注
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖 • 1 关注
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    163 引用 • 1450 回帖
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    215 引用 • 462 回帖
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    915 引用 • 931 回帖
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖 • 1 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 56 关注
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 9 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    138 引用 • 268 回帖 • 194 关注
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖 • 7 关注
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖 • 10 关注
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    4 引用 • 7 回帖 • 3 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用
  • Sphinx

    Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。

    1 引用 • 181 关注
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    124 引用 • 580 回帖
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    77 引用 • 1741 回帖
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 38 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 383 回帖 • 5 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    76 引用 • 37 回帖