2007/03/12

Adsense を 自分でクリックしない為に。-2

以前に「Adseseを自分でクリックしない為に」という記事でThe Proxomitronを使ったフィルターを書きましたが、その時のあまりにも適当であったフィルターを改善しました。

対象となるのは「コンテンツ向け AdSense」のみですが、完全にクリックが出来なくなりますから、自分のサイトを安心して閲覧する事ができます。

またAdsense IDにて絞込みますので、他のサイトを閲覧する際には影響を及ぼしません。

最初に具体的にどうなるのかを説明します。まずは通常はブラウザの画面でURLしているテキストを右クリックすると、「リンク先のURLをコピーする」等のメニューが出てきます。



Adsenseの表示されている領域でもこれは同様ですが、フィルターを適用後はこのメニューが出てこない=リンク先が無くなります。



そして操作ミスが怖くて中々出来ない、Adsense領域内のテキストも安心して選択できるようになります。



上記のように、Adsense広告を単なるテキストとして表示するようになるフィルターです。Adsense広告の改変は規約で禁じられていますが、自分が自身のサイトをローカルで表示する場合のみへの適用であり、他の方への影響をまったくありませんから、この方法ならば問題は無いかと思います。

The Proxomitronのインストールに関しては、Proxomitron-Jを参照してください。

私が使用してるのは、Proxomitron Ver.Naoko 4.5 "May" 版になります。Proxomitron-Jによると、バージョンに関しては以下の解説があります。

Proxomitron の最新版 Ver.Naoko-4.5 には、「May(5月)」バージョンと呼ばれるものと「June(6月)」 バージョンと呼ばれるものがあります。公式に "May" が公開されたあと、いくつかの仕様変更、バグ修正などが行われて非公式に公開された(存在が明らかになった)ものが "June" です。 "June" は現在の最新版であり、おそらく最終版です。

ファイルは日本語化パッチも含めて、Proxomitron-JのDownloadページから入手可能です。

個人的には最近の記事でも書きましたが、インストーラ無しのでzip形式で提供されている、"Proxomitron Ver.Naoko 4.5 "May" [ZIP] ( 1.08MB )"をお勧めします。

初期のInternet Explorer等に対する設定の方法は、インストールと削除の仕方(Proxomitron-j)を参照してください。また"Webブラウジングを快適にする「The Proxomitron」(MYCOMジャーナル)"にも詳細な解説があります。

私が今回書いたのは「Webページフィルタ」ですので、ウェブページフィルタダイアログに対する解説(Proxomitron-J)も参照しておいてください。

テキストで書かれたフィルターをインポート機能で取り込む事が出来ますので、ウェブページフィルタダイアログに対する解説(Proxomitron-J)の「ウェブフィルタをシェアする」という項目も要チェックです。

今回の書いたフィルターは二つあります。これは<a>タグを取り除くものと、その周りを取り巻くonclick(),onfocus()等のイベントハンドラを無効にするフィルターになります。

まずは<a>タグを取り除き、リンク先に飛べなくする為のフィルター。


[Patterns]
Name = "Anti Self Click Adsense"
Active = TRUE
Multi = TRUE
URL = "*.googlesyndication.com/$TYPE(htm)"
Limit = 2048
Match = "$NEST(<a*href=$AV(*0000000000000000*)*>,\9,</a>)"
Replace = "\9"



Match の後で0000000000000000(16桁)となっている部分には自身のAdsense-Idが入っています。 画面でみとるこんな感じです。



このフィルター指定されたAdsense-idを含むはリンク先(href)が設定されいてる<a>タグを取り除き、内部のタグ・テキスト(=innerHTML)に置き換えます。

Multitが(True)有効になっている事に注意してください。次のフィルターと同一の領域を対象とする為に 「複数のルールのマッチを許可する」必要があります。

このフィルターだけで<a>タグが消えますので、Adsense広告は表示されていても単なるテキストになりますので、クリックしてもリンク先に飛ぶ事は無くなります。

ですが、この<a>タグの外側の<td;>タグにonfocus(),onclick()等にイベントが設定されており、クリックするスクリプトのエラーが発生します。スクリプトを解析していませんが、これらのイベントがクリックと同等影響を及ぼす事を懸念して、これらイベントも取り除くフィルタがこれです。


[Patterns]
Name = "Anti Self Click Adsense2"
Active = TRUE
Multi = TRUE
URL = "*.googlesyndication.com/$TYPE(htm)"
Bounds = "$NEST(<td,*href=$AV(*0000000000000000*)*,</td>)"
Limit = 4096
Match = "(\#(onclick|onmouseout|onmouseover|onmousedown|onfocus)=$AV(*))+"
" \# "
" $SET(9=\@)&"
Replace = "\9"


Bounds の中でで0000000000000000(16桁)となっている部分には自身のAdsense-Idが入っています。 画面でみとるこんな感じです。



このフィルターで、onclick,onmouseout,onmouseoveronmousedown,onfocusの各イベントを消しています。こちらもAdsense-Idで絞り込んでいますので、他のサイト閲覧時の影響を排除しています。

どちらのフィルターも"*.googlesyndication.com/$TYPE(htm)"とURLマッチを設定していますので、通常のブラウジング時でもフィルターによるパフォーマンスの低下を意識することが無いレベルではないか思います。

これら2つのフィルターにより、自分のサイト上のAdsene広告(「コンテンツ向け AdSense」のみ)はマウスで触り放題になりますので、日々安心ではないでしょうか。

関連のありそうな記事

0 コメント: