外部記録装置的ブログ
Adblockのフィルタを自分なりにカスタマイズする際の「やってはいけない」例を備忘録代わりにいくつか紹介しておこう。
1.http://ad
, ##div[id^="ad"]
, ##div[id*="ad"]
Mozzilaのアドオンページid="addons"
で死亡。
2.##div[class$="ad"]
, ##div[class*="ad"]
誰もが通る道? class="head"
で容易に誤爆死。
3.##div[class$="ads"]
, ##div[class*="ads"]
Appleのダウンロードページでclass="downloads"
が使われているため爆死。
4.##div[id^="ad_"]
, ##div[id*="ad_"]
CNETとZDNETのdivで何故かid="ad_elu_hori"
なる謎のIDが使われているため爆死。
5.ad.
ad.jpというドメインが存在するため死亡。
6..ad
www.adobe.comで死亡。
7.adv
adviceやadventureなども引っ掛かるため、使うなら非表示要素フィルタのidやclassでのみ使用すること。*/adv/*とかもアドベンチャーゲームを表す略記ADVで誤爆しやすい。
8.traking
日本郵便の郵便追跡サービス(http://tracking.post~)で爆死。
9.http://ecx.images-amazon.com/images/
アマゾンのアフィリエイト画像をブロックしたと思ったら、Amazonでの商品画像も一部消えてて爆死。一部の画像しか消えないので誤爆したことに気付き難い。http://images-jp.amazon.com/images/
についても同上。
10.ホワイトリスト
フィルタ複雑化と重量化の元。絶対使うなとは言わないが、別に使わなくても誤爆のないフィルタは書ける。「zshare等のAdblock対策スクリプト」対策? んなもんほっとけ。ユーザがAdblockでWeb広告を拒否する権利がある代わり、プロバイダはWeb広告を拒否するユーザにコンテンツを見させない権利がある。
あとは言わずもがなだから数には入れてないけど、複雑な正規表現もよくない。Schuzak's Universal Filterなんかは悪い書き方の代表例。誰かが見ても何をブロックしているのかサッパリ解らない。製作者本人すら読めなくなることもしばしば。そうなると、メンテやカスタマイズ、アドバイスを誰もやらなくなってしまう。せめて、コメントで凡例を記しておくべき。
以上、フィルタリスト作りの参考になれば幸いです。
[おまけ]
1.mixiの広告をブロックしようと、"http://img.ads.mixi.jp/"、"http://n3.ads.mixi.jp/"をフィルタに書き加える
2.共通要素の"ads.mixi.jp"(もしくは"||ads.mixi.jp")でフィルタを置き換える
3."http://ads."をフィルタに加える
4."http://ads."があるなら"ads.mixi.jp"要らないんじゃね? と思ってフィルタを消す
5.あれー、mixiの広告ブロックできてないじゃん
6.以下(1)に戻ってループ
よくある話です(^^)