2016-05-01 55 views
3

我们使用外部服务(Monetate)为我们的站点提供JS服务,这样我们就可以执行adhoc表示层站点更新而无需通过站点重新部署 - 在我们的情况下,这是一个耗时,单一的过程,我们每个月只能负担一次。如何执行用户的adblockers阻止的外部JS文件

但是,在浏览器中使用adblockers的用户看不到其中一些表示层更新。这可能会对他们的网站体验产生负面影响,因为我们有时会包含这些用户可能不知道的时间敏感促销。

要解决此问题,我正在考虑复制Monetate提供的JavaScript文件,并将其托管在与站点分开的基础架构上。这样,我们需要对其进行更新,我们可以根据需要进行更新,而无需进行完整的网站重新部署。

但是,我想知道是否有一些方法来解决Monetate JS文件的阻塞,并以某种方式从我们自己的JS代码执行远程Monetate JS文件,这样adblockers将无法阻止它?这避免了需要复制文件。

回答

0

Monetate如果可能在Adblock中列入黑名单,那么您无法做任何事情。

我认为自承载Monetate脚本将需要不时检查新版本(保持它可能成为屁股疼痛)来更新它。

我认为一个好的解决方案是通过一条明确的信息通知用户有关限制。

或者,您可以联系Monetate并寻求解决方案。

1

如果该文件被广告拦截器阻止,则可能是它用于投放广告。实际上,您对时间敏感促销的描述听起来非常像广告,只是不适用于外部提供商,,但适用于您自己的网站

由于adblockers通常与URL匹配,所以最简单的解决方案实际上是重新托管此文件,如果可能的话使用不同的名称。您可以使用<?php readfile('http://monetdate.com/file.js');或apache的mod_rewrite等效的简单代理来代替托管静态副本。虽然这会增加加载时间,并且如果远程主机发生故障,可能会失败,这意味着客户端将始终获取最新版本的文件。

除了使用不同的URL之外,没有客户端解决方案 - 浏览器(或其扩展)中包含adblockers,并且出于正当理由,您无法修改该代码。

请注意,如果脚本确实用于投放广告,adblockers可能会决定屏蔽您的网址。