ユーザーエージェントの解析の仕組み
すでに述べたように、ユーザーエージェント情報は、クライアントが自由に決められる文字列です。そのため、アクセス解析の際にユーザーエージェントからブラウザ名を割り出す際にも、すべてのユーザーエージェント名からブラウザ名を自動的に割り出すといったことはできず、「こういう文字列だったらこのブラウザ」といったそれぞれのブラウザごとの「パターン」をあらかじめ登録しておき、それを利用して判定を行っています。例えばInternet Explorerなら以下のような文字列です。
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
したがって、これとまったく同じユーザーエージェント情報だけをチェックすればいいのか、というとそうでもありません。この中にはInternet Explorerのバージョン(6.0)や、OS(Windows NT 5.1はWindows XPを意味します)、インストールされているプログラム(.NET)のバージョンなどが含まれており、これらは同じInternet Explorerを利用していても、人によって違ってくるものだからです。
ではどこでチェックすればいいでしょうか。IEのユーザーエージェント情報の中には「MSIE」という言葉が入っています。これはMicroSoft Internet Explorerの頭文字であり、「MSIE」という文字が含まれているのかどうかをチェックすれば、InternetExplorerかどうかを知ることができます...といいたいところなのですが、実はそうもいかないのです。
それはInternet Explorerではないにもかかわらず、MSIEという文字を含むものがあるからです。例えばSleipnirというブラウザのユーザーエージェント情報は以下のようになっています。
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Sleipnir/2.45
このユーザーエージェント情報には、Internet Explorerが返す文字を完全に含んでいます。そして最後に「Sleipnir/2.45」というSleipnirであることを意味する文字列がついています。もし、MSIEという文字列だけでブラウザを判断したとしたら、SleipnirもInternet Explorerだと誤認識されてしまうでしょう。
Sleipnirがこのような文字列を返すのは、このブラウザがIEコンポーネント、つまりはもともとInternet Explorerのために作られたブラウザシステムのプログラムを流用して作られているからです。そのため実際の表示はInternet Explorerで表示される場合とほぼ同じになります。そのため、表示をブラウザによって変化させる、という目的でユーザーエージェント情報を利用するのであれば、SleipnirをInternet Explorerと同じであるとみなしても問題がありません。
しかし、アクセス解析でブラウザを集計する場合はそうは行きません。なぜならSleipnirは「上級者向け」を謳っているブラウザであり、おそらく利用している人はインターネットをよく活用している人、コンピュータに詳しい人が多いはずです。それに対してInternet ExplorerはWindowsの標準のブラウザであり、あまりインターネットやコンピュータに詳しくない人も多く使っています。したがってSleipnirとInternet Explorerではユーザー層に大きな違いがあり、その二つを別々に集計することは、サイトにアクセスしてきた人の属性を調べるために利用可能だからです。
アクセス解析において、Sleipnirなどのブラウザをきちんと判別できるかどうかは、利用しているアクセス解析サービスやツールが、ブラウザの判定にどこまで対応しているのかに依存してきます。例えばSleipnirは国産のブラウザなので、Google Analyticsをはじめ、海外製のアクセス解析サービスは対応していないケースが多くなってしまいます。
ほかの例を見てみましょう。Operaというブラウザがあります。Operaは、パソコンでのシェアはあまり高くないのですが、携帯端末用のブラウザとして、大きなシェアを持っています。携帯電話にも搭載されていますし、先日発売された、携帯ゲーム機のNintendo DS用ブラウザもOperaです。
例えばNintendo DSから送られてくるユーザーエージェント情報は以下のようになっています。
Mozilla/4.0 (compatible; MSIE 6.0; Nitro) Opera 8.50 [ja]
中に含まれる「Nitro」という文字が、Nintendo DSをあらわしています。
しかし、もしOperaからのアクセスを「Opera」という文字列だけで認識してまとめて集計してしまっていた場合、すべてOperaブラウザとしてまとめられてしまうでしょうし、もしOSの判別も別に行っていても、Nitroという文字がNintendo DSをあらわすことがプログラムに組み込まれていなければ、解析結果にNintendo DSから、という情報は含まれることはないでしょう。
Nintendo DSを利用するユーザー、というのもパソコンを利用するユーザー層とはまた異なる属性を持っていそうですから、せっかくなら認識してほしいところです。
ここで紹介した以外にも、新しいブラウザが登場した場合などには、古いツールを利用していれば、当然対応しておらず、ブラウザを特定できなかったり、異なるブラウザだと誤認識してしまう場合もあります。アクセス解析のサービスやツールを選択する場合には、このあたりの情報がきちんと更新されているのか、といったことも指標のひとつとなります。