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

2015年3月17日

PHP Tool プログラミング

wordPressのアクセス計測を行うプラグインで「statpress」は定番のようですが、数値がどうもうさんくさい。 GoogleAnalyticsとの数値の差が違いすぎる。 どちらを信用していいかわからないので、真実を知るために、自分で計測システムを組んでみることにしました。

要件定義

ページ記事にアクセスした際に、ユーザーログを書き込み、後から、ログを使ってレポート集計を行う一般的な、 ロギング→集計→レポート という方式を採用 あえてwordpressから切り離したシステムにすることで、複数のサイト対応ができるようにしてみる。

システム構成

1.ログを取得して、データを貯めこむサーバーを用意(wordpressと同じサーバーでもいいが、別エリアにapacheアクセスできる領域を使用する) 2.データ量が読めないので、簡易的にデータベースを使わない方式を採用 3.計測したい内容は「PV」「UU」「ユーザーエージェント」「IPアドレス」とする。

GitHub

https://github.com/yugeta/sitemate

設置方法

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

$ git clone https://github.com/yugeta/sitemate.git

2. 計測したいWEBページに以下のJSタグを貼り付ける

* %my-site%は、任意の設置したアドレスを入力してください。 <script type="text/javascript" src="//%my-site%/sitemate/access.php?user=test"></script>

3. 計測結果を見るには、以下のようにアクセスする。

http://%my-site%/sitemate/

今後の展開

今は日別の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を取得してサーバーに受け渡すしかないので、今後のバージョンアップで検討する事にしよう。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。