proxyを通してタブレットの広告を消す

 iOSなどではhostsファイルの設定ができない(あるいは難しい)ため、ブラウザやその他のアプリで表示される広告を消しにくい。そこで、自宅サーバーにproxyサーバーの機能を追加し、そこで広告ブロックを行うようにした。

 サーバーはUbuntu Server 12.04 LTS 64bitで、proxyサーバーはsquid3を使っている。ブロックは、squid.confで次のような設定を行った(他の基本的な設定については他サイトを参照すること)。

acl blacklist dstdomain .pagead2.googlesyndication.com .amoad.com .microad.jp
http_access deny blacklist

 特に重要なのが、”.pagead2.googlesyndication.com”のドメインで、現在広く利用されているアドセンスでは、必ずこのドメインにあるJava Scriptを取りに行って広告表示を実現しているので、ここへのアクセスをブロックしてやると、広告は表示されなくなる。ブラウザではもちろん、一部他のアプリでも広告が消えてさっぱりする。私がよく使用するpixivのアプリでは間違って広告をタップしてしまうことが多々ありイライラの原因となっていたが、このアプリで表示されていた広告も、この指定ドメインへのアクセスをブロックするproxyを通してやることで表示されなくなった。もちろん、スマホやタブレットで表示される広告はアドセンス由来のものだけではないので、他の広告もブロックするにはその広告を表示するのに使用されているファイルが置かれたドメインを調べ、それをブラックリストに追加してやる必要がある。まぁ今回作ったものはLAN内からしか利用できないproxyサーバーだし、私が普段タブレット(iPod touch)で見るサイトというのも限られているので、現在のところは3つしかドメインを指定していない。ちなみにその広告をブロックするためにアクセス制限をかけるべきドメインの調べ方であるが、もちろんproxy通しているのでそのlogを見るとかでもいいのだが、それより簡単にやるなら、FirefoxのアドオンでFireMobileSimulatorというのがあるのでそれを使い、端末をiPhone3Gとかに設定してコンピュータのFirefox上でスマホサイトを表示させてやるとよい。一度表示してしまえば、あとはソースを見るなりFirebugで解析するなりして、広告表示の仕組みを調べてやるとブロックすべきドメインが分かるはずだ。ちなみにこの方法で広告をブロックできるのは、Wi-Fi接続時に限られる。

Post a Comment

Your email is never published nor shared.