Есть ли способ определить количество времени, которое клиент проводит на веб-странице? - PullRequest
6 голосов
/ 02 октября 2008

Если у меня есть веб-сервер с открытым исходным кодом или прокси, который я могу улучшить, скажем, apache или squid.

Есть ли способ определить время, которое каждый клиент проводит на веб-странице?

HTTP, конечно, не имеет состояния, поэтому это не тривиально, но, возможно, у кого-то есть идея, как решить эту проблему?

Ответы [ 5 ]

5 голосов
/ 02 октября 2008

С Apache или Squid вы вряд ли сможете определить время, которое пользователь проводит на вашей странице.

Но добавив немного сахара на свою веб-страницу, вы можете:

Это бесплатно и имеет лот функций.

Но вы также пригласите Google посмотреть статистику вашего сайта ... (но, возможно, это поможет им решить, хотите ли вы купить вас: -))

4 голосов
/ 02 октября 2008

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

Мне интересно, почему ты так хочешь. Что если человек смотрит на веб-страницу в течение 3 секунд, отвлекается на другую вкладку / окно, но оставляет вашу страницу открытой в течение 2 часов? Ответ, который вы получите, составляет 2 часа, ответ, который вы (вероятно) хотите, составляет 3 секунды.

2 голосов
/ 02 октября 2008

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

Кроме того, просто подумайте: если вы не хотите пинговать сервер слишком часто, вы можете хранить данные в буфере в памяти и отправлять их на сервер только при наличии достаточного количества данных или непосредственно перед страницей. закрыты.

2 голосов
/ 02 октября 2008

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

Единственный способ узнать наверняка - использовать Javascript для пингования сервера с открытой страницы каждые десять секунд или около того, просто чтобы сказать: «Я все еще читаю!»

0 голосов
/ 02 октября 2008

Этот тип метрики был довольно популярен несколько лет назад, до того, как ПК стали более мощными, а браузеры с вкладками стали популярными, и их стало сложнее измерить. В прошлом стандартный способ сделать это состоял в том, чтобы предположить, что люди обычно загружают только одну страницу за раз, и просто используют данные журнала сервера, чтобы определить время между просмотрами страниц. Ваши стандартные поставщики аналитики, такие как Omniture и Urchin (теперь Google Analytics), рассчитывают это.

Обычно вы устанавливаете cookie-файл для отслеживания, чтобы иметь возможность идентифицировать конкретного человека / браузер с течением времени, но в краткосрочной перспективе вы можете просто использовать комбинацию IP-адрес / пользователь-агент.

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

Являются ли эти данные идеальными? Очевидно нет. Но вам просто нужно достаточно «достаточно хороших» данных, чтобы провести статистический анализ и сделать некоторые выводы.

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

Да, вы можете использовать Javascript для отправки keep-alive для улучшения данных. Вы можете просто опрашивать через заданные интервалы после document.onload или устанавливать события наведения курсора на разделы ваших страниц.

Другой способ - использовать Javascript для добавления события onclick к каждому <a href>, который попадает на ваш сервер. Мало того, что вы знаете, когда кто-то нажимает на ссылку, чтобы убрать его с вашего сайта, действительно сложный анализ «горячей точки» учитывает тот факт, что если кто-то щелкнул ссылку на 6 абзацев вниз по странице, то он должен был прочитать это далеко. *

...