这个想法的动机是浏览器广告请求通常非常缓慢并且可以阻止页面呈现,更不用说使用浏览器javascript线程了。如果一个页面加载了几个广告,那就是很多不可靠的,阻止第三方通话。通过使用事件驱动的无头服务器端浏览器,是否可以一次性发出这些请求并将广告资产传递给浏览器?特别是,这可以使用doubleclick,其广告网络经常发出一系列请求,document.write脚本标记,然后获取更多的脚本,可能会加载一个闪存swf,然后请求一些额外的GIF?听起来有点多,但广告是恶魔,如果可以从客户端卸载,它会极大地改善sitespeed,因为服务器解决方案可以同时发出广告请求和处理javascript。
编辑:回复@dthorpe:
所有要考虑的好点。
对于广告投放延迟,服务器端解决方案应该有所帮助,原因如下:
首先,可以并行进行多个广告请求。虽然有一些在浏览器中并行加载资源的方法,但我知道没有好的解决方案是完全无阻塞的(即在页面渲染和onload事件方面),除非你懒得加载所有你的广告。我正在寻找一种在页面的其余部分加载时以并行方式加载广告的方式。
其次,也许更重要的是,加载双击广告通常涉及加载多个中间脚本。浏览器中的Javascript是单线程的。这直接意味着我的网页的javascript会阻止ad-javascript,从而减慢广告展示次数。广告的javascript反过来会阻止我的网页的javascript,从而减慢我的网页速度。我可能有其他第三方电话,用于跟踪或其他目的。我在页面上也有多个广告,所有这些都有助于减慢页面呈现和javascript执行速度。通过将广告加载卸载到服务器,我的网页的javascript将无法与广告竞争。广告带来的延迟将是一个广告(最长广告)的函数,但一个广告的加载行为不会受到其他广告或我的网页的影响,因此理论上应该更快。
目标是取消广告与基页的关联,使广告不会阻止页面呈现,页面加载事件或减慢页面或彼此的速度。只要浏览器中的javascript是单线程的,我不知道任何可以实现完美解除关联的客户端解决方案。虽然通过javascript实现了长时间加载广告,但页面的其余部分必须等待。
我知道各种延迟加载机制,一些涉及iframe,一些覆盖document.write以适应延迟加载,但是这些都没有令人满意的结果,纯粹是由于干扰javascript执行的串行行为。
我想知道我是否可以在浏览器中使用java applet获得服务器端广告加载的好处,并避免你提到的cookie /预加载情况?我实际上正在考虑这些不符合要求的方法,因为我们在双击广告中看到了严重的退化。这些广告杀死网页加载速度的方式是真正令人厌恶的:)
答案 0 :(得分:3)
为了准确地完全代表客户端计算机,您的无头服务器浏览器需要能够呈现驻留在客户端上的广告网络域的浏览器cookie。这很困难,因为您的服务器的域名不在广告网络域中,因此客户端浏览器不会为您提供广告网络Cookie。
您可以捕获服务器浏览器中的广告,代表客户端“预加载”它们,但如果没有客户端的浏览器Cookie,您将缺乏广告网络严重依赖的连续性和跟踪。选择由广告网络显示的广告将基于您的服务器浏览器代表客户端查看的页面,而不是客户端查看过的内容。
另外:如果加载广告内容是阻止在客户端浏览器中呈现页面的内容,那么如何在服务器上呈现相同的页面以加快速度?您的服务器浏览器将遭受与客户端浏览器相同的网络和脚本滞后,并且客户端仍将坐在那里等待“某事”,但在页面已完全加载并且已在服务器浏览器中处理之前将不会显示任何内容转发到客户端浏览器?将问题“上游”移动并没有解决任何问题。
最后:即使您的意图可能是光荣的(以改善客户浏览体验),广告网络也很可能会认为您的服务器浏览器广告“预加载器”是令人厌恶的,并且违反了他们的广告网络服务条款,因为它会干扰能够跟踪实际客户的浏览活动。
答案 1 :(得分:0)
在客户端使用java插件可能会更浪费客户端计算机的资源,因为Java插件必须加载到浏览器中,这通常需要几秒钟。
请记住,野外(http://java-0day.com/)的Java 0天攻击的规律性。建议在所有Web浏览器中禁用Java插件。 Mac现在默认禁用Java插件。此外,智能手机和平板电脑等移动设备上不存在Java插件。因此,您无法向桌面浏览器旁边的任何内容投放广告,也可能只在公司环境之外使用桌面浏览器。
如果不接受延迟加载广告,您可能需要接受DoubleClick的加载时间。从合同角度来看,广告网络不会受到干扰,如果您计划直接销售广告资源,那么当广告客户尝试投放时尚的富媒体广告时,您会遇到阻力。 (视频,可展开广告,插页式广告等)
您最终会花费更多时间来尝试让广告模拟图层适用于每种新广告类型,而不是您从展示广告的每千次费用中获得的金额。
也许您应该重新考虑广告是否有意义,或者您的网站货币化的商业模式是否需要调整。展示广告已经成为商品市场,在您的时间内构建此仿真层的成本似乎高于页面速度提升的好处,以及页面速度可能带来的略高的展示次数。
尽管如此,DoubleClick广告请求可能会严重影响页面加载时间。我希望有人能够以强大可靠的方式推迟广告加载。