首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >过滤出机器人和蜘蛛的广告系统。阻塞太远了

过滤出机器人和蜘蛛的广告系统。阻塞太远了
EN

Stack Overflow用户
提问于 2017-06-06 14:15:35
回答 1查看 77关注 0票数 1

我们有一个室内广告系统,并且不断地与机器人和蜘蛛作战。显然,我们希望尽可能接近100%的有效印象,并且我有一个特定的广告区域,我尝试了。

这个广告区域只出现在该网站的1页上,所以我比较我们的Google分析页面的页面浏览量与该广告区域的印象计数,并尽量接近它们。

基本的保护措施包括,已知的机器人/蜘蛛列表,使用javascript为广告提供服务,以及自动收集新的刮板/机器人的蜜罐。

这使得广告投放量占页面浏览量的130-150%。也就是说,机器人是在触发印象,而不是页面浏览量。

因此,我开始只加载广告的鼠标移动和投递下降到40-60%的页面浏览量。

现在这是台式机,没有移动。

为什么我没有想到现在的满足感如此之低?没有那么多的人关闭JS,或者在没有鼠标的情况下浏览。

实际上,我以为我几乎不会打断人们的印象,以为大多数机器人都会模拟鼠标运动,而不是我会把它们降得那么低。

有人有什么想法吗?

用JS代码段编辑

代码语言:javascript
运行
复制
adShow = 0;
document.onmousemove = function(){
    if (adShow == 0) {
            var leaderboard = CODE_FOR_AD;
            var adLeaderboard = document.querySelector('.adspace-leaderboard#adspace');
            adLeaderboard.innerHTML = leaderboard;
            adShow = 1;             
    }
}
EN

回答 1

Stack Overflow用户

发布于 2017-06-07 10:37:51

正如您对这个答案的注释(正如我所预期的),您将JS片段放在打开的body-tag之后,在实际的-tag元素之前也是如此(如果您将这个片段放置在页面的head部分中,也会发生同样的情况)。很可能有人在加载页面时移动鼠标,所以在HTML元素出现之前可能会执行mousemove事件,因此广告空间永远不会被实际加载。

您可以通过将代码片段放置在</body>结束标记之前,或者将代码包装在onDomReadyonLoad事件中,从而很容易地解决这个问题。最后两个将使代码分别在加载所有DOM之后执行,甚至在所有资产(图像等)之后执行。都装好了。在您的例子中,onDomReady就足够了。

如下所示:

代码语言:javascript
运行
复制
document.onDomReady = function(){
    adShow = 0;
    document.onmousemove = function(){
        if (adShow == 0) {
                var leaderboard = CODE_FOR_AD;
                var adLeaderboard = document.querySelector('.adspace-leaderboard#adspace');
                adLeaderboard.innerHTML = leaderboard;
                adShow = 1;             
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44392480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档