pm前回のエントリーで「Webアクセス解析ツールの作成を検討」していることを書いた。したツールを作成しようとすると、いろいろなことを考えなければならないことに気づく。Webサイトを公開するとサイトへのアクセス回数がどの程度なのか気になりアクセスカウンターなるものを取り付けたりする。ここでカウントしているのは何かと考えると、結構、複雑だ。view)数」をカウントしているのか?その区別をどうしているのか?などなどである。このあたりを明確にしておかなければ何を計測しているのかわからなくなる。pp.1029-1038(Sep.2008)にアクセス回数の計測法についての記述がある。定義しておかないと、まともなアクセス回数の計測はできないということだろう。この記事では、次のように計測するようだ:・・・・今後の参考のためにアクセス回数を計る方式を標準化する方式を標準化する必要があると考えて、「訪問者数」を月別にとることにした。「訪問者数」は、30分単位でその間にユニーク・ユーザーを数えるというスタイルで計測される。これで数えると、ある訪問者がそのあいだに何度ページビューを行っても、1回の訪問として登録される。・・・・この方式、「30分単位でユニーク・ユーザーを数える」というのは、例えば、12時から12時30分の間の30分間にアクセスしたユニーク・ユーザーを数え、計測すると理解すると、例えば12時29分にアクセスし、13時31分にサイト内の別のページにアクセスした場合には「訪問者数」は2と数えられることになってしまう。「訪問者数」を上記のように標準化した場合、どのようにこれが実装されるのか、今回採用した方式についてみる。前回のエントリーで、サイトへのアクセスをDB上に記録する関数get-access()のソースを示している。ここでは、サイトへのアクセスを記録する際、このアクセスが、上記の定義でユニークであるかどうか判定し、他のアクセス情報と合わせて記録している。‘UNIQUE’;ここでは、同一の「訪問者」(ホストネーム(ない場合はIPアドレス)で識別)の過去20分間のアクセスレコードを求め、そのレコード数がゼロの場合、uniqueそれ以外をnon-uniqueのフラッグを記録している。解析時には、このフラッグ($unique)を参照し、訪問者数の計測を割り出すことになる。(注意)前回のエントリーで示しているphpのソースは検討用に作成したものであるため、この判定にさきだって、REFERERが我がサイト名memorandum.yamasnet.comのもの(アクセスする直前のページが我がサイトのもの)についてこれをnon-uniqueとする判定法を、そのまま残したものになっている。過去20分内の同一訪問者の数を求める際にも、sizeofを用いることなくなくSQL文で直接これを求めることが合理的と考えられる。検討時に使用したソースとして理解していただきたい。