19

我有一个使用两个大型在线广告“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 或类似的开发人员工具直接向该 URL 发出请求。然而,这个不存在的页面的流量是巨大的,所以违规广告肯定仍在混合中。问题是我无法确定哪个广告被破坏了,所以我无法告诉我们的剩余供应商将其删除。两家供应商都假装不知道这个问题。

我无法删除 404 错误页面上的 Google 跟踪代码,但我可以向页面添加额外的 JavaScript。

有什么方法可以通过在尝试在 iframe 中请求该页面时导致的 404 错误中添加一些 javascript 来识别导致请求“/eyeblaster/addineyev2.html”的广告?

本质上几乎是一个“框架破坏者”脚本,它不是破坏框架,而是提供有关 iframe 元素附近的 HTML 节点的信息?我认为这是有可能的,但目前我还没有看到一条明确的道路。

谢谢!

4

4 回答 4

10

我找到了我自己的答案,我将在这里分享它,因为另一个 Web 开发人员正在徒劳地试图确定一个广告对他们做同样的事情。

有问题的数字广告带有指向“/eyeblaster/addineyev2.html”的 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(顶部!= self)中,然后它为父页面上应包含广告的每个 html 元素获取原始 html。

该数据被包装到一个对象中,并发布到一个简单的 php 脚本,该脚本会将发布到它的每个值的日志写入一个文件。

最后,我收到了一个日志文件,很可能有违规广告代码在其中。我能够对文件进行快速 grep,并发现了带有指向“/eyeblaster/addineyev2.html”的 iframe 的广告

我希望这对其他人有帮助!

于 2012-11-20T14:42:36.543 回答
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();
}
于 2013-03-21T18:55:28.517 回答
2

似乎有更多的出版商遇到了这个问题。我也做。按照 Tals 的说明,当我故意将 iframe 指向 404 页面时,我能够记录信息,但由于它随机出现而无法捕捉到这个问题,而且我无法检查脚本为什么没有捕捉到它。

如何添加 /eyeblaster/addineyev2.html 并从此文件中记录?

通过简单的网络搜索,我能够确定脚本的所有者。它来自http://www.mediamind.com/ 但在 Google AdSense 中禁用“mediamind”并不能解决问题,所以我请求他们的支持将文件发送给我。

我将测试脚本,如果 404 调用越来越低。也许我还会使用脚本来检查正在加载的内容并确定将其关闭的 exect 广告 url。

于 2012-12-04T18:28:56.487 回答
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 解决它,但我不确定。

无论如何只是想分享我的经验,这个问题似乎正在影响许多网站。

于 2012-12-14T01:02:07.473 回答