廣告科技 - Ad Blocker

很多人都有裝Ad Blocker,但你可能會好奇到底Ad Blocker的原理是什麼。

Ad Blocker 最簡單的實作方式有兩種,一種是阻擋Ad Request,另一種是從頁面上移除廣告框。兩種都屬於pattern matching。

Blacklist

Ad Blocker Plus為例,裡面的blacklist用是easylist,一個開源的廣告黑名單。長的是下面這樣子。

&ad_channel=
&ad_classid=
&ad_code=
&ad_height=
&ad_ids=
&ad_keyword=
...

凡是match到這個lsit裡面的request都會被擋掉,實際擋的方式應該是直接用chrome extension API。

移除頁面廣告

基本上原理與blcklist一樣,不過他match的是webpage elements。比如說

 <ad><iframe/></ad>

這會移除掉所有在 <ad> tag裡的iframe。

結論

說起來簡單,但做起來卻是困難的,最主要的困難點便是效能,頁面上有數百數千的element,每一個網站的request同樣至少數十數百,你要最match blacklist的話最簡單的方法是O(n^2),但這很明顯的不夠快,有興趣的話可以看看這篇文章,Adblock Plus and (a little) more, Investigating filter matching algorithms

Subscribe to Waiting Story

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe