Theme by nostrich.

13th February 2012

Text

非ルートあどぶろっく的な。2

urlfilter.ini

Opera Mobile 8.7、9.5、10ではコンテンツブロックを設定することによって特定の画像を表示しないようにすることができる。

広告画像を表示しないことによって読み込みを軽くするのが目的だったが、苦労して作った割にはよほど広告が多くない限りはっきり分かるほどの効果はなかった。

だが偶然、このサイトがコンテンツブロックに引っかかり、記述の仕方によってはサイト、ページ単位で丸ごとブロックできることが分かった。

仕事で使うサイトにかなり有効で苦労は無駄ではなかった。

その後、JavaScriptの外部ファイルやその先から読み込まれる文字の広告もブロックできることも分かった。

これはサイトによっては予想以上の効果があり、ちょっと驚かされた。

アドエスでのブラウジングはほとんどOpera Mini 5.1 で行っており、Opera Mobileを使うことは少なくなったが、いまだにurlfilter.iniに広告を追加しているのはOperaで使っているからである。

FTTHなので速度的なメリットはないが、広告を消すと必要な情報を探しやすい。

この機能はOpera Mobile 9.7から使えなくなっていたが、Opera Mobile 10の正式版では使えるようになっている。

Operaに近い性能を持ち、Opera Mobile 9.51b2では記事全体が消えてしまうような記述もOpera Mobile 10では広告だけをブロックできる。

Opera 11でコンテンツブロックするとアドレスの後ろに文字列が追加されるようになった。

そのままでOpera Mobileでも使えるが、編集するときにアドレスが見づらくなるので自分で記入している。

Opera 11でzipのダウンロード時にOpera 11が落ちることがある。urlfilter.iniをいったん外すと直る。

原因は分からないが、urlfilterの記述に問題があるわけではないらしい。

Opera 11は自分の用途では他にも問題があるのでOpera 10.63に戻した。

Opera Mobile用広告ブロック Ver.2.4のダウンロードページ

2012/02/13バージョンアップ。Opera Mobile 10、Opera Mobile 9.51b2、Opera 10.63で確認。

広告ブロックを幾つか追加。

詐欺サイト(主に白ロム、ゲーム機)を幾つか追加。閉鎖は削除。

urlfilter.iniの使い方

指定されたフォルダに置いてブラウザを再起動する。

デフォルトでは下記のようになっている。

また、アドレス欄にopera:configと入力してPreference Editorに入り、Network→URL Filter Fileから任意の場所に指定することもできる。

Opera Mobile 9.51b2

\Application Data\Opera 9.5 Beta

Opera Mobile 10

\Program Files\Opera Mobile 10\profile

Opera 10.63 - Windows XP

C:\Documents and Settings\ユーザー名\Application Data\Opera\Opera

Opera 10.63 - Windows 7

C:\Users\ユーザー名\AppData\Roaming\Opera\Opera

Ver.2.2からurlfilter.iniをOpera、Opera Mobile 10、Opera Mobile 9.5、それぞれで使い分けできるようにした。

例えば、Adobe Flash Lite 3.1 Distributable Playerの記事で気が付いたのだが、Google Adsをブロックすると海外のFlashゲームサイトなど、Google Adsの広告を表示してからゲームを表示するようなサイトでゲームが表示できないことがある。

当サイトのurlfilter.iniをOpera Mobileでは使う場合はFlash自体がほとんど表示できないので問題ないが、Operaで使う時に困る場合はurlfilter.iniをエディタで開いて、

#—- OperaでFlashゲーム等ができない場合は頭に#を付ける —-!

http://pagead*.googlesyndication.com/*

#http://pagead*.googlesyndication.com/*

とURLの頭に#を付ける。これでその記述は無効となる。

当然だが、Flashが表示されるようになる代わりにGoogle Adsも表示されるようになる。

同様にOpera Mobile 9.5で使う場合は

#—- Opera Mobile 9.5で使う場合は頭に#を付ける —-!

の下に書かれている全てのURLの頭に#を付ける。

付けないと記事全てが消えてしまうサイトがある。

アドレスを追加する 

1、Operaでサイトを表示し、何もない場所で右クリック。

2、コンテンツのブロックを選択。

3、ブロックしたい画像をクリックするとアドレスが表示されるので、それをurlfilter.iniに記述。

Opera Mobileを再起動。

特徴のあるアドレスなら

http://img.ad*.*/*

のようにワイルドカードでまとめてしまうと、一つのアドレスで多くのサイトに対応できる。

なお、ブロックすることによってサイトのレンダリングが崩れ、見にくくなる場合もある。

例、痛いニュースのAmazon広告。 

また予想外に見れないサイトが出る場合もありうるので、その場合はアドレスを見直して調整する必要がある。

OperaとOpera Mobileのurlfilter.iniの書式は共通なのでOperaで作ったurlfilter.iniをOpera Mobileにコピーして使う、またその逆もできるがレンダリングが少々異なる。

そのため、コピーして使う場合でもある程度の修正が必要になる場合もある。

例えば、痛いニュースのAmazon広告をOperaでブロックしても問題ない。

応用

ソースを調べて直リンクのアドレスをurlfilter.iniに記述すると表示されなくなる。

・大きなタイトル画像や背景画像

・JavaScriptファイル

さらにサイト丸ごと、ページ丸ごとも可能。リンクを踏んでも移動しなくなる。

このサイトが表示できない 

このサイトを作ってブラウザで確認してみたところOpera 10、Opera Mobile 8.7、9.5で表示されなかった。

他のブラウザではすべて表示できるのにOpera系列だけが画像1枚すら表示できないのである。

悩みに悩んでようやく気が付いた。自分で作ったurlfilter.iniに書いてある

http://ad*.*

にこのサイトが丸ごと引っかかってることに。アドエスとアドセンスが似てることから偶然起きた問題だけど、5時間ぐらい悩んでた俺、バカすぎる(笑)。

アドレスのまとめすぎには要注意。

Opera 11ではコンテンツブロックされていることが表示されるようになったので分かりやすい。

しかし、htmlも全てブロックすることができるとは知らなかった。リンクを踏んでも移動すらしないというのは使い方によっては便利になる。

よく行くサイトで2つ並んでリンクがある。左側は全く必要が無い情報、右側は必要な情報が載っているのだが、間違って左側を押してしまうことがよくある。

文字全部がリンクになっているので必要な方のリンクよりも何倍も大きく目立つからである。

クリック→表示された内容を見て間違いに気が付く→戻る→正しい方をクリック

というのをしょっちゅうやっていたのだが、この機能を使って間違った方をクリックしても飛ばないようにし、さらに不必要な大きい画像も全部ブロックした。

効率よく作業できるようになった。

実際どの程度の効果があるのか計測してみた 

ページはYAHOO! JAPANのトップページ。

ブラウザはOpera Mobile 9.51b2を使用。

このように右上の広告画像が表示されなくなる。このページでブロックできるのはこの1枚だけである。

まずはOpera Mobile 10でBNR スピードテスト Flash版で回線速度を測ってみた。

新つなぎ放題(4X)で7回計測して最低は50kbps、最高は100Kbps、平均は82Kbpsであった。

2010年4月28日の10時から12時ごろに計測。

urlfilter無し

7回計測して平均30秒

urlfilter有り

7回計測して平均26秒

全てブラウザを再起動して計測。

キャッシュは全てメモリを使っているのでディスクキャッシュは0である。

こうして比較してみると画像1枚で意外と差がある。しかも実はurlfilter無しは9回計測している。

48秒と2分経っても読み込みが終わらないということがあって平均値が極端に悪くなりそうだったから除外したのだ。

最初は5回ずつのつもりだった。

広告画像は毎回変わり、大きさが異なるのも関係しているのかもしれない。

あまり効果を感じないのはOpera Mobile 9.51b2はテキストの表示が速く、画像の表示は後回しにされるため、このページで最も大きい広告画像は一番最後に読み込まれる。

記事が読めるまでの速さは一緒で広告を見ないから体感速度は同じなのである。

広告画像と見たい画像が多数混じっているようなサイトじゃないとあまり効果は感じられない。

ふと気が付いたのだが、このページはPCだと広告はFlashで、Flashが使えないブラウザだと画像で表示するようになってるんだな。

それから計測でよく使われるITmedia +D モバイルはOpera Mobile 9.51b2で表示できないようだ。

昔はできたのだが。

あまり見ないところだから問題ないけど、Opera Mobile 10では表示できるのでAcid3 testが76点なのが影響しているんだろうか。

ちなみにITmediaのトップは表示できる。

JavaScriptで呼び出しされる広告文字をブロックする

自分はアドエスを2台持っているわけだが、メインのアドエスだとITmedia +Dモバイルが表示されるようになった。

何が原因でやたら重かったり、表示できないのかと思いソースを眺めていたら、広告文字をランダムに読み込んでいると思われる記述を発見したのでurlfilter.iniに

http://*/adsv/*

と書いてみた。すると

このように派遣やリゾートホテルの広告が表示されなくなる。

広告は読み込むたびに内容が変わる。

このページでは最上段の広告と右側のオススメPC情報も表示されなくなる。

面倒なので今回は回線速度は計らない。自宅だから前回と同じような速度だろう。

新つなぎ放題(4X)で7回ずつ2010年5月07日の23時から2時ごろに計測。

広告画像はどちらもブロックされている。

記述無し

7回計測して平均2分24秒

記述有り

7回計測して平均1分35秒

なんと文字だけで約50秒も短縮。広告を表示するためのJavaScriptの処理にいかに時間を取られているかはっきり分かる結果となった。

記述内容的に他にも多くのサイトで効果がありそうだ。

さらにもう1ヶ所。ロケットニュース 24も大幅に改善できた。

カスタマイズによりかなり強化されたOpera Mobile 9.51b2だが、このサイトはどうも画像が全部表示されない。

Opera Mini 5では強制的にモバイル版になってしまい画像が小さいのでPC版を見たいのだ。

もっと重いサイトでも表示できたりするのになぜなのかとソースを眺めていたら、広告文字をランダムに読み込んでいると思われる記述を発見したのでurlfilter.iniに

http://product.adingo.jp.eimg.jp/randomSelect/*.js

http://contents.adingo.jp.eimg.jp/*/adingoShowAds.js

と書いてみると

精力減退とかカードローンとか怪しげな広告を全部ブロック。

右側にあるオススメワード、ザ・パーフェクト、美容と健康もすべてブロックされる。

面倒なので比較はしないがあきらかに表示が速くなっているし、これまでは重すぎて画像が全部表示されないことがあったのがほとんど表示されるようになった。

もう1ヶ所思いつく重いニュースと言えば日経。

http://gavit.nikkei.co.jp/*

と書いてみると

比較画像が作りにくいぐらいバッサリとブロック。

表示もあきらかに速くなっている。

とりあえずここまでにしてVer1.2として公開することにした。

今後は特に比較はせずにバージョンアップしていく。