クリックスルーを測定する方法

MyBlogLogのような仕組みを導入できないか考えていたところ、予想以上に簡単にできることが分かった。javascriptを読み込ませて、外部リンクをすべて特定のcgiスクリプト経由でリダイレクトさせるように書き換える。書き換えるタイミングはbodyのonLoad時になる。ユーザーがリンクをクリックすると、cgiを呼び出すことになり、cgiはリダイレクト先をDBやテキストファイルに記録させた後に、Status 301をブラウザに送信して、最終的なリンク先にリダイレクトさせる。cgiスクリプト自体はperlでも30行程度で済む。mySQLに記録させるとなるともう少しコードが長くなると思うが。
問題は、記録したデータをどのように見るか、という点である。いちいちFTPでダウンロードするもの面倒なので、ブラウザで見えるようにしておきたい。

具体例:http://wwww.test.com/qwerrというリンクを埋め込んでおき、このリンクをたどったユーザーを把握したいと考えたとする。ページロード時に、javascriptでdocument.linksを使ってページ内部のリンクをすべてチェックした上で、外部リンクのみをcgi経由でアクセスさせるように書き換える。http://www.sample.com/cgi-bin/go.cgi?id=http%3A//www.test.com/qwerr/といった感じだ。go.cgiは当然自分で管理できるサーバーに設置しなくてはならない。このcgiの中でリファラーやクエリー文字列をテキストファイルに出力する。テキストファイルだと、アクセス殺到し外部リンクへの移動が多いと同時にファイルに書き込みに行くことになり、ファイルが壊れる可能性もあるが、とりあえずこのような可能性は無視しておく。問題になればmySQLに出力先を変えればよいだけだ。

残念ながら、はてなダイアリーではjavascriptを埋め込むことができないので利用できない。レンタルサーバーのみで利用することに。

MyBlogLogは百式経由で知った。社内ネットワークから百式にアクセスできないことに昨日気づいた。websenseというフィルタリングソフトが導入されているのだが、百式は「職探し・サイドビジネス」のサイトと判断されてブロックされてしまう。さらに困ったことに、Googleのキャッシュもブロックされてしまう。「公開プロキシー」と判断されているようだ。多分キャッシュを提供しているgoogleのサーバーにはホスト名がない(ipアドレスのみ)のが誤解を受けている原因かもしれない。フィルタリングしている以上、公開プロキシーの利用を制限しないと筒抜けになってしまうのは仕方がないが、googleのキャッシュを見ることができないのは少々不便だ。検索キーワードがハイライト表示になってくれるのが気に入っていたのだが。