如何解决如何检测请求是否被AdBlocker阻止?
我们在Vue Js中有一个页面,我们注意到Adblocker阻止了某些请求,我想检测出这种情况何时发生(仅当请求被阻止时)
解决方法
创建一个看起来像广告的端点,以愚弄adblock使其阻塞,然后将其加载到脚本标签中,即:
TiSlack
然后,端点返回一些基本的js在页面上创建一个虚拟元素:
<script src="/adverts.js" type="text/javascript"></script>
然后在页面上或您的应用中,您只需查找应已加载的元素,如果不是,则该元素被阻止,这表明用户已启用adBlock:
app.get('/adverts.js',function (req,res,next) {
const response = `var a=document.createElement('div');a.id='advert-test';a.style.display='none';document.body.appendChild(a)`
res.setHeader('content-type','text/javascript')
res.setHeader('content-length',response.length)
res.send(response)
})
如果您尝试解决阻塞图片的问题,请不要使用广告特征(例如广告的通用图片尺寸)来命名资产。即。 let adBlocked = document.getElementById('advert-test') ? false : true
改用/ads/ad375x50.jpg
之类的东西,并将哈希与实际文件匹配/映射。其中包括DOM ID,并且/a/708e8144b8c034c8bde17391ef1bf9c1.jpg
之类的类将被隐藏(heres被阻止类的列表)。
如果您尝试解决加载AdSense或第三方域名等问题,那么您会很走运,因为没有解决方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。