どのようにアクセス解析すべきか
それでは、「ページ遷移の少ないサイト」の仕組みを解説したところで、そういったサイトでは「どのようにアクセスを解析していけばいいのか」ということを考えていきましょう。まず、ページの遷移が少ないといっても、最初にそのサイトを訪れるときには、必ず一度はページ遷移が行われる、というか最初の1ページを表示する必要があります。したがって、すべての利用者について、少なくとも1回は「普通に」ページにアクセスが行われるわけで、それはやはりこれまで紹介してきた一般的の手法で記録できるわけです。アクセスログを利用するものであっても、JavaScriptを利用するタイプであってももちろんかまいません。
したがって、ブラウザの名前やアクセス元、リンク元や検索に使われた文字列なども普通に解析することができます。また、そのサイトを何人の人が利用したのか、という「ユニークユーザー数」も取得できます。JavaScriptを使って解析していれば、「ブラウザのサイズやFlashやJavaが利用できるかどうか」といった情報も解析が可能です。じゃあ、普通のサイトと何が違うのかというと、サイトにアクセスした利用者がそのサイト内で取った行動の追跡方法が異なるのです。
通常のサイトでは、ユニークユーザー数とページビューから、個々のユーザーの平均のアクセスページ数が割り出せます。一度の訪問で、アクセスしてくれるページが多ければ多いほど、それだけそのサイトやサービスが魅力的であるということになり、好ましいことです。しかしページ遷移の少ないサービスでは、すっと同じページに滞在することが多いわけですから、ユーザーの平均アクセスページ数は、ページ遷移を多用するサイトよりもぐっと少なくなってしまいます。
また、単に閲覧ページ数が減るだけでなく、どのように利用者がページを遷移したのかを知ることは、ユーザーの行動を知る上で、非常に重要な情報でもあるため、ページ遷移がないとそれらをページへのアクセスから知ることも難しくなります。では、どうすればいいでしょうか。
ページ遷移がないからといってあきらめる必要はありません。すでに解説したように、サーバとのやり取りはAjaxなどの手法によって行われているケースがほとんどです。そして、それらのアクセスは通常のHTMLや画像などにアクセスするのと同じように行われるので、サーバ側にはアクセスログが残ります。したがって、アクセスログを使って解析を行っている場合は、それらの「ページ遷移を伴わないアクセス」のログを解析することで、ユーザーの行動が把握できます。
ただし、そうして得られたアクセスデータを、ページ遷移を伴うサービスと全く同じように解析してしまっても、有意なデータは得られません。それには2つの理由があります。1つ目の理由は、ページ遷移の際に発生するアクセスは「ページを移動した」という、ユーザーの行動をきちんと反映したタイミングになっているのに対し、Ajaxなどによって行われるアクセスは、そのサービスの仕組みによって、さまざまなタイミングで起こるからです。
例えば、Webメールのサービスが、新しいメールの到着をチェックするために、5分に一度サーバにアクセスをしていたとします。するとそのログは当然サーバ側に記録されていきますが、これはユーザーの「能動的」な作業によるものではないので、これをすべて「アクセス」としてカウントしてもあまり意味はありません。
またほかのケースを挙げると、例えばユーザーがボタンやリンクをクリックして、画面を大きく切り替えるような場合に、もしかしたら3つくらいの異なるURLにアクセスを行ってデータをそれぞれ取得し、それらをまとめて新しいページを作っているかもしれません。それらをすべて別々のアクセスとしてカウントしてしまえば、いわばアクセスが水増しされた状態になってしまいます。また、ページの本の一部を少しだけ書き換えるような場合に、それを1アクセスとして捉えるべきかどうか、という問題もあります。
JavaScriptを利用するタイプの解析手法はドウスル?
もう1つの理由として挙げられるのは、「ユーザーによる画面の切り替えと、サーバへのアクセスのタイミングが、必ずしも一致していない場合もある」という点です。画面が大きく切り替わっても、実はサーバへのアクセスは全く行われていない、というケースもあります。前述の「Googleカレンダー」では、カレンダーの画面を「日ごと」「月ごと」と切り替える際に、必ずしもサーバへのアクセスを必要としません。そのことはGoogleカレンダーにアクセスした後、インターネットの接続を切断して画面の切り替えを行っても、全く問題なく動作します。もちろん、予定の追加などの作業はできませんが、すでに保存されている予定を見るだけなら、インターネットに接続されていなくても大丈夫です。これはつまり、こうしたページの切り替えは、アクセスログには残らず、ログを解析してもその動きを追うことはできないのです。
したがって、こういったサービスのアクセスを解析する際には、どういったURLへのアクセスがどういうタイミングで発生して、それにはどんな意味があるのか、ということについて開発しているエンジニアと情報の共有を行い、それを元に、このURLへのアクセスを解析して、そこからこうした情報を引き出そう、という戦略を立てる必要が出てくるのです。
面倒なようですが、その分、単なる「ページ単位」よりも細かく解析ができる可能性も出てきます。例えばWebメールにおける「メールを定期的にチェックする」アクセスは、そのアクセスがある間は、その利用者はページを表示し続けていることになりますから、そこからユーザーの滞在時間が解析できそうです。同様に、どういうタイミングでアクセスが行われているのかを詳しく知ることで、いろいろなそのサービスならではの視点での解析ができるようになるでしょう。
なお、ここまでは「アクセスログ」を解析する方法を中心に解説してきましたが、それではJavaScriptを利用するタイプの解析手法ではどうすればいいでしょうか。こちらの場合も、単にページ内にそのスクリプトを埋め込んだだけでは、ページが読み込まれるタイミングでしかアクセスの記録が行われません。しかし、ページ遷移の少ないページでは、ほぼ確実にJavaScriptを使って処理を行っています。したがって、処理中の任意のタイミングで、それを記録を行うような仕組みを構築すればいいわけです。JavaScriptを利用してアクセスを記録する場合は、「サーバへのアクセスを行わないページ内の書き換え」も記録することができます。
しかしこれは、サービス内で利用されているJavaScriptのプログラムに手を入れることになりますから、こちらもやはり開発者と連携して作業を行う必要があります。また、すべてのJavaScriptを利用したアクセス解析サービスが、ページ内のJavaScriptからの呼び出しに対応しているわけではないことにも注意してください。多くのツールは、指定されたタグをページ内に埋め込むことを前提としたものだからです。例えばGoogle Analyticsであれば、そうした方法にも対応しています。その方法については、以下のAjaxianというブログの記事が参考になります。
Tracking Ajax Requests in Analytics
ただし、この方法はAjaxによるリクエストのすべてを記録してしまい、「どのアクセスを解析すべきか」という考慮がなされていません。前述のアクセスログの解析と同様、きちんとした解析を行うには、どういった処理を記録するのか、という戦略を立てる必要があるでしょう。以下のブログの記事に、そのあたりの考察が掲載されているので、参考になると思います。
Google AnalyticsでAjaxページをアクセス解析する際に注意すべきこと