我有一个大型网站,正在使用两个大型在线广告“Remnant”提供商。这些提供商可以定期启动和停止在我们网站上投放的广告系列。
来自其中一家提供商的广告之一错误地向以下网址发出请求:
/eyeblaster/addineyev2.html
我已确定,当网站上的广告通过iframe投放时,某些网站会使用所请求的文件。理论上,此文件会规避跨域限制,以便广告提供商可以使用iframe中的javascript调整iframe大小。
我通过绊倒这个支持文档确定了这个文件的使用:
http://support.google.com/dfp_premium/bin/answer.py?hl=en&answer=1085693
我的问题是我们的网站不使用iframe来投放广告,因此转到“/eyeblaster/addineyev2.html”URI的请求会导致404错误,而且不需要。由于错误来自供应商提供的大型CMS,因此错误会显示在我们的Google Analytics跟踪代码上。这会导致我们的明显网页浏览量膨胀。
综合浏览量通胀可能非常严重,因为404错误页面也包含广告。 404页面也可能会加载错误的广告,导致广告的递归循环加载完全相同的“/eyeblaster/addineyev2.html”404页面。
到目前为止,我无法通过Firebug或类似的开发人员工具见证广告直接请求此网址。然而,这个不存在的页面的流量是巨大的,因此违规广告肯定仍在混合中。问题是我无法弄清楚哪个广告被破坏了,所以我无法告诉我们的补余提供商将其删除。两家供应商都假装对这个问题一无所知。
我无法删除404错误页面上的Google跟踪代码,但我可以向该页面添加其他JavaScript。
我是否有任何方法可以通过向尝试在iframe中请求该网页时出现的404错误添加一些javascript来识别导致“/eyeblaster/addineyev2.html”请求的广告?
基本上几乎是一个“帧破坏者”脚本,而不是破坏框架,提供iframe元素附近的HTML节点的信息?我认为这是有可能的,但我目前看不到明确的道路。
谢谢!
答案 0 :(得分:10)
我已经找到了自己的答案,我将在这里分享一个罕见的事件,另一个Web开发人员试图找到一个广告,同时向他们做同样的事情。
违规的数字广告带有一个指向“/eyeblaster/addineyev2.html”的iframe,我使用了这些知识,编码了以下javascript以收集有关包含iframe的页面的信息(即包含它上面的广告)。
if(top != self) {
$.post("/ad_diagnose/log.php", {
a: $('#ad-div-one', top.document).html(),
b: $('#ad-div-two', top.document).html(),
c: $('#ad-div-three', top.document).html(),
d: $('#ad-div-four', top.document).html(),
e: $('#ad-div-five', top.document).html(),
});
}
此JavaScript使用JQuery(无论如何我们的CMS提供商都包含在其中)。它会检查错误页面是否存在于iframe(top!= self)中,然后它会抓取应包含广告的父页面上每个html元素的原始html。
将数据包装到一个对象中,然后发布到一个简单的php脚本中,该脚本会将发布到其中的每个值的日志写入文件。
最后,我收到了一个日志文件,其中违规广告代码很可能在其中。我能够对文件进行快速grep并发现广告的iframe指向“/eyeblaster/addineyev2.html”
我希望这可以帮助其他人!
答案 1 :(得分:10)
为了避免不必要的跟踪,您应该在/eyeblaster/addineyev2.html
上放置一个虚拟空文件,或者,如果您使用nginx
执行类似
server {
...
location = /eyeblaster/addineyeV2.html { echo ""; }
}
或更好
server {
...
location = /eyeblaster/addineyeV2.html { return 404 "404 - page not found";}
}
如果您没有静态托管且无法配置代理服务器,则可以通过javascript在404页面跟踪中添加条件
if (document.URL.indexOf('/eyeblaster/addineyeV2.html') == -1) {
doAnalyticsTracking();
}
答案 2 :(得分:2)
看起来有更多发布商遇到此问题。我也做。按照Tals说明,我能够在故意将iframe指向404页面时记录信息,但是无法捕捉到这个问题,因为它随机出现,我无法检查脚本为什么没有捕获它。
如何添加/eyeblaster/addineyev2.html并从此文件中记录?
我能够确定脚本的所有者进行简单的网络搜索。它来自http://www.mediamind.com/ 但是,在Google AdSense中禁用“mediamind”并不能解决问题,因此我请求他们支持将文件发送给我。
我将测试脚本以及404调用是否越来越低。也许我还会使用该脚本来检查正在加载的内容,并确定exect ad url以将其关闭。
答案 3 :(得分:1)
我想我会在Ozzu网站上分享这种情况。当我们的一些成员抱怨时,我第一次意识到这个问题,但我看起来并不像我最初认为它是一个孤立的实例。
在过去的一个月里,我还注意到服务器上的错误日志文件高于正常情况,将/ usr分区推到其使用率的82%左右。直到今天我才把两个和两个放在一起,因为我最终开始查看错误,看来这不是一个带有这种引人注目的广告的孤立实例。有数千名用户访问我们的网站,然后因此而被重定向到我们网站上的404页面。以下是我们日志文件中的一个错误的示例,似乎有许多网络正在使用Media Mind的这款eyeblaster软件:
[Thu Dec 13 16:36:51 2012] [error] [client 123.123.123.123] File does not exist: /public_html/eyeblaster, referer: http://lax1.ib.adnxs.com/if?enc=AAAAAAAAAAAAAAAAAAAAAAAAAGC4Hvs_AAAAAAAAAAAAAAAAAAAAAMqchzp-qp9L_vlliXOoLV2gdMpQAAAAAEMUDABGAQAAQAEAAAIAAADXo0AA-FcCAAAAAQBVU0QAVVNEAKAAWAIAeAAAYk4AAgMCAQUAAIIA5BXJnQAAAAA.&cnd=%21QxtEWwidpzIQ18eCAhgAIPivCTAEOIDwBUABSMACUMOoMFgAYL4FaABwKngAgAH6AYgBAJABAZgBAaABAqgBALABALkBAAAAAAAAAADBAQAAAAAAAAAAyQEgEFk1j_LCP9kBAAAAAAAA8D_gAQA.&udj=uf%28%27a%27%2C+15986%2C+1355445408%29%3Buf%28%27c%27%2C+824221%2C+1355445408%29%3Buf%28%27r%27%2C+4236247%2C+1355445408%29%3B&ccd=%21mgWjMAidpzIQ18eCAhj4rwkgAQ..&vpid=18&referrer=http%3A%2F%2Fwww.ozzu.com%2F&dlo=1
[Thu Dec 13 16:36:56 2012] [error] [client 123.123.123.123] File does not exist: /public_html/eyeblaster
我刚刚联系了Media Mind公司,看看他们是否有任何进一步的意见。我们日志中的错误至少来自一些广告服务器,例如:
lax1.ib.adnxs.com
showads.pubmatic.com
ad.yieldmanager.com
因此,我的印象是众多媒体公司正在使用这款Eye Blaster软件。我更多地了解了Eye Blaster所做的事情,并且它是某种技术,可以同步页面上的众多广告,就像它们是一个大广告一样。例如,动画将在一个广告中开始,在另一个广告中结束。无论如何它必须受欢迎,因为许多广告公司似乎正在使用它,因此我可能不得不禁用很多广告商。
我认为解决问题的最佳方法是让Media Mind解决这个问题,但我不确定。
无论如何只是想分享我的经验,这个问题似乎影响了很多网站。