既然優酷、愛奇藝都能識別出瀏覽器使用了 AdBlock 一類的軟體,並給出提示,為什麼不能把提示替換為本該出現的廣告呢?
它們並不能「識別出 adblock」。
我做過一個測試[1],優酷播放器做的,只是判斷一下廣告文件是否被正常載入,如果沒有正常載入,就顯示黑屏。但是,優酷無法通過替換的方法載入廣告。這是 adblock 原理決定的。
adblock 的阻斷方式,是判斷瀏覽器試圖下載的文件地址是否與某一個字元串模式匹配,如果匹配,則阻斷下載。那麼播放器判斷出下載失敗之後,應該怎麼做?如果換一個地址重新下載,那麼這個新地址是否匹配 adblock 預設的模式?如果不匹配就可以下載。但是如果或不匹配,adblock 的模式庫維護者,就會在模式庫里添加一個新的規則,使得新地址匹配。這是一個死結——你的廣告地址不可能毫無規律吧?就算毫無規律,對方還可以使用窮舉法。
另外,分享一個暫時可行的徹底欺騙播放器的方法。既然下載失敗就會黑屏,那麼我們就讓他下載「成功」,只不過我們在底層把廣告地址替換掉,換成我們自己提供的地址,在這個地址下我們放一個時長1秒鐘的假廣告文件。這樣播放器一秒鐘之後就會老老實實的播視頻了。
相關效果如下(右上角的廣告剩餘xx秒實測是沒用的,一秒鐘假廣告播完了就結束):[1] http://www.cppblog.com/legendlee/archive/2011/09/28/157040.html
目前優酷的anti-adblock的方式是通過播放器(一個編譯好的flash程序)檢測自身是否播放過廣告,如果沒有,則顯示黑屏。
而Adblock plus說到底是一個依賴瀏覽器底層的javascript程序(以瀏覽器擴展的形式),在Firefox中它的backend是gecko的Content Policy,在chrome中則主要是Extension.Webrequest API。
這兩種方法都不能對flash,或是flash player本身進行操作,它們只能決定瀏覽器是否能訪問某些(按照域名規則)對象。在firefox中,對象的類型是可以比chrome有更細的分類,不過這是細枝末節的事情,具體可以到http://adblockplus.org查看。
總之,adblock plus只是一個按照網址內容、對象類型進行比對,以告訴瀏覽器哪些內容(不)可以訪問的審查工具,它既不能阻止flash播放器內部的「不播放廣告就黑屏」的邏輯,也不能偽造一個「廣告」送給播放器。
通常見到的廣告過濾方法和adblock plus一樣,都是「URL匹配---阻止訪問」的
於是youku的黑屏會出現,同時廣告本身依然被屏蔽。
此外,伺服器端探測出瀏覽器安裝了哪些擴展可能是可行的
http://koto.github.com/blog-kotowicz-net-examples/chrome-addons/enumerate.html
------------------------
目前位置能有效解除youku廣告的手段可能僅有魯小夫的OpenGG Clean Player
http://opengg.me/
這個項目開源於
https://github.com/OpenGG/OpenGG.Clean.Player-client
原理是反編譯youku的播放器swf程序,讓相關播放廣告,顯示黑屏,收集用戶信息的邏輯失效。
針對OpenGG Clean Player,youku想過很多辦法來反制:
1,封鎖OpenGG的伺服器IP,魯小夫的應對是換伺服器
2,在manifest文件中指定crossdomain.xml,讓flash play只能運行來源於youku自己域名的swf程序,魯小夫則以建立反向代理"來繞過Flash 的跨域限制","用MongoDB 實現優酷API 緩存"以提高並發性能。----這麼一來,優酷封ip可能也變成了偽命題。
3,youku在不停地更新播放器的代碼。
到目前為止,這個工程需要一個在線的服務端支持,以存放修改過的播放器,並承擔反向代理職能
這裡有一個利用了OpenGG Clean Player代碼,將服務端遷移到本地(就是說在本地127.0.0.1運行一個反向代理)的實現
https://code.google.com/p/haoutil/
OpenGG項目的優勢:
1,swf可以反編譯,而youku攻城師看樣子不會比魯小夫厲害很多,或者,優酷無法承擔更嚴格anti-adblock的成本。所以癱瘓黑屏邏輯只是(充分短的)時間問題
2,魯小夫自己的伺服器和代碼不受youku控制
3,項目已經開源,方法和代碼都已經傳播開,且服務端可在本地建立,就像windows/office的KMS(盜版)激活那樣。主席說的」星星之火可以燎原「大概就是這種情況
4,我國沒有DMCA
隱患:
大部分的流量畢竟是要經過魯小夫自己的伺服器,而流量是有限的,魯小夫聲稱每月有大約2TB;一個播放器大概有150~300k,因為瀏覽器緩存的關係可以有限多次使用。如果這個伺服器被掐掉(這麼做至少比某些有DMCA的地方更困難),就需要第二個魯小夫扛上。
它修改了youku的私有代碼(僅僅這麼做是受到法律保護的,法律中有為了教學科研目的豁免條款)並予以發布(在我國,和教學傳播相關的某些使用,傳播也受到豁免),這是一個灰色地帶。
按照現在的狀況,youku需要一些新的手段才能有效抑制OpenGG項目對其廣告收益帶來的負面影響。
--------------------------------------------------------------
一個月2TB級別的流量,意味著每個月有百萬數量級次的播放器下載量,加上可重複利用的緩存
而youku廣告的CPM報價可能是這樣的
http://wenku.baidu.com/view/7f18d2d3b9f3f90f76c61b1b.html
另一個信息,優酷提供一個每月10元以去除視頻中廣告的付費選項
這些信息可用於不可靠地估計優酷少收了多少廣告費
--------------------------------------------------------------
再展開一些
OpenGG項目之所以能變成現實的原因:
說到底,」在線「廣告這個東西畢竟是由客戶端下載到本地後才被展示的。
最不濟優酷只能做到拒絕為使用者提供服務;對應的,它同樣做不到無條件強迫使用者下載廣告。
而個人電腦的操作系統,現代瀏覽器都提供了充分的Debug,審查用介面。
因此,使用者總是能更優先的控制自己的設備/瀏覽器。
這就使得廣告的屏蔽與反屏蔽的博弈中,使用者總是有更多的優勢。
項目把理論上的優勢變成現實,這樣,在考慮優酷給出的offer以前,有一個可行的備用方案,可以掂量掂量哪個更好。
單方面屏蔽廣告是可行且正當的,但不一定是最好的,何況沒有廣告的社會本身就是偽命題;它更為重要的職能是成為使用者手中的大棒。
使用者手裡還有兩個(目前而言相對不那麼重要的)大棒:內容提供商互相競爭;內容提供商需要用戶上傳UGC(用戶創造的內容)
內容是供應商的大棒:內容是提供商提供的,它可以拒絕服務,可以審查用戶(如niconico僅對付費用戶提供高清視頻播放/上傳服務);提供商在各種方面更團結,有更多資源。
現在雙方都有了大棒,就可以坐下來好好談,西部片里你死我活的對槍場景不會出現。
如果不是這樣的話,使用者見到黑屏的時候,可能會感到焦慮,會更容易接受youku單方面提出的條款而使得利益受到損害;youku通過當面宣稱「我知道你在幹什麼」從效果上類似於那些意在消除(淘寶)差評的騷擾電話,我認為這是一種FUD。
目前最常見的FUD:微軟想盡一切辦法宣傳「使用盜版windows = 中病毒,微軟則是唯一的救世主」
FUD(Fear Uncertanty Doubt)的釋義:http://baike.baidu.com/view/815678.htm
優酷,土豆這些視頻網站一開始有廣告的時候,宣稱的是,緩存過程中反正也沒事幹,不如看看廣告.然而事實上這些視頻網站並沒有在播放廣告的同時緩存視頻,反而在後台通過cookies收集用戶的上網習慣,甚至通過廣告誘騙用戶下載一些亂七八糟的東西.同事有個非常壞的體驗---我看個1分鐘的視頻前,先看個90秒的廣告,基於以上幾點,我覺得攔截廣告這種東西,也就是你不仁我不義而已
我也想過這個問題。
其實很簡單,因為它放不出來。要放廣告的話就需要從廣告伺服器下載廣告,但這些廣告url(或者說通訊)已經被屏蔽了。
換伺服器-&>AdBlock規則更新-&>換伺服器-&>……
誰能告訴我怎麼屏蔽愛奇藝的片頭廣告?adb好像屏蔽不了啊
當然你還可以用替換播放器的方式來去除廣告。例如firefox,chrome都可以安裝些擴展插件,替換這些視頻網站的播放器
我也能識別出央行使用印鈔機導致我財產縮水並寫下來,為什麼我不能把寫下來的字換成錢呢?
本質是因為發現和解決是兩個難度級別的任務。
假如鏢行發現了運鏢路上有人劫鏢,他怎麼做?
1.換路繞遠(重新假設一台廣告伺服器),然而被這群劫匪發現,又會賭掉這條路。
2.增加鏢師,守住宣傳單(廣告加密),然而強龍不壓地頭蛇,進了別人的地盤(瀏覽器),再多防禦也是時間問題。
3.報告官府,要求抓捕劫匪(法律手段),有效但是官府不一定會立刻處理。
推薦閱讀:
※健身的傳單越來越常見,這意味著什麼?
※如何看待海底撈很少打廣告?
※為什麼奧利奧為了討好一個老女人把餅乾變薄?
※有哪些第一眼看到就被噁心到的海報?
※「Life is short. Play more.」可否翻譯為「生命是短暫的,多做一點」?