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

StackOverflow https://stackoverflow.com/questions/161994

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

Но с небольшим количеством дополнительного сахара на вашей веб-странице вы можете:

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

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

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

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

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

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

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

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

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

Являются ли эти данные идеальными? Очевидно нет. Но вам просто нужно достаточно & Quot; достаточно хорошо & Quot; Данные сделать статистический анализ и сделать некоторые выводы.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top