Как определить время на сайте в Javascript? - PullRequest
8 голосов
/ 26 февраля 2009

Google Analytics отслеживает «Время на сайте». Как бы вы сделали это эффективно? Отслеживает ли он, когда пользователь закрывает браузер или уходит?

Мысли

Ответы [ 5 ]

4 голосов
/ 26 февраля 2009

Конечно, я не могу быть уверен на 100%, но я предполагаю, что они используют javascript, события onload и onunload и / или setTimer для связи с веб-сервисом через AJAX. Таким образом, они могут выяснить, когда пользователи переходят на страницу вашего сайта или покидают ее. Когда браузер перестает «пинговать» веб-службу, предполагается, что они покинули ваш сайт.

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

3 голосов
/ 24 ноября 2009

Существует событие javascript с именем onBeforeUnload, которое выполняется, когда пользователь покидает страницу. Это может включать закрытие окна / вкладки или переход на другую страницу (даже если она находится на том же сайте). Получая время сразу после загрузки страницы и используя JavaScript для отправки синхронного запроса onBeforeUnload с разницей во времени между загрузкой и уходом, вы можете эффективно отслеживать время, проведенное на странице. Я бы предположил, что это то, что делает Google.

Если вам нужны примеры рабочего кода и немного больше информации, отметьте this out.

3 голосов
/ 26 февраля 2009

Просто установите функцию так:

function track()
{
   setTimeout(track ,1000);
   now = new Date;
   now_string = now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds();
   (... whatever you want to do with this data)
}

В javascript вы получите строку с надписью HH: MM: SS или H: M: S, если число часов / минут / секунд меньше 2 символов

Так что просто сделайте немного математики вокруг него

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

Редактировать: пришлось удалить функцию, которая была у меня там, которая была моей, и она не из JavaScript sry: p

2 голосов
/ 26 февраля 2009

Я не думаю, что он отслеживает, когда вы закрываете браузер или уходите, и даже если это так, это не работает в 100% случаев.

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

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

1 голос
/ 26 февраля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...