web-dev-qa-db-ja.com

「ページ滞在時間」を計算するログアナライザー?

クライアント側のスクリプト(onunloadイベントハンドラーの使用など)を使用せずに、Webサイトの各ページの平均「ページ滞在時間」または「ページビュー期間」を把握する必要があります。

これを実行できる無料のログアナライザーはありますか? Webalizer、AWStats、Analogを調べましたが、そのような機能はないようです。最も近いのはAWStatsの「訪問時間」ですが、代わりに「ページビュー時間」を表示したいと思います。

クライアント側のスクリプトがないと訪問者の追跡が不正確であることは知っていますが、私はそれに耐えることができます。 Google Analyticsは、onunloadイベントをフックせずに「ページ滞在時間」メトリックを提供しているようです(ただし、間違っている場合は修正してください)。したがって、これは可能だと思います。

2
netvope

私はあなたに賞賛します あなたのウェブログから何がわかり、何がわからないかについてのアナログドキュメント 、特に著者が書いている部分:

人々が各ページを読むのにどれくらいの時間を費やしたかはわかりません。繰り返しになりますが、ページの連続したリクエストの間に、どのページを読んでいるかを知ることはできません。彼らは以前に[キャッシュ]したいくつかのページを読んでいる可能性があります。彼らはあなたのサイトからのリンクをたどって、後で戻ってきたかもしれません。彼らはマインスイーパの簡単なゲームのために彼らの読書を中断したかもしれません。あなたはただ知らない。

あなたは人々があなたのサイトにどれくらいの時間を費やしたかを知ることができません。前のポイントの問題とは別に、もう1つの完全なショーストッパーがあります。サイトの時間を報告するプログラムは、最初のリクエストと最後のリクエストの間の時間をカウントします。しかし、彼らは最終ページに費やされた時間を数えません、そしてこれはしばしば全体の訪問の大部分です。

アナログの作者であるスティーブン・ターナーは、元ケンブリッジの統計学者である明るい男であり、私はこれについて彼に同意する傾向があります。彼は私が上に送ったリンクで彼の議論を正当化します。

アナログはあなたのウェブ統計から間違いなく知っていることを教えてくれます、そしてそれはあなたに非常に迅速に教えてくれます。より多くを得ようとすることは当て推量です、そしてあなたが推測をしたいのなら、なぜそれを作るために誰かにお金を払うのですか?乱数ジェネレーターは5ペニーなので、代わりにそのうちの1つを使用してください。

5
MadHatter

Madhatterが書いたように、この情報をログに依存しても、正確な状況はわかりません。また、ほとんどの統計と同様に、多くの時間を費やす必要があります 実際に何を測定しているのかを考えてください -人々はページが面白いため、または理解しにくいためにページに時間を費やしていますか? javascriptでデータをキャプチャすると、ログを見るのとはまったく異なる動作が得られます(ユーザーが複数のウィンドウを開いている場合に何が起こるかを考えてください)。

AFAIK、この種の分析を行う商用または無料のツールはありません-Google Analytics(malfy:参照を提供できますか?)ただし、独自に作成することは過度に負担になることはありませんが、ユーザーを区別するためにmod_usertrackを使用するか、セッション全体を要求する必要があります。また、リクエストのmimetypeとともに関連するCookieをログに記録する必要があります。つまり、標準を使用しなくなります。ログ形式。

利点として、同じ機構を使用すると、キャッシュの有効性とクリックストリーム分析(現在の世代のアナライザーのほとんどが得意ではない領域)を確認することもできます。

4
symcbean

では、Google Analyticsを使用しますか?私はそれを使用しました-うまく機能します。

1
atx

警告:このメソッドは、Webサーバーのパフォーマンスに言いようのない恐怖を呼び起こす場合と呼び出さない場合があります。


PHPまたは同様のスクリプト言語を実行している場合は、次のように、本当に、本当に醜いことをすることができます。

追跡するページのフッター:

<iframe src="/path/to/script.php?src=<?php echo htmlentities($_SERVER['REQUEST_URI']); ?>&user_ip=<?php echo $_SERVER['REMOTE_ADDR']; ?>" width="1" height="1" style="visibility:hidden;"></iframe>

「script.php」またはタイマースクリプトに名前を付けるために選択したもの:

 <?php
       if ( @isset( $_GET['src'] )
       {
           $source = filter_var( $_GET['src'], FILTER_SANITIZE_STRING );
       } else {
           /* no source page to track */
           die();
       }
       if ( @isset( $_GET['minute'] ) )
       {
           $minute = (int) $_GET['minute'] + 1;
       } else {
           $minute = 0;
       }
       $uri_refresh = ($_SERVER['HTTPS'] != 'on') ? 'http://' : 'https://';
       $uri_refresh .= $_SERVER['HTTP_Host'];
       $uri_refresh .= '/path/to/script.php';
       $uri_refresh .= '?src=' . $source;
       $uri_refresh .= '&user_ip=' . $_SERVER['REMOTE_ADDR'];
       $uri_refresh .= '&minute=' . $minute;
 ?>
 <html>
   <head>
     <meta http-equiv="refresh" content="60;url=<?php echo $uri_refresh; ?>">
     <title>Timed Logger</title>
   </head>
   <body style="color:#FFFFFF;">
     <p>You have been viewing this page for <?php echo $minute; ?> minutes.</p>
   </body>
 </html>

...そして、サーバーログ内のさまざまなminute値の相対的な人気を調べることで、人々が物事を表示している時間の大まかなアイデアを得ることができます。

1
danlefree

Nihuo Web Log Analyzer この機能をサポートします。無料ではありませんが、ウェブサイトに全機能を備えた30日間の無料評価版があります。

1
oldmonk