На счет длительности визитов, тут сильно не посоветую. А вот за количество визитов, пожалуйста.
При первом заходе на сайт, ставите ему суперкуку, на месяц например, или на год.
1) Читаем суперкуку, или генерируем ее, если таковой не оказалось
2) Во все логи пробрасываем эту суперкуку.
3) При обработке логов ищем объект с этой суперкукой и наполняем его информацией, кто, когда, под каким именем. каким браузером или клиентом и т.д, Связываем пользователя с суперкукой.
Другими словами, у нас есть и суперкука и пользователь, и здесь не важно, зашел он в систему, вышел, перешел куда-то и т.д.
PS. На счем времени пребывания на сайте, сделайте ajax-таймер, который отрабатывает 5, 10, 30 сек и 1, 3, 5 мин, стучась на эндпоинт, а суперкука будет в комплекте с запросом. Таким способом даже ботов ловить можно, которые без JS работают (которые с JS тоже ловятся),