Назад | Перейти на главную страницу

Анализатор журнала, который вычисляет «время на странице»?

Мне нужно получить представление о среднем «времени на странице» или «продолжительности просмотра страницы» для каждой страницы на моих веб-сайтах без сценариев на стороне клиента (например, с использованием onunload обработчик события).

Способен ли на это какой-либо из бесплатных анализаторов журналов? Я посмотрел на Webalizer, AWStats и Analog, но, похоже, у них нет такой функции. В AWStats самое близкое значение - «продолжительность посещений», но я бы хотел вместо этого видеть «продолжительность просмотра страницы».

Я знаю, что отслеживание посетителей будет неточным без сценариев на стороне клиента, но я терплю это. Google Analytics, похоже, предоставляет показатель "время на странице" без привязки к onunload событие (но поправьте меня, если я ошибаюсь), поэтому я считаю, что это возможно.

Я рекомендую вам аналоговая документация о том, что можно и чего нельзя узнать из ваших веб-журналов, особенно ту часть, где автор пишет:

Вы не можете сказать, сколько времени люди потратили на чтение каждой страницы. Еще раз, вы не можете сказать, какие страницы они читают между последовательными запросами страниц. Возможно, они читают некоторые страницы, которые [кэшировали] ранее. Они могли перейти по ссылке с вашего сайта, а затем вернуться позже. Они могли бы прервать чтение ради быстрой игры в «Сапер». Вы просто не знаете.

Вы не можете сказать, сколько времени люди провели на вашем сайте. Помимо проблем, описанных в предыдущем пункте, есть еще одно полное препятствие. Программы, которые сообщают о времени на сайте, считают время между первым и последним запросом. Но они не учитывают время, проведенное на последней странице, а это часто составляет большую часть всего посещения.

Стивен Тернер, автор аналога, умный парень, бывший статистик из Кембриджа, и я склонен с ним согласиться. Он оправдывает свои аргументы в ссылке, которую я отправил выше.

Аналог расскажет вам, что определенно можно узнать из вашей веб-статистики, и расскажет очень быстро. Попытка получить больше - это догадки, и если вы хотите угадать, зачем платить кому-то еще за это? Генераторы случайных чисел стоят пять пенни, поэтому используйте один из них.

Как писал Мэдхаттер, использование журналов для получения этой информации не даст точной картины. Кроме того, как и в случае с большинством статистических данных, вам придется потратить много времени думать о том, что вы на самом деле измеряете - люди проводят время на странице, потому что она интересна или потому, что ее трудно понять? Захват данных в javascript будет вести себя совершенно иначе, чем просмотр журналов (подумайте, что происходит, когда у пользователя открыто несколько окон).

AFAIK, нет доступных инструментов, коммерческих или бесплатных, которые бы выполняли такой анализ, включая Google Analytics (малфи: можешь ссылочку дать?). Тем не менее, написание собственного файла не слишком обременительно - но вам, безусловно, нужно будет использовать mod_usertrack или требовать сеансов повсюду, чтобы различать пользователей - и регистрировать соответствующий файл cookie вместе с mimetype для запроса - что означает, что вы больше не используете стандартный форматы журнала.

С другой стороны, тот же механизм также позволяет вам начать анализировать эффективность кеширования и анализ трафика (а также те области, в которых большинство анализаторов текущего поколения плохо справляются).

Анализатор веб-журналов Nihuo поддерживают эту функцию. Это не бесплатно, но на их веб-сайте есть 30-дневная бесплатная ознакомительная версия с полной функциональностью.

Предупреждение: Этот метод может вызвать, а может и не вызвать невыразимые ужасы производительности вашего веб-сервера.


Если вы используете 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 значения в журналах вашего сервера.

Так что использовать Google Analytics? Использовал - отлично работает.