程序化广告行业(59/89):广告验证与反作弊实战技巧

发布于:2025-04-05 ⋅ 阅读:(17) ⋅ 点赞:(0)

程序化广告行业(59/89):广告验证与反作弊实战技巧

大家好!在程序化广告领域,想要做好投放,除了了解基本的架构和原理,还得掌握一些关键的技能,比如广告验证和反作弊。今天就和大家一起深入学习这方面的知识,共同进步。

一、广告反作弊全解析

在程序化广告的世界里,作弊行为就像隐藏在暗处的“小偷”,偷走广告主的预算,破坏市场的公平。所以,反作弊是保障广告投放效果的重要环节。

(一)常见作弊现象及检测方法

  1. 离线检测:我们可以通过分析一些数据特征来发现潜在的作弊行为。如果一个cookie对应超多IP或设备ID ,或者一个设备ID关联了大量不同的IP和userAgent,这就很可疑。还有,如果点击的refererurl里有奇怪的字符串,像包含display_ad.php ,或者出现有点击却没曝光的IP,以及点击率异常高(移动端大于10%或PC端大于6%且点击量大于30 )的IP和设备ID,这些都可能是作弊的信号。另外,如果某个广告位的曝光或点击都集中在少量的IP、cookie或设备ID上,或者页面停留时间、窗口大小不符合常理,比如PC端平均窗口大小指标小于70万像素或大于110万像素,移动端小于1万像素或大于50万像素,都值得深入调查。
  2. 实时检测:在广告投放的过程中,也有一些实时监测作弊的方法。要是发现某个cookie在N分钟内使用的IP超过N个,或者点击次数超过N次,那就很可能有问题。另外,如果userAgent里出现java、python这类关键字,直接拉黑,因为很多作弊机器人可能会用这些特征。

(二)反作弊方法

  1. 基于用户标识:通常,我们会用IP、cookie(或设备ID)来识别用户。要是发现某些用户的曝光或点击频次特别高,就得小心了。有些作弊者会用机器人不断变换IP来迷惑我们,这时候就要综合考虑浏览器指纹信息。比如说,当IP和cookie都不一样,但浏览器型号、分辨率、用户窗口大小、操作系统版本号、设备品牌都相同,那就很可能是作弊流量。
  2. 基于用户行为
    • 广告浏览/点击行为:仔细分析用户的广告浏览和点击行为能发现很多线索。要是同一用户在同一时间对多个广告位进行浏览或点击,或者短时间内在同一个广告位频繁操作,这就不太正常。还有,如果用户的广告浏览或点击时间间隔特别规律,或者曝光数和点击数在某个时间点突然暴增,又或者用户没看广告就直接点击(大量无曝光的点击),以及浏览广告的面积和时长数据异常,点击位置过于规律或集中,还有浏览和点击的时间顺序错乱,这些都可能是作弊行为。
    • 到站情况:用户点击广告后到达目标页面的表现也很重要。我们要综合考虑用户留存、停留时间、访问深度这些指标,还要关注用户在站内的交互情况,比如点击、滚动、输入等操作。有些作弊媒体会用机器制造大量页面点击,我们可以通过分析点击区域、次数、频率、页面窗口大小等指标来辨别真假。
  3. 基于广告来源:对到站流量的来源页面进行侦查也能发现作弊流量。如果出现大量没有refer(来源页面信息)的广告流量,或者refer和投放媒体不对应,比如要求投放到A网站,结果refer里大量出现B网站,那就可以判定是作弊流量。

下面用一段简单的Python代码来模拟检测同一用户短时间内多次点击的情况:

import time

# 模拟用户点击记录,格式为 (用户ID, 点击时间)
click_records = [
    ("user1", time.time()),
    ("user2", time.time() + 1),
    ("user1", time.time() + 2),
    ("user1", time.time() + 3)
]

user_click_count = {}
for user_id, click_time in click_records:
    if user_id not in user_click_count:
        user_click_count[user_id] = {
            "count": 1,
            "last_click_time": click_time
        }
    else:
        user_click_count[user_id]["count"] += 1
        time_diff = click_time - user_click_count[user_id]["last_click_time"]
        if time_diff < 5 and user_click_count[user_id]["count"] > 2:
            print(f"用户 {user_id} 可能存在短时间内多次点击的作弊行为")
        user_click_count[user_id]["last_click_time"] = click_time

二、品牌安全保障

品牌广告对投放环境的要求很高,因为它关系到品牌的美誉度。想象一下,如果一个高端品牌的广告出现在色情网站或者敏感时事新闻页面上,用户肯定会对这个品牌产生负面印象,严重的话还会损害品牌形象。

为了保障品牌安全,通常会有专门的广告验证平台提供服务。广告主可以在这些平台上设置敏感或非法的关键词、页面黑名单,在投放时过滤掉相关流量。DSP平台和这些广告验证平台对接有两种方式:Pre - bid和Post - bid 。Pre - bid就是DSP平台在出价前询问广告验证平台,根据流量是否符合广告主的条件来决定是否出价,这样可以排除效果差和内容敏感的流量,避免产生不必要的费用。Post - bid则是在竞价成功后再询问广告验证平台,如果流量符合条件就展示广告,不符合就用空白或其他图片代替,但不管怎样,广告主都得为这个流量付费。

三、广告可见度测量

广告曝光了,不代表用户就能看到。广告可见度的统计逻辑比普通广告投放曝光要严格得多,它需要验证广告是否出现在浏览器的可见区域,并且满足一定的可见时长要求。

通常,我们通过JS代码来检测当前页面的位置和可视面积。MMA(移动营销协会)的广告可见性验证标准还规定了验证时间间隔,展示类广告最低100毫秒检测一次,视频广告最低每200毫秒检测一次。可见度相关的指标有可监控曝光次数、可视曝光次数和可视率。

不过,有些情况下广告可见度是无法监测的。比如部分媒体不支持JS代码投放,还有媒体的广告位是跨域iframe形式,JS无法检测跨域广告位的位置和可视面积。在App环境里,由于广告位基于webview,可视面积默认是100%,所以移动端的Viewability(可见度)并不是特别准确。

四、总结

今天我们详细学习了程序化广告中的广告验证和反作弊知识,包括常见的作弊现象、检测方法、反作弊策略,以及品牌安全和广告可见度的相关内容。这些知识对于优化广告投放、提高广告效果非常重要。

写作不易,如果这篇文章对你有所帮助,希望大家能关注我的博客,点赞评论支持一下。后续我还会分享更多程序化广告行业的干货,咱们一起在这个领域不断探索,共同提升!


网站公告

今日签到

点亮在社区的每一天
去签到