【问题标题】:Determine which advertisement made a request to /eyeblaster/addineyev2.html确定哪个广告向 /eyeblaster/addineyev2.html 发出了请求
【发布时间】:2012-11-07 21:44:22
【问题描述】:

我有一个使用两个大型在线广告“剩余”提供商的大型网站。这些提供商会定期启动和停止在我们网站上投放的广告活动。

来自其中一个提供商的广告错误地请求:

/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 节点的信息?我认为这是有可能的,但目前我还没有看到明确的路径。

谢谢!

【问题讨论】:

  • 您应该联系提供商并要求他们修复他们的广告素材,而不是构建解决方法。

标签: javascript iframe web frame ads


【解决方案1】:

为避免不必要的跟踪,您应该在 /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();
}

【讨论】:

  • 这对防止违规广告进入您的网站几乎没有帮助。它也无助于您将广告报告给运行代码的广告网络。它只会把问题扫到地毯下。在我们的例子中,修改网络服务器以抛出 404 或放置一个虚拟文件是不可能的。第三方供应商控制着服务器基础设施,并阻止静态 html 托管。
  • 当然,最好能一直追踪到源头并阻止它发生,但我只需要一个不依赖第三方的防御阵地。这就是-技术-解决方案。
  • @Miguel,请重新阅读您的帖子。您是对的,javascript 跟踪代码本身的条件可以防止捕获该页面的任何分析信息。它将永久解决该问题,而没有任何返回的机会。虽然我很高兴找到负责任的广告,但最好把时间花在其他地方。 +1 以获得更快更好的解决方案!
【解决方案2】:

我找到了自己的答案,我将在此分享它,以应对另一位 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 提供商在每个页面上都包含 JQuery)。它会检查错误页面是否存在于 iframe(顶部!= self)中,然后为父页面上应包含广告的每个 html 元素获取原始 html。

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

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

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

【讨论】:

  • 您找到了广告,但这如何解决问题?你以后不会一遍又一遍地遇到问题吗?每当出现问题时写入所有这些数据而不是只为它返回 404 不是更有害吗?
  • @Julian,代码不会在我们的实时网站上持续运行。一旦违规广告从轮播中移除,就不再需要或希望收集数据。您是从开发人员完全控制正在运行的 Web 应用程序的角度来看的。就我而言,我不能“只为它返回 404”,因为运行该网站的专有 Web 应用程序是闭源的,并且在供应商提供的设施中“在云中”。返回 404 的唯一方法是返回格式正确的 404 错误页面,其中包含我们的跟踪代码。
  • 有道理。我的问题是没有办法确保我得到与其他人相同的坏广告——在我的测试环境中,我得到一组完全不同的广告。其他人可能会收到我永远不会看到的关于他们浏览行为的广告。无论如何,我认为这两种解决方案都有优点,视情况而定。
  • 同意。两种解决方案都有优点。如果我可以发送一个普通的 404 页面,或者什么都不发送,我会选择那个解决方案。
【解决方案3】:

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

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

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

我要测试脚本,看看 404 调用是否越来越少。也许我还会使用脚本来检查正在加载的内容并确定将其关闭的预期广告网址。

【讨论】:

  • 你是对的,MindMind 是有问题的脚本背后的公司。在我们的案例中,该广告是针对宜家的 Sieze The Days 广告活动。 AdSense 也会收到这些类型的补余广告,这并不让我感到惊讶。将“/eyeblaster/addineyev2.html”添加到您的网站也可以解决问题。就我而言,我的雇主拥有大型专有 CMS,这是不可能的。在确定是 Sieze The Days 广告后,我让我们的剩余供应商(Centro/BrandExchange)阻止了宜家网站上的广告。
【解决方案4】:

只是想我会在我们的 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 解决它,但我不确定。

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

【讨论】:

  • 当然。该软件似乎也存在多个问题。在我们的例子中,软件并没有重定向用户——只是在我们端造成了很多错误。如果我们的用户实际上被重定向到其他地方,我会更加沮丧。在我们的例子中,用户没有意识到。
  • 我从 bs.serving-sys.com 看到它(爆管)。一定要喜欢那些广告公司的名字。我的眼睛被爆裂的管道炸毁了!哎呀..
猜你喜欢
  • 2013-04-04
  • 2014-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多