だるろぐ

だるいぶろぐです

androidで広告を非表示にする

iphone / androidfc2ブログ食べログなどを見たときに表示される、ページをスクロールすると付いてくる広告がこの上なく邪魔なので消す。
とりあえず android で。

AdAway を入れる

https://play.google.com/store/apps/details?id=org.adaway
広告配信サーバのドメインを拾ってきて、そのドメインが全部 127.0.0.1 を向くように hosts を編集してくれるアプリ。
標準のリストは超重い上に海外のが多いらしいので、ググってマシなリストを探して使う。
大体はこれで消えるらしい。
が、消えないのがあるので、広告配信元のドメインを探して追加する。

proxy サーバを用意する

mod_proxy 辺りでさくっと。
そしたら ProxyDroid で繋いで、広告が表示されるサイトやアプリを見る。
ProxyDroid は、ブラウザのみならず全ての通信が proxy サーバを経由するらしいので、ログからドメインを拾う。
標準的な apache のログフォーマットならこうする。

% cat proxy_access_log |cut -d " " -f 7 |sort |uniq  |perl -nle '$_ =~ m{^http://([^/]+)/}; print $1' |sort |uniq

アプリなら大抵広告の通信しかしてないので全部ぶち込む。
サイトはいかにも広告っぽいのは追加して、判断つかないのはアクセスして調べる。

データを編集する

AdAway とかに載ってるドメインの中には、広告じゃないドメインや、広告以外のコンテンツも扱うドメインも含まれているので、適宜削除する。
例えば yahoo はよく見るので以下は弾かない。

  • i.yimg.jp
    • sp サイトの css も扱ってるので、これも弾いてしまうと yahoo 全体が崩れて表示される。
  • rd.yahoo.co.jp
    • リダイレクタに使ってるので、コンテンツによってはリンク先に飛べなくなる


あとドメインが向く先が 127.0.0.1 になってたら自分にアクセス試みて負荷になるんじゃね? 0.0.0.0 でいんじゃね?と思ってググったら、以下を見つけた。
http://logsoku.com/thread/hibari.2ch.net/win/1129451974/
よく分からんけどどっちでも大差ないらしい。でも何となく 0.0.0.0 にしてみる。


あとは自分のサーバにリスト置くなり、手動で hosts 書き換えるなり。
そういやググったら ios にも hosts はあるらしいので、 ios / android どっちも hosts を書き換えるアプリ作って使いまわせるんじゃね?と思ったけど思っただけ。
多分既に誰かがやってんだろ。もしくはやる人は自分でやってんだろ。


そして一部誤爆して食べログの食べ物のご飯自体出なくなったりするけど、そもそも食べログ滅多に見ないから別にいいや。

その他

ググってたら、広告を非表示にしたいけどドメインが分からない場合の手法として、
「広告が表示されるサイト・アプリを見て広告が表示されてる状態で、機内モードなどにして通信されないようにした上で広告をクリックして、ブラウザに表示されたドメインから調べる」
ってのがあったけど、それって実際に広告が表示される流れの

  1. js などで広告のソースの url を get する
  2. その url が実際に img src などで広告を表示する

の、2つ目しか対応できてないよね。大本の get してるドメインから殺すべし。


あと手動で追加した広告ドメインの一部。

0.0.0.0 image1-1.tabelog.k-img.com
0.0.0.0 image1-2.tabelog.k-img.com
0.0.0.0 image1-3.tabelog.k-img.com
0.0.0.0 image1-4.tabelog.k-img.com

0.0.0.0 203.104.105.105
0.0.0.0 ad1.nend.net
0.0.0.0 i.adingo.jp
0.0.0.0 img1.nend.net
0.0.0.0 img.fluct.jp.eimg.jp
0.0.0.0 js1.nend.net
0.0.0.0 media.admob.com
0.0.0.0 op1.searchteria.co.jp
0.0.0.0 op2.searchteria.co.jp
0.0.0.0 op3.searchteria.co.jp
0.0.0.0 op4.searchteria.co.jp
0.0.0.0 op5.searchteria.co.jp
0.0.0.0 op6.searchteria.co.jp
0.0.0.0 op7.searchteria.co.jp
0.0.0.0 op8.searchteria.co.jp
0.0.0.0 op9.searchteria.co.jp
0.0.0.0 op10.searchteria.co.jp
0.0.0.0 op11.searchteria.co.jp
0.0.0.0 op12.searchteria.co.jp
0.0.0.0 op13.searchteria.co.jp
0.0.0.0 op14.searchteria.co.jp
0.0.0.0 op15.searchteria.co.jp
0.0.0.0 op16.searchteria.co.jp
0.0.0.0 op17.searchteria.co.jp
0.0.0.0 op18.searchteria.co.jp
0.0.0.0 op19.searchteria.co.jp
0.0.0.0 op20.searchteria.co.jp
0.0.0.0 op21.searchteria.co.jp
0.0.0.0 op22.searchteria.co.jp
0.0.0.0 op23.searchteria.co.jp
0.0.0.0 op24.searchteria.co.jp
0.0.0.0 op25.searchteria.co.jp
0.0.0.0 op26.searchteria.co.jp
0.0.0.0 op27.searchteria.co.jp
0.0.0.0 op28.searchteria.co.jp
0.0.0.0 op29.searchteria.co.jp
0.0.0.0 op30.searchteria.co.jp
0.0.0.0 op.searchteria.co.jp
0.0.0.0 output.nend.net
0.0.0.0 sh.adingo.jp
0.0.0.0 spap.adingo.jp.eimg.jp