Как измерить время посещения пользователя - PullRequest
10 голосов
/ 24 августа 2009

Мне нравится измерять время, проведенное пользователем на конкретной странице моего веб-приложения. Сначала я подумал о том, чтобы перехватить событие onunload / onbeforeunload в браузере и уведомить сервер с помощью XMLHttpRequest, который пользователь покидает сейчас:

<body onunload="userLeaves('/url/to/current/page',xxx);" ...> ... </body>

где xxx - начальная отметка tiemstamp, когда страница была обработана.

К сожалению, это решение не работает во всех браузерах (например, Opera). Поэтому моей второй идеей было постоянно пинговать сервер. Чтобы рассчитать время посещения, кто-то должен взять время последнего пинга и вычесть его из начальной метки времени. Но я не думаю, что это хорошее решение, особенно когда пользователь открывает 3 или 5 вкладок, а каждая вкладка запускает события каждые 500 мс ...

как бы вы измерили время посещения? У кого-нибудь есть идея, чтобы получить время, потраченное на одну страницу?

Ответы [ 4 ]

3 голосов
/ 24 августа 2009

Подход, используемый такими инструментами, как Google Analytics, заключается в том, что время посещения измеряется как время, в течение которого пользователь нажимает на первую страницу, до времени, когда он нажимает на последнюю страницу в течение одного «посещения». Один визит определяется как серия просмотров страниц одним пользователем (cookie), где каждый визит достаточно близок к предыдущему по времени. Однако я не знаю, что это за предел.

По моему опыту, подобные уловки с событиями разгрузки и т. Д. Граничат с навязчивостью, и пользователи их не ценят. Как таковые, они не добавляют никакой пользы более пассивному подходу, такому как построение посещения с помощью файлов cookie и данных о просмотре страницы.

1 голос
/ 24 августа 2009

Я предлагаю практически любой пакет веб-аналитики в зависимости от некоторых ваших бизнес-целей.

  1. Google Analytics : (бесплатно)
  2. Yahoo Analytics : (бесплатно) (бета)
  3. Woopra : (бесплатно) (бета)
  4. Omniture : (дорого) (наиболее многофункциональный, сложный курс обучения)

[есть и другие, более приспособленные для отчетов по рекламной сети ...]

0 голосов
/ 24 августа 2009

Это зависит от того, сколько ошибок вы допустите. Если ошибка составляет порядка десятков минут, вам нужен только журнал посещений и установите интервал ожидания сеанса для последней страницы. Если вы разрешите только сотни миллисекунд, вам нужно будет пропинговать. Если ошибка где-то посередине, вам все равно нужно пинговать, хотя и с более низкой скоростью; или принять тот факт, что для пользователя, который выключил браузер, не будет запускаться событие onunload.

0 голосов
/ 24 августа 2009

Почему бы не взглянуть на Google Analytics, стандартное отслеживание будет собирать эту статистику для вас.

http://www.google.com/analytics/

...