sto tracciamento della Scarica scatto del tasto su un sito web con un mio progetto con questo codice:Monitoraggio di un pulsante per il download fare clic Analytics che utilizzano eventi
function trackDownload(link) {
try {
_gaq.push(['_trackEvent', 'Downloads', 'Click', 'Setup executable']);
setTimeout('document.location = "' + link.href + '"', 100);
} catch (err) {}
return false;
}
e il pulsante è qualcosa come:
<a href="files/setup.exe" onclick="return trackDownload(this);">Download</a>
Così, quando un utente fa clic su di esso, un evento viene inviato ad Analytics e quindi l'utente viene reindirizzato al file.
Questo è applicabile anche al rilevamento di collegamento esterno , nessuna differenza.
E ora la mia domanda. Posso essere sicuro che l'evento Analytics sia "elaborato" prima che l'utente venga reindirizzato? In caso contrario, tale reindirizzamento causa la perdita dell'evento? eventi Attualmente vengono monitorati, ma non posso essere sicuro che tutte di loro sono.
ho letto posso anche provare qualcosa di un po 'diverso, spingendo la funzione di reindirizzamento in coda Analytics:
_gaq.push(function() { document.location = link.href; });
ma non è chiaro se questo funziona o se è solo equivalente a quello precedente. Infatti, here si dice che le chiamate "" a _gaq.push [...] eseguano comandi mentre vengono "".
Forse posso spingere il reindirizzamento nel '_gaq' come ho postato, e poi ripeterla nel blocco' catch' e in modo più ritardato 'setTimeout' (uno o due secondi). Quindi se qualcosa va storto con '_gaq', posso essere sicuro che l'utente verrà reindirizzato prima o poi. –
Concordo sul fatto che un setTimeout ritardato è il modo di gestire il caso non analitico.Tuttavia, penso che uno o due secondi sia probabilmente un po 'veloce. Inoltre, ho appena notato che il blocco catch non è necessario - aggiornerò la mia risposta. –
In effetti, non ricordo perché ho messo il blocco 'try..catch' :) A proposito del timeout: posso fare uno più lungo (5 secondi) e uno spinner sul pulsante quando si fa clic. Quindi l'utente più veloce non avrà la sensazione che non stia accadendo nulla ... –