Отслеживание времени пользователей на сайтах / веб-приложениях

У меня есть требование отслеживать, сколько времени пользователь тратит на веб-сайты / веб-приложения. Это как инструмент отслеживания времени для веб-сайтов, у меня есть приложение wpf, которое открывает веб-сайты в IE/Chrome/Firefox. Мне нужно отследить, сколько времени пользователь работает на сайте.

Chrome и Firefox предоставляют историю, которую я могу получить из базы данных sqlite, которая хранится в пользовательской системе, но IE не предоставляет никакой информации об истории.

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

1 ответ

У меня есть приложение wpf, которое будет открывать сайты в IE/Chrome/Firefox. Мне нужно отслеживать, сколько времени пользователь работает на сайте

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

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

Посмотрите на следующий код (используйте последнюю версию, а не просто копируйте/вставляйте),

      <head>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/timeonsite/1.2.0/timeonsitetracker.js"></script>

<script>
var config = {
    // track page by seconds. Default tracking is by milliseconds
    trackBy: 'seconds',

    trackHistoryChange: true, //Single-page React/Angular app

    callback: function(data) { /* callback denotes your data tracking is real-time */
        console.log(data);
        var endPointUrl = 'http://example.com' //Replace with your actual backend API URL http://localhost/tos
        if (data && data.trackingType) {
            if (data.trackingType == 'tos') {
                if (Tos.verifyData(data) != 'valid') {
                    console.log('Data abolished!');
                    return; 
                }
            }

            // make use of sendBeacon if this API is supported by your browser.
            if (navigator && typeof navigator.sendBeacon === 'function') {
                data.trasferredWith = 'sendBeacon';
                var blob = new Blob([JSON.stringify(data)], {type : 'application/json'});
                navigator.sendBeacon(endPointUrl, blob);
            }
        }
    }
};
var Tos;
if (TimeOnSiteTracker) {
    Tos = new TimeOnSiteTracker(config);
}
</script>

</head>

Затем, когда вы обновляете, перезагружаете или перемещаетесь по странице приложения React,

Вы увидите следующий объект, сохраненный непосредственно в вашей таблице/распечатанный в консоли браузера. Выберите «сохранить» в журналах,

      {
    TOSId: 1129620185532,
    TOSSessionKey: "14802525481391382263",
    TOSUserId: "anonymous",
    title: "Test application - Home page",
    URL: "http://nature-blogs/pages/home.php"
    entryTime: "2021-11-27 13:15:48.663",
    currentTime: "2021-11-27 13:17:31.663",
    timeOnPage: 103,
    timeOnSite: 103,
    timeOnPageTrackedBy: "second",
    timeOnPageByDuration: "0d 00h 01m 43s",
    timeOnSiteByDuration: "0d 00h 01m 43s",
    trackingType: "tos",
}

Как видите, действия

  • "entryTime" фиксируется
  • «exitTime» фиксируется в секундах/миллисекундах в зависимости от конфигурации
  • «тип: time_on_site» захвачен
  • «timeOnPage» фиксируется // время отдельной страницы
  • «timeOnSite» фиксируется // общее время страницы сеанса

Что еще вам нужно? Поскольку он хранится в таблице базы данных SQL, вы можете самостоятельно выполнять запросы анализа/отчетности. Это работает в любой СУБД без проблем.

Кроме того, 1.Вкладка «Свернуть», 2.Неактивная вкладка и 3.Вкладка «Переключение» автоматически вычисляются и игнорируются самим трекером.

Единственное, что следует отметить в части конфигурации,

      trackHistoryChange: true

Если маршрутизация страницы зависит от хэша местоположения или также известна как одностраничное приложение, включите этот параметр. С другой стороны, если ваше веб-приложение представляет собой обычную страницу, такую ​​как Википедия, избегайте установки этой строки. Вы сделали. Чтобы показать время пребывания в режиме реального времени на экране, проверьте этот пост SO . Он использует Jquery для отображения результатов. Вы можете настроить его для своего приложения React.

Этот трекер можно подключить к любой библиотеке VueJs, React, Angular, Jquery, MooTools и т. д., поскольку это обычная JS-библиотека.

Дайте мне знать, если вам нужна дополнительная информация по этому вопросу. Я могу помочь вам в этом.

Другие вопросы по тегам