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

程序化广告行业(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"] += 1time_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(可见度)并不是特别准确。

四、总结

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/900215.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

矢量瓦片切片工具

1.geoserver 可以生成geojson mvt(pbf) tojson 三种格式矢量瓦片 2.mapbox的tippecanoe 可以生成pbf矢量瓦片&#xff0c;文件夹形式和mbtiles两种 3.TileStache python工具&#xff0c;可以生成geojson瓦片 4.PostGis mapbox插件可以生成pbf瓦片&#xff0c;据说是动态切片…

Windows 系统 Git 2.15.0 (64位) 下载与安装教程

1. 下载 Git 2.15.0 (64位) 安装包 下载地址&#xff1a;https://pan.quark.cn/s/f817ab9285dc 2. 运行安装程序 双击下载的 Git-2.15.0-64-bit.exe。 如果系统提示安全警告&#xff0c;选择 “运行”&#xff08;确认来源可信&#xff09;。 3. 安装向导设置 按以下步骤配…

MCP服务器:AI与外部工具交互的桥梁——Python和代理AI工具集成指南

&#x1f9e0; 向所有学习者致敬&#xff01; “学习不是装满一桶水&#xff0c;而是点燃一把火。” —— 叶芝 我的博客主页&#xff1a; https://lizheng.blog.csdn.net &#x1f310; 欢迎点击加入AI人工智能社区&#xff01; &#x1f680; 让我们一起努力&#xff0c;共创…

AIGC8——大模型生态与开源协作:技术竞逐与普惠化浪潮

引言&#xff1a;大模型发展的分水岭时刻 2024年成为AI大模型发展的关键转折点&#xff1a;OpenAI的GPT-4o实现多模态实时交互&#xff0c;中国DeepSeek-MoE-16b模型以1/8成本达到同类90%性能&#xff0c;而开源社区如Mistral、LLama 3持续降低技术门槛。这场"闭源商业巨…

Muduo网络库实现 [十五] - HttpContext模块

目录 设计思路 类的设计 解码过程 模块的实现 私有接口 请求函数 解析函数 公有接口 疑惑点 设计思路 记录每一次请求处理的进度&#xff0c;便于下一次处理。 上下文模块是Http协议模块中最重要的一个模块&#xff0c;他需要记录每一次请求处理的进度&#xff0c;需…

解决GraalVM Native Maven Plugin错误:JAVA_HOME未指向GraalVM Distribution

目录 问题描述解决方案为什么需要这样配置&#xff1f; 问题描述 在你的项目中&#xff0c;如果你遇到了以下错误信息&#xff1a; [ERROR] Failed to execute goal org.graalvm.buildtools:native-maven-plugin:0.10.5:test (native-test) on project DIctSystemInJavaUsing…

java 代码错误分析

错误代码 class Test {private static String name; // 声明一个私有静态变量 namename "World"; // 静态初始化块&#xff0c;给 name 赋值为 "World"System.out.print(name); // 打印 name 的值public static void main(String[] args) {System.out.p…

企业供应链管理

企业供应链管理 企业供应链管理 企业供应链管理企业信息化信息化的作用信息化的发展阶段信息化建设的挑战 SRM&#xff08;供应商关系管理&#xff09;SRM架构参考图企业内部系统协作&#xff1a; ERP (企业资源计划)OA (办公自动化)业务功能模块&#xff1a;企业日常办公 EMS …

Pascal语言的系统监控

Pascal语言的系统监控 引言 在现代计算机系统中&#xff0c;系统监控是确保计算机平稳运行的重要组成部分。无论是个人计算机还是大型服务器&#xff0c;监控系统的性能、资源使用及状态&#xff0c;都是提高系统效率、及时发现问题的关键。Pascal语言作为一种结构化编程语言…

出现次数超过一半的数(信息学奥赛一本通-1186)

【题目描述】 给出一个含有n&#xff08;0 < n < 1000&#xff09;个整数的数组&#xff0c;请找出其中出现次数超过一半的数。数组中的数大于-50且小于50。 【输入】 第一行包含一个整数n&#xff0c;表示数组大小&#xff1b; 第二行包含n个整数&#xff0c;分别是数组…

解决 CANoe 多测试用例下固定 IP 地址冲突问题的分析与方案

问题描述&#xff1a; CANoe的测试环境如下&#xff1a; 在Ethernet1总线上&#xff0c;通过VN5620连接了PCU&#xff08;实物&#xff09;&#xff1b; 使用VtestStudio&#xff08;VTS&#xff09;开发&#xff0c;并且生成了三个测试脚本(vtt文件)&#xff0c;分别为&#…

React 项目使用 pdf.js 及 Elasticpdf 教程

摘要&#xff1a;本文章介绍如何在 React 中使用 pdf.js 及基于 pdf.js 的批注开发包 Elasticpdf。简单 5 步可完成集成部署&#xff0c;包括数据的云端同步&#xff0c;示例代码完善且简单&#xff0c;文末有集成代码分享。 1. 工具库介绍与 Demo 1.1 代码包结构 ElasticP…

python爬虫:小程序逆向(需要的工具前期准备)

前置知识点 1. wxapkg文件 如何查看小程序包文件 打开wechat的设置&#xff1a; .wxapkg概述 .wxapkg是小程序的包文件格式&#xff0c;且其具有独特的结构和加密方式。它不仅包含了小程序的源代码&#xff0c;还包括了图像和其他资源文件&#xff0c;这些内容在普通的文件…

Prolog语言的强化学习

Prolog语言的强化学习 引言 强化学习&#xff08;Reinforcement Learning, RL&#xff09;是机器学习的一个重要分支&#xff0c;它通过与环境交互来学习最优策略&#xff0c;以最大化累积奖励。在强化学习中&#xff0c;智能体&#xff08;Agent&#xff09;通过试错方式与环…

开源且完全没有审核限制的大型语言模型的概述

开源且完全没有审核限制的大型语言模型的概述 关键要点 研究表明&#xff0c;存在多个开源的大型语言模型&#xff08;LLM&#xff09;完全没有审核限制&#xff0c;适合开放对话。包括基于 Llama、Mixtral、Phi-2 和 StableLM 的模型&#xff0c;参数范围从 2.78 亿到 4050 亿…

思二勋:未来所有的业务都将生于AI、长于AI、成于AI

每个时代都有其标志性的技术&#xff0c;每个技术的产生或极大地解放了个体的劳动力&#xff0c;提高了个体与组织之间的协作效率&#xff0c;或极大地促进了生产效率或使用体验&#xff0c;或将极大地优化了资源配置和供需匹配效率&#xff0c;从而提高人们的生活水平。从青铜…

玛卡巴卡的k8s知识点问答题(六)

21. 什么是 ReplicaSet&#xff0c;说明它的主要用途。 ReplicaSet是k8s中的一个控制器&#xff0c;他用于保证任何时候&#xff0c;都有指定数量的Pod副本在运行&#xff0c;他是RC的升级版&#xff0c;支持更灵活的Pod选择器&#xff08;基于集合的标签选择&#xff09; 主…

P7453 [THUSC 2017] 大魔法师 Solution

Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1​,a2​,⋯,an​)&#xff0c; b ( b 1 , b 2 , ⋯ , b n ) b(b_1,b_2,\cdots,b_n) b(b1​,b2​,⋯,bn​) 和 c ( c 1 , c 2 , ⋯ , c n ) c(c_1,c_2,\cdots,c_n) c(c1​,c2​,⋯,cn​)&…

免费送源码:Java+ssm+MySQL SpringBoot社区配送服务系统小程序 计算机毕业设计原创定制

摘要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;社区当然也不例外。社区配送服务系统小程序是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;…

SQL语句(一)—— DDL

目录 一、SQL 基础知识 &#xff08;一&#xff09;SQL 通用语法 &#xff08;二&#xff09;SQL 分类 二、DDL —— 数据库操作 1、查询所有数据库 2、查询当前数据库 3、创建数据库 4、删除数据库 5、切换数据库 三、DDL —— 表操作 &#xff08;一&#xff09;查…