Существует два метода измерения Время на странице и его совокупный аналог Время на сайте , различается используемыми маркерами для записи пар время-событие:
Отметка времени
пинг на основе
Google Analytics, для экземпляров использует первое, в частности, GA записывает временную метку для каждого просмотра страницы , события и транзакции , которые происходят в пользователе сессия.
Таким образом, в точности как вы указали в своем вопросе, Google Analytics вычисляет время на сайте, суммируя дельты меток времени для всей истории сеансов этого пользователя. Для последней страницы в сеансе пользователя нет отметки времени, поэтому окончательная дельта времени не рассчитывается.
Это вносит ошибку в метрику времени на месте, но я все еще думаю, что это лучший доступный выбор метода измерения. Техника проста для объяснения и, следовательно, проста для точного понимания, где происходит событие и в каком направлении оно влияет на указанную метрику. Другими словами, вы знаете, что время на сайте всегда занижено.
Во-вторых, эту ошибку можно оценить (т.е. оценить истинное время на сайте), потому что у вас есть надежное время на странице для каждой другой страницы в посещении пользователя. Более того, из вашего числа посетителей сайта у вас есть данные о среднем времени на странице для конкретной страницы, которую пользователь посещал последним в своей сессии.
Другая группа методов измерения времени на странице на основе пинга . Здесь javascript на странице неоднократно вызывает через заданный промежуток времени функцию, которая пингует сервер. Фрагмент javascript на странице вызывает эту функцию проверки связи, пока эта страница открыта в клиентском браузере.
Возможно, ключевым преимуществом этих методов является то, что они решают проблему не считая времени, которое пользователь провел на странице, на которой он закончил свою сессию. Я полагаю, что основным недостатком методов на основе ping является более высокая стоимость реализации. Точность этого метода зависит, конечно, от частоты пинга - средняя точность измерения составляет примерно половину частоты пинга. Если ваша частота пинга составляет 10 секунд, вы можете разрешить время на странице в среднем до 5 секунд. Но любая серверная деятельность связана с затратами на ресурсы, поэтому этот параметр, т. Е. Частоту пингов, необходимо тщательно оптимизировать. Вот что я имею в виду под «более высокой стоимостью реализации».
Недавнее сообщение в блоге Брайана Крэя обсуждает такое решение и предоставляет фрагмент кода javascript для этой цели. Кроме того, Episodes - это библиотека javascript для точного измерения событий javascript (а не DOM). Это может быть полезно для вашего аналитического проекта.
Так какой из этих двух методов лучше? Я подозреваю, что умная комбинация этих двух даст вам самое высокое разрешение с наименьшим весом страницы и нагрузкой на сервер. Единственное известное мне аналитическое приложение, которое реализует такую гибридную систему: W3Counter . [ Примечание: я не имею никакого отношения или соглашения с этим Проектом .]
Я не использовал W3Counter, но, основываясь на одной только этой функции, я считаю, что это стоит рассмотреть. (Однако мне не нравится название «W3Counter», которое заставляет меня думать, что это проверка проверки.)