2016-05-01 57 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可能會決定屏蔽您的網址。