1

这个想法的动机是浏览器的广告请求通常非常缓慢并且会阻塞页面渲染,更不用说消耗浏览器的 javascript 线程了。如果一个页面加载了多个广告,那就是很多不可靠的,会阻止第三方调用。通过使用事件驱动的无头服务器端浏览器,是否可以发出这些请求并将广告资源一次全部传递给浏览器?特别是,这是否适用于 doubleclick,其广告网络经常发出一系列请求,即 document.write 脚本标记,然后获取更多脚本,可能会加载一个 flash swf,然后请求一些额外的 gif?听起来有点多,但广告是魔鬼,如果可以从客户端卸载,它将极大地提高站点速度,因为服务器解决方案可以发出广告请求并并行处理 javascript。

编辑:回复@dthorpe:

所有的好点要考虑。

至于广告服务延迟,服务器端解决方案应该有帮助,原因如下:

首先,可以并行发出多个广告请求。虽然有在浏览器中并行加载资源的方法,但我知道没有一个好的解决方案是完全非阻塞的(即在页面渲染和 onload 事件方面),除非你延迟加载所有广告。我正在寻找一种在页面其余部分加载时以非阻塞方式并行加载广告的方法。

其次,也许更重要的是,加载双击广告通常涉及加载多个中间脚本。浏览器中的 Javascript 是单线程的。这直接意味着我的页面的 javascript 会阻止广告 javascript,从而减慢广告的展示速度。广告的 javascript 反过来会阻止我页面的 javascript,从而减慢我的页面速度。我可能会接到其他第三方电话,用于跟踪或其他目的。我在页面上还有多个广告,所有这些都有助于减慢页面渲染和 javascript 执行速度。通过将广告加载卸载到服务器,我页面的 javascript 将不会与广告竞争。广告造成的延迟将是一个广告(最长的一个)的函数,但一个广告的加载行为不会受到其他广告或我的页面的影响,

目标是将广告与基本页面分离,以使广告不会阻止页面呈现、页面加载事件或减慢页面或彼此速度。只要浏览器中的javascript是单线程的,我不知道任何可以实现完美解除关联的客户端解决方案。虽然通过 javascript 实现了长时间加载的广告,但页面的其余部分必须等待。

我知道各种延迟加载机制,有些涉及 iframe,有些覆盖 document.write 以适应延迟加载,但这些都没有令人满意的结果,纯粹是由于干扰 javascript 执行的串行行为。

我想知道我是否可以在浏览器中使用 java 小程序获得服务器端广告加载的好处并避免您提到的 cookie/预加载情况?由于我们在双击广告中看到的严重退化,我实际上正在考虑这些不合格的方法。那些广告扼杀页面加载速度的方式是真正可憎的:)

4

2 回答 2

3

为了准确地完全代表客户端机器,您的无头服务器浏览器需要能够呈现驻留在客户端上的广告网络域的浏览器 cookie。这会很困难,因为您的服务器域名不在广告网络域中,因此客户端浏览器不会为您提供广告网络 cookie。

您可能可以在服务器浏览器中捕获广告以代表客户端“预加载”它们,但如果没有客户端的浏览器 cookie,您将缺乏广告网络严重依赖的连续性和跟踪。广告网络选择显示的广告将基于您的服务器浏览器代表客户查看的页面,而不是客户查看的页面。

另外:如果加载广告内容是阻止客户端浏览器中页面呈现的原因,那么如何在您的服务器上呈现相同的页面来加快速度?您的服务器浏览器将遭受与客户端浏览器相同的网络和脚本延迟,并且客户端仍将坐在那里等待“某事”,但在页面完全加载并已在服务器浏览器中处理之前不会显示任何内容,并且转发到客户端浏览器?将问题“上游”并不能解决任何问题。

最后:即使您的意图可能是光荣的(改善客户端浏览体验),广告网络很可能会认为您的服务器浏览器广告“预加载器”是可憎的,并且违反了他们的广告网络服务条款,正是因为它干扰了他们的能力跟踪实际客户端的浏览活动。

于 2011-03-19T06:06:15.870 回答
0

在客户端使用 java 插件可能会更加浪费客户端机器的资源,因为 Java 插件必须加载到浏览器中,这通常需要几秒钟的时间。

请记住,随着 Java 0-day 漏洞利用的规律性在野外 ( http://java-0day.com/ )。建议在所有 Web 浏览器中禁用 Java 插件。Mac 现在默认禁用 Java 插件。此外,智能手机和平板电脑等移动设备上不存在 Java 插件。因此,您将无法向桌面浏览器以外的任何地方投放广告,并且可能只能在公司环境之外使用的桌面浏览器投放广告。

如果延迟加载广告不可接受,您可能不得不接受 DoubleClick 的加载时间。从合同的角度来看,广告网络不会容忍这种干扰,如果您打算直接出售您的广告库存,您将在广告商试图投放流行的富媒体广告时遇到他们自己的阻力。(视频、展开式广告、插页式广告等)

您最终将花费更多的时间来尝试使您的广告仿真层完美适应出现的每种新广告类型,而不是您从展示广告的每千费率成本中获得的金额。

也许您应该重新考虑广告是否有意义,或者您的网站货币化业务模式是否需要调整。展示广告已经成为一个商品市场,在你的时间里建立这个仿真层的成本似乎高于提高页面速度的好处,以及页面速度可能带来的略高的印象。

不过,感谢您关心您的最终用户,DoubleClick 广告请求可能会真正拖累页面加载时间。我希望有人能提供一种以稳健可靠的方式延迟广告加载的方法。

于 2013-03-26T14:02:13.223 回答