2009-08-24 9 views
10

Mi piace misurare il tempo trascorso da un utente su una pagina particolare della mia webapp. In primo luogo ho pensato di prendere l'evento onunload/onbeforeunload nel browser e comunicare al server tramite XMLHttpRequest che l'utente sta lasciando ora piace:Come misurare il tempo di visita di un utente

<body onunload="userLeaves('/url/to/current/page',xxx);" ...> ... </body> 

dove xxx è il tiemstamp inital quando la pagina è stata resa.

Sfortunatamente questa soluzione non funziona in tutto il browser (ad esempio Opera). Quindi la mia seconda idea era di fare il ping del server costantemente. Per calcolare il tempo di visita qualcuno deve prendere l'ultima volta ping e sottrarla dal timestamp iniziale. Ma non penso che sia una buona soluzione, soprattutto quando un utente ha aperto 3 o 5 schede e ogni scheda attiva eventi ogni 500 ms ...

come si misura il tempo di visita? qualcuno ha un'idea migliore per ottenere il tempo speso su una pagina in particolare?

+0

come ha fatto anni finisci per farlo? Sto anche pensando al ping del server – brauliobo

risposta

3

L'approccio utilizzato da strumenti come Google Analytics è che il tempo di visita è misurato come il tempo in cui l'utente ha colpito la prima pagina al momento in cui ha colpito l'ultima pagina all'interno di una singola "visita". Una singola visita è definita come una serie di visualizzazioni di pagina da parte di un utente (cookie) in cui ogni visita è sufficientemente vicina al precedente nel tempo. Non so però quale sia questo limite.

Nella mia esperienza, questi tipi di trucchi con eventi di scaricamento e così via sono al limite dell'essere invadenti e gli utenti non li apprezzano. In quanto tali, aggiungono poco o nessun valore a un approccio più passivo come la costruzione di una visita dai cookie più i dati di visualizzazione della pagina.

0

Dipende da quanto l'errore si sarebbe permettere. Se l'errore è nell'ordine di decine di minuti, è necessario solo un registro delle visite e impostare l'intervallo di timeout della sessione per l'ultima pagina. Se si accettano solo centinaia di millisecondi, è necessario eseguire il ping. Se l'errore è nel mezzo, è comunque necessario eseguire il ping, anche se con una frequenza inferiore; o accetta il fatto che per un utente che spegne il browser non si attiva l'evento onunload.

1

Suggerisco quasi tutti i pacchetti di analisi Web a seconda di alcuni dei vostri obiettivi aziendali.

  1. Google Analytics: (gratuito)
  2. Yahoo Analytics: (gratuito) (beta)
  3. Woopra: (gratuito) (beta)
  4. Omniture: (costoso) (più ricco di funzionalità, curva di apprendimento difficile)

[ce ne sono altri, un po 'più su misura per rete pubblicitaria di riferimento ...]