Как определить Время пребывания на Сайте в Javascript?

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

  •  09-09-2019
  •  | 
  •  

Вопрос

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

Мысли?

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

Решение

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

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

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

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

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

Просто установите функцию, подобную этой:

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

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

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

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

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

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