サイトの計測を手動で行ってみる PHP #1「ログを取得する」

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

wordPressのアクセス計測を行うプラグインで「statpress」は定番のようですが、数値がどうもうさんくさい。

GoogleAnalyticsとの数値の差が違いすぎる。

どちらを信用していいかわからないので、真実を知るために、自分で計測システムを組んでみることにしました。

要件定義

ページ記事にアクセスした際に、ユーザーログを書き込み、後から、ログを使ってレポート集計を行う一般的な、
ロギング→集計→レポート
という方式を採用

あえてwordpressから切り離したシステムにすることで、複数のサイト対応ができるようにしてみる。

システム構成

1.ログを取得して、データを貯めこむサーバーを用意(wordpressと同じサーバーでもいいが、別エリアにapacheアクセスできる領域を使用する)

2.データ量が読めないので、簡易的にデータベースを使わない方式を採用

3.計測したい内容は「PV」「UU」「ユーザーエージェント」「IPアドレス」とする。

GitHub

https://github.com/yugeta/sitemate

設置方法

1.任意の箇所にGit cloneします

2.計測したいWEBページに以下のJSタグを貼り付ける
* %my-site%は、任意の設置したアドレスを入力してください。

3.計測結果を見るには、以下のようにアクセスする。
http://%my-site%/sitemate/

スクリーンショット 2015-03-08 21.35.47

今後の展開

今は日別のPVとUUが表示されるだけですが、GoogleAnalyticsと同じぐらいの数値であることが確認できると思います。

GoogleAnalyticsで計測できない、時間別の計測を行い、どの時間にアクセスが集中しているのかを計測し、アクセスが無い時間は、サイトメンテナンスなどを行いたいし、
BLOGページなどであれば、アクセスが多い時間の少し前に、予約投稿し、Tweetするような事ができるようになると思います。

あとは、UserAgentを細かく計測してアクセスOS、や端末、ブラウザなどの解析もできるようになると便利ですね。

地域アクセスや、トラッキング計測などは、GoogleAnalyticsで行ったほうが、他DBとのヒモ付もできるので、こういった簡易計測を追求していきたいですね。

余談

ちなみに、今回のバージョンでは、ビーコン形式を採用していて、JavaScriptタグを使っているが、計測は、サーバーサイドのPHPでほぼ行っている。
JSタグはPHPを指定しているだけなので、IMGタグで貼り付けてもOKという事だが、
HEADタグ内でも動作できるようにと考えてSCRIPTタグにしてある。
このビーコンタグで困ったことがひとつだけ発生していて、計測するWEBページのURL情報を取得するのが、サーバーサイド計測では、refererを使わないと取得できない。
何が問題かというと、このままでは、このURLに紐付いている本来のreferar情報が取得できないのだ。
これは、ページ内でJavaScriptでrefererを取得してサーバーに受け渡すしかないので、今後のバージョンアップで検討する事にしよう。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です