我们有一个室内广告系统,并且不断地与机器人和蜘蛛作战。显然,我们希望尽可能接近100%的有效印象,并且我有一个特定的广告区域,我尝试了。
这个广告区域只出现在该网站的1页上,所以我比较我们的Google分析页面的页面浏览量与该广告区域的印象计数,并尽量接近它们。
基本的保护措施包括,已知的机器人/蜘蛛列表,使用javascript为广告提供服务,以及自动收集新的刮板/机器人的蜜罐。
这使得广告投放量占页面浏览量的130-150%。也就是说,机器人是在触发印象,而不是页面浏览量。
因此,我开始只加载广告的鼠标移动和投递下降到40-60%的页面浏览量。
现在这是台式机,没有移动。
为什么我没有想到现在的满足感如此之低?没有那么多的人关闭JS,或者在没有鼠标的情况下浏览。
实际上,我以为我几乎不会打断人们的印象,以为大多数机器人都会模拟鼠标运动,而不是我会把它们降得那么低。
有人有什么想法吗?
用JS代码段编辑
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;
}
}发布于 2017-06-07 10:37:51
正如您对这个答案的注释(正如我所预期的),您将JS片段放在打开的body-tag之后,在实际的-tag元素之前也是如此(如果您将这个片段放置在页面的head部分中,也会发生同样的情况)。很可能有人在加载页面时移动鼠标,所以在HTML元素出现之前可能会执行mousemove事件,因此广告空间永远不会被实际加载。
您可以通过将代码片段放置在</body>结束标记之前,或者将代码包装在onDomReady或onLoad事件中,从而很容易地解决这个问题。最后两个将使代码分别在加载所有DOM之后执行,甚至在所有资产(图像等)之后执行。都装好了。在您的例子中,onDomReady就足够了。
如下所示:
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;
}
}
}https://stackoverflow.com/questions/44392480
复制相似问题