2009-05-15 3 views
5

Stiamo cercando di capire come funziona il software di monitoraggio web comune, come Google Analytics.Come funzionano i cookie di tracciamento?

Abbiamo notato che molto codice di tracciamento Javascript da tutto il web crea più cookie sul sistema del visitatore, di solito tre cookie - uno che scade alla fine della giornata, uno che scade alla fine della settimana, e uno che scade alla fine del mese.

Il nostro team ha discusso perché questo è comune e abbiamo strappato i capelli per capire perché si potrebbe fare questo.

L'unica cosa che possiamo pensare è la prestazione: in questo modo è possibile calcolare se un visitatore si ripete al giorno, alla settimana o al mese senza dover fare spesso query pesanti sul database OLTP. Ma possiamo immaginare modi per farlo funzionare comunque.

Quali sono i vantaggi nel creare i cookie di tracciamento in questo modo e in che modo si pensa che vengano utilizzati da altri?

risposta

4

Probabilmente stanno utilizzando i cookie in questo modo per determinare la frequenza delle visite al dominio. Se visiti il ​​sito e nota che hai ancora il cookie che scade il giorno, allora è significativo in termini di frequenza delle visite. Se tutto quello che hai sono settimanali e mensili, allora è chiaro che non hai visitato il sito per almeno un giorno e per ultimo entro la settimana.

Non esiste una regola che dice che questo è l'unico modo per farlo. Si potrebbe tracciare con un singolo cookie e memorizzare le statistiche sul server.

+0

Sì, questo è quello che pensavamo. Deve essere solo per le prestazioni. – RibaldEddie

3

Domanda molto interessante. Penso che questa sia la soluzione allo hotel problem. Diamo un'occhiata da una prospettiva di query DB. Se un singolo cookie viene inviato all'utente (con data di scadenza ad esempio pari ad un anno), il numero di visite giornaliere per il sito sarebbe qualcosa di simile a questo:

SELECT COUNT(DISTINCT CookieId) FROM Visits 
WHERE VisitDate = '2009-01-01' AND SiteId = 548 

Con il sistema dei cookie multipla, è necessario memorizzare solo il numero di cookie emessi al giorno per sito e incrementarlo ogni volta che si invia un nuovo cookie:

SELECT NoOfVisits FROM Visits 
WHERE VisitDate = '2009-01-01' AND SiteId = 548 

Questo è un vantaggio prestazionale chiaro quando ha centinaia di milioni di cookie emessi ogni anno.

1

L'utilizzo di 3 cookie ciascuno per giorno, settimana e mese indica che il client sta inviando indietro 3 cookie per ogni richiesta, il che è chiaramente negativo dal punto di vista della larghezza di banda della rete e della latenza.

Quindi, è necessario disporre di un bilanciamento ... utilizzare un solo cookie se si preoccupa di più sulla latenza dell'utente rispetto all'utilizzo della CPU del server nel database, utilizzare il metodo 3 cookie se si cura di più sull'utilizzo della CPU del server rispetto latenza dell'utente.

La vera soluzione è quella di fare un ibrido: utilizzare solo un biscotto e poi alla fine di ogni giornata eseguire la prima query e memorizzare il risultato in una tabella o colonna separata, in modo che l'interfaccia statistiche deve solo query che risultato separato.