Szukam śledzić średni czas użytkowników na stronie internetowej (w taki sam sposób, jak Google Analytics) dla wewnętrznej administracji.Jak śledzić czas użytkownika na stronie
Jaki jest najprostszy sposób to zrobić?
Szukam śledzić średni czas użytkowników na stronie internetowej (w taki sam sposób, jak Google Analytics) dla wewnętrznej administracji.Jak śledzić czas użytkownika na stronie
Jaki jest najprostszy sposób to zrobić?
można uzyskać czas w kolejnych sposobów:
Jeśli potrzebujesz, mogę napisać przykładowy skrypt.
UPDATE:
<!DOCTYPE html>
<html>
<head>
<title>Collect time</title>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(function()
{
var start = null;
$(window).load(function(event) {
start = event.timeStamp;
});
$(window).unload(function(event) {
var time = event.timeStamp - start;
$.post('/collect-user-time/ajax-backend.php', {time: time});
})
});
</script>
</head>
<body>
</body>
</html>
I skrypt backend:
<?php
$time = intval($_POST['time']);
if (!file_exists('data.txt')) {
file_put_contents('data.txt', $time . "\n");
} else {
file_put_contents('data.txt', $time . "\n", FILE_APPEND);
}
Ale jak powiedziałem wouldn`t to działa w przeglądarce Opera
to 'window.onunload' – jordanstephens
tak, masz rację - popełniłem błąd, przepraszam –
Niesamowite, dziękuję za pomoc - chciałbym zobaczyć scenariusz, jeśli masz czas napisać szybką? Czy mogę użyć page.unload na całej domenie? – Walker
głównym sposobem mogę myśleć:
Gdy użytkownik po raz pierwszy uderza w stronę logowania, na przykład, ich adres IP strona załadowany, a czas. Następnie, używając niektórych Javascript i AJAX, po opuszczeniu strony, używasz zdarzenia unload
do wysyłania do obsługi AJAX, która rejestruje stronę i kiedy wychodzą.
Musisz użyć identyfikatora, oprócz sesji, aby zapisać odwiedziny strony. Załóżmy, że mam otwartych 5 wystąpień strony głównej. Każdy z nich powinien być rejestrowany indywidualnie. Tak, coś takiego:
index.php
: 2345
)Jeśli odwiedzają index.php
ponownie wygenerujesz inny kod, powiedzmy, 36789
. Użyj czegoś, co generuje losowy identyfikator GUID, najlepiej, więc możesz (zasadniczo) zignorować wszelkie możliwości kolizji na tej samej kombinacji adresu IP/strony/kodu.
Co zrobisz, jeśli w przeglądarce Opera wydarzenie rozładowania nie działa? –
@DimaKrasun Nie zdaję sobie sprawy, że to byłby problem. Pomyślałem, że jest obsługiwany we wszystkich przeglądarkach, ale w ogóle nie poruszyłem Opery. Naucz się czegoś nowego każdego dnia. – Tarka
Tam naprawdę nie jest skutecznym sposobem w PHP, ponieważ PHP jest po stronie serwera i nie ma możliwości określenia, kiedy strona została zamknięta. Aby to ustalić, musisz użyć javascript.
Co mogę zrobić, to użyć javascript, aby uruchomić timer na window.onload
, a następnie zakończyć timer na window.onunload
. Następnie możesz przechowywać dane i robić to, co chcesz.
$ (window) .unload to bardzo dobra funkcja do śledzenia użytkownika opuszczającego stronę.
ale jeden punkt jest, gdy okno zwolnić wysłać ajax czasami to działa, ajax nie jest skończony, gdy użytkownik opuszcza stronę. więc musisz dodać jeden atrybut (async: false) do ajax, kod jest cios:
$.ajax({
type: 'POST',
async: false,
url: '/collect-user-time/ajax-backend.php',
data: {time: time}
});
Nie możesz użyć danych Google Analytics? – ChrisF
Istnieje już kilkanaście pakietów, które to robią. Nie wymyślaj ponownie koła, jeśli nie musisz. Spójrz na webalizer, awstats, urchin, itp. Jest to w rzeczywistości niebanalny problem. Określenie "czasu na stronie" wymaga pewnych założeń, ponieważ wiadomo tylko, kiedy przeglądarka żąda treści, a nie kiedy użytkownik zamyka okno, przechodzi do zdalnego serwisu itp. –
Oferujemy tablicę zadań, która umożliwia administratorom przyjście i przejąć kontrolę nad określonymi segmentami bazy użytkownika, a my chcemy zapewnić dla nich analizę administracyjną. – Walker