Tal*_*Tal 19 javascript iframe ads frame web
我有一个大型网站,使用两个大型在线广告"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节点的信息?我认为这是有可能的,但我目前看不到明确的道路.
谢谢!
Tal*_*Tal 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(),
});
}
Run Code Online (Sandbox Code Playgroud)
这个JavaScript使用JQuery(我们的CMS提供商无论如何都包含在每个页面中).它会检查错误页面是否存在于iframe(top!= self)中,然后它会抓取应包含广告的父页面上每个html元素的原始html.
该数据被包装到一个对象中,并发布到一个简单的PHP脚本,该脚本会将发布到其中的每个值的日志写入文件.
最后,我收到了一个日志文件,其中违规广告代码很可能在其中.我能够对该文件进行快速grep并发现广告的iframe指向"/eyeblaster/addineyev2.html"
我希望这有助于其他人!
Mig*_*uel 10
为避免不必要的跟踪,您应该放置一个虚拟空文件/eyeblaster/addineyev2.html,或者,如果您使用nginx类似的操作
server {
...
location = /eyeblaster/addineyeV2.html { echo ""; }
}
Run Code Online (Sandbox Code Playgroud)
或更好
server {
...
location = /eyeblaster/addineyeV2.html { return 404 "404 - page not found";}
}
Run Code Online (Sandbox Code Playgroud)
如果您没有静态托管并且无法配置代理服务器,则可以通过javascript在404页面跟踪中添加条件
if (document.URL.indexOf('/eyeblaster/addineyeV2.html') == -1) {
doAnalyticsTracking();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26629 次 |
| 最近记录: |