JavaScriptを利用したアクセス解析の利点は、簡単に言えば前回も解説したとおり、「サーバに記録されたアクセスログを解析するタイプ」では得ることのできない情報を取得できるという点です。「サーバに記録されたアクセスログを解析するタイプ」では、サーバに送られてきた情報しか記録できませんが、JavaScriptを利用するタイプの解析ツールは、ブラウザ側で動作するために、かなり自由度が高く、さまざまな情報を取得することができます。
例えばよく解析されているのが、利用しているパソコンの画面サイズや色深度(1677万色や3万色など、何色使える設定にしてあるのか)といった情報です。さらに、JavaやFlashなどを実行するための環境が整っているのか、そしてそのバージョンはいくつか、といったことも、JavaScriptを利用した解析サービスではよく見かけます。利用しているWebブラウザやOSなどの情報は、第3回で解説した「ユーザーエージェント情報」として、サーバ側でも解析が可能ですが、もちろんJavaScriptを利用したサービスでも解析が可能です。こうした情報が利用できるのは、JavaScriptがこうした情報にアクセスして、それをアクセス解析サーバに送信する機能を備えているからです。
このような利用者の環境に関するデータは、Web上でサービスを提供する上で、非常に重要です。例えばFlashムービーを利用していても、アクセスしてきている人のほとんどが少し古いバージョンのFlashプレーヤーを使っているのなら、最新版でしか動かないムービーを公開することはできないでしょう。Webサイトはさまざまな環境の利用者がアクセスしてきます。どんな状況で利用しているユーザーが多いのか、それを知るためには、情報は多ければ多いほど良いと言えます。
以下に、JavaScriptを使って取得可能なユーザーの環境に関する情報を示します。
- 利用可能言語
- ブラウザ名とバージョン
- OS
- リファラー情報・画面のサイズ
- 色数
- ブラウザの履歴情報
- インストールされているプラグイン
- ブラウザのウインドウサイズ
工夫次第で、より多くの情報を解析可能
さらに、JavaScriptを利用したアクセス解析では、サイトの利用状況の把握に役立つ情報を取得することができます。それは「利用者の行動」です。利用者の行動とは、「サイトにアクセスした利用者が、その後どのように行動したか」ということです。「サーバに記録されたアクセスログを解析するタイプ」のアクセス解析ツールでは、記録できるのは、アクセスが行われた瞬間だけです。ページにアクセスしたあと、その利用者がどれくらいの時間そのページを読み、どのリンクをクリックして移動したのかといったことは取得できません。
しかしJavaScriptを利用した場合は、リンクをクリックした時やページを移動したときに、それを検知することが可能なので、そのタイミングでクリックした場所やリンク先・アクセスしてからの時間を、アクセスを記録するサーバに送信することで、ページへの滞在時間や、その後どこのページに移動したのかを解析できるのです。
サーバ側で記録したログを解析しても、サイト内の移動なら、2つのページのアクセス時間の差やリファラー情報、IPアドレスなどから、ページの滞在時間やどのように移動したのかを解析できます。しかし、外部サイトへのリンクがクリックされてしまった場合は、それを検知することができません。しかしJavaScriptを使えば、外部リンクであっても、リンクされたことを検知、記録することができるのです。

複数回のアクセスを同じ利用者のものだと判断するには、IPアドレスやユーザーエージェント情報を使うことができます。しかし、同じ企業内からのアクセスの場合に、別の利用者でも同じIPアドレスとして記録されることもあるため、完全に識別することができません。この点についても、JavaScriptを利用した解析ツールの場合、クッキーと呼ばれる技術を利用し、利用者(ブラウザ)ごとに識別情報を生成するので、完全に把握することができます。つまり、アクセスしてきた人が、始めてきた人なのか、それともリピーターなのか、さらにはリピーターの場合、前回アクセスしたのはいつか、ということもわかるのです。
このようにJavaScriptを利用した解析ツールは、ユーザーの環境や行動を解析するのに適しています。ただ、ここで紹介した解析の手法は、それが可能だというだけで、JavaScriptを利用した解析ツールの全てが、これだけのさまざまな情報を解析できるわけではありません。なぜならより多くのことを記録しようとすればするだけ、処理は複雑になりますし、記録するデータ量も増えてきてしまうため、サービスによって「ここまでは記録しよう」という線引きが行われているからです。
したがってサービスを利用する上では、そのサービスやツールが「何を記録してくれ、何を記録してくれないのか」というを把握しておく必要があるでしょう。サービスによっては、あえて特定の機能だけを提供しているものもあります。例えば「MyBlogLog」では、自分のブログからどの外部リンクがクリックされたのか、ということが解析できるようになっています。
また、fladdict.netというブログのエントリ(2005年末とちょっと古いのですが)では、Google Analyticsを使って、さまざまな利用者の行動を記録する方法が紹介されています。このように、同じサービスでも、使い方を工夫すれば、より多くの情報を解析することも可能になります。
ここで述べてきたように、JavaScriptを利用したアクセス解析では、やり方によってさまざまな情報を取得できるため、既存のツールを組み合わせることで、さまざまな切り口からの解析が可能になります。また、もし自分の目的に合った手ごろなサービスやツールがなかった場合は、エンジニアなどに頼んで、簡単なデータ記録用のツールを用意してもらうことも不可能ではありません。完全なアクセス解析ツールを作るのは簡単ではありませんが、ちょっとした機能のものなら、技術的にはそれほど難しくはないからです。