💡
原文中文,约8500字,阅读约需21分钟。
📝
内容提要
本文介绍了广告拦截的原理及检测方法,包括浏览器扩展、DNS层拦截和浏览器内置拦截。检测广告是否被拦截的方法有诱饵元素、性能API和检测adsbygoogle对象等。文章还提供了一个开源库,帮助网站开发者应对广告拦截问题。
🎯
关键要点
-
广告拦截工具主要分为三类:浏览器扩展、DNS层拦截和浏览器内置拦截。
-
浏览器扩展通过过滤规则列表拦截广告请求和隐藏元素。
-
DNS层拦截将广告域名解析到本地地址,无法被浏览器检测到。
-
浏览器内置拦截功能如Brave的Shields和Safari的隐私保护,用户可能不知情。
-
检测广告是否被拦截的方法包括诱饵元素、性能API和检测adsbygoogle对象。
-
诱饵元素通过在页面中插入广告样式元素来判断是否被隐藏。
-
性能API可以通过检查资源加载的字节数来判断广告是否被拦截。
-
检测adsbygoogle对象的存在与否可以判断广告脚本是否被拦截。
-
DNS层拦截的检测通过探测广告域名的可达性来实现。
-
检测到广告被屏蔽后,可以弹出提示用户关闭广告拦截插件,并采取防绕过措施。
❓
延伸问答
广告拦截工具有哪些类型?
广告拦截工具主要分为浏览器扩展、DNS层拦截和浏览器内置拦截三类。
如何检测广告是否被拦截?
可以通过诱饵元素、性能API和检测adsbygoogle对象等方法来判断广告是否被拦截。
诱饵元素在广告拦截检测中有什么作用?
诱饵元素通过在页面中插入广告样式元素来判断是否被隐藏,从而检测广告是否被拦截。
性能API如何帮助检测广告拦截?
性能API可以通过检查资源加载的字节数来判断广告是否被拦截,正常加载的广告资源字节数应大于零。
DNS层拦截的检测方法是什么?
DNS层拦截的检测通过探测广告域名的可达性来实现,快速失败的请求通常表明存在拦截。
检测到广告被拦截后应该如何处理?
可以弹出提示用户关闭广告拦截插件,并采取防绕过措施,如监控遮罩被移除的情况。
➡️