jsのURLにパーマリンクURLを入れて、Webサーバのログでpvを集計する
2007/12/01■2007/11/30 [デジ埋2007年11月のpv上位リストデジ埋2007年11月のpv上位リスト]
昨日の記事でもちょっと触れましたが、月に1度カウントしている記事別の
アクセスランキングは、Webサーバの ログから直接集計 しています。
そのため、検索ボットやスパム のアクセスもここに含まれていることになります。
上記の記事では、Webサーバのログをソースにすると、月刊のページビュー(PV)は
27万PV ありました。一方で、Google Analytics で見ると 約10万 に
なっていますので差が17万あります。ところが、User Agentで主な検索ボットなどの
アクセスを数えてみると、せいぜい 3割(8万PV)程度 しかありません。
では、もう3割は一体何だったのかと、これがずっと不思議だったのですが、
どうやら推測するに、これは検索ボット以外のスクリプトによるアクセスのようです。
1つには スパマーさんがURL収集のために 使っているスクリプトがあります。
それから、もっと善良なものとしては、Webブラウザの 先読みプラグイン なども
一度に大量のアクセスを発生させる要因になります。これらがいろいろあわさって
残りの3割を占めているのではないかという推測を、今のところはしています。
そこでもうちょっと 「人間によるアクセス」 をうまくログに残せないかなと思って、
Google Analytics と同じようにカウント用のjavascriptを1つ噛ませてみることに
しました。方法は至って簡単ですので、ここでご紹介しておきます。
昨日からこんな 1行のスクリプトタグ を各ページに挟みました。
<script language="javascript" type="text/javascript" src="/pvcount/blog/entryurl/(記事のパーマリンク)" charset="EUC-JP"></script>
一方で、そのsrcに指定された先のスクリプトはどうなっているのかといいますと、
RewriteEngine On
RewriteRule ^pvcount/blog/entryurl/(.*)$ /pvcount/blank.js
こんな感じで、mod_rewrite の設定で全部同じ 空の.jsにマッピング してあります。
Webページ上に何も表示されないのはモチロンのこと、処理も何1つ行っていません。
つまりこれは、WebサーバのログにパーマリンクURLを刻み込むためだけに
挟み込まれているスクリプトになっています。集計はWebサーバのログから
この形式の行をgrepなり何なりすれば簡単に抜き出せますので、
あとからいくらでも集計することができます。
javascriptですので、一般的なボットや先読みスクリプトなどがこのjsを
辿って読んでいく意味はありません。となると純粋に一般的なユーザが
一般的なブラウザで読んだときだけカウントされることになるという寸法です。
ただ、javascriptの実行をオフにしている方や、携帯、テキストブラウザ(w3mなど)からの
アクセスも見えなくなってしまいますので、今度は実際の数字より若干減ってしまうのですが、
少なくともボットなどを全部カウントした数字よりは有効な結果が得られるでしょう。
こうした処理をCGIでカウントすると、PVに比例したCGIプロセス起動が必要となり、
サーバ負荷にも影響が出てしまうのですが、このように ログに刻み込むだけ であれば
jsのURLにID(=ここではパーマリンクURL)を含めておいて、その先は全部空のjsに
マッピングするというのは案外といろいろな場面で応用ができそうです。
来月からのランキング集計は早速この数字を使ってみたいと思います( ・ω・)
2007/12/01 [updated : 2007/12/01 23:59]

ブログ「デジモノに埋もれる日々」「アニメレーダー」「コミックダッシュ!」管理人。デジモノ、アニメ、ゲーム等の雑多な情報をツイートします。
@ckom をフォローする
![]() « デジ埋2007年11月のpv上位リスト | ![]() トップに戻る | ![]() Forza2でウィリー! 定番のCarreraセッティングから、禁断のバック・ウィリーまで » |
▼ はてなブックマークのコメント ▼
関連記事
ピックアップタグ
- アニメ(438)
- GSR(314)
- ライブ(77)
- イベント(203)
- コラボカフェ(35)
- VTuber(21)
- アニメ吐き出しメモ(10)
- ウマ娘(49)
- 舞台挨拶(45)
- 先行上映会(19)
- トークショー(20)
- バンドリ!(51)
- ガールズ&パンツァー(59)
- 少女☆歌劇レヴュースタァライト(60)
- ゾンビランドサガ(9)
- プリンセス・プリンシパル(19)
- スタリラ(31)
- コラム(171)
- ゲームプレイ日記(69)
- ワンフェス(12)
- コメンタリー上映(7)
- 岩浪美和(25)
- 大洗(9)
- 響け!ユーフォニアム(12)
- リズと青い鳥(9)
- RAISE A SUILEN(10)
- 艦これ(23)
- ストライクウィッチーズ(23)
- メイドインアビス(8)
- BLAME!(8)
- ヤマノススメ(7)
- ラブライブ!サンシャイン!!(11)
- HELLO WORLD(6)
- 宇宙よりも遠い場所(5)
- ヴァイオレット・エヴァーガーデン(8)
- 私に天使が舞い降りた!(9)
コメントしましょう