estoy seguimiento de la Descargar botón clic en un sitio web que ofrece un proyecto mío con este código:Seguimiento de un botón de descarga, haga clic con Analytics mediante eventos
function trackDownload(link) {
try {
_gaq.push(['_trackEvent', 'Downloads', 'Click', 'Setup executable']);
setTimeout('document.location = "' + link.href + '"', 100);
} catch (err) {}
return false;
}
y el botón es algo como:
<a href="files/setup.exe" onclick="return trackDownload(this);">Download</a>
Por lo tanto, cuando un usuario hace clic en él, se envía un evento a Analytics y luego se redirecciona al usuario al archivo.
Esto también se aplica en seguimiento de enlace externo, no hay diferencias.
Y ahora mi pregunta. ¿Puedo estar seguro de que el evento de Analytics se "procesa" antes de redirigir al usuario? Si no, ¿esa redirección hace que el evento se pierda? Actualmente se están realizando un seguimiento de los eventos, pero no puedo estar seguro de que todos sean.
leí también puedo probar algo un poco diferente, empujando la función de redirección en la cola Analítica:
_gaq.push(function() { document.location = link.href; });
Pero no está claro si esto funciona o si es sólo equivalente a la anterior. De hecho, here se dice que "las llamadas a _gaq.push [...] ejecutan comandos a medida que se presionan".
Tal vez pueda empujar la redirección en '_gaq' como publiqué, y luego repetirla en el bloque' catch' y en un 'setTimeout' más demorado (uno o dos segundos). Entonces, si algo sale mal con '_gaq', puedo estar seguro de que el usuario será redirigido tarde o temprano. –
Acepto que un setTimeout retrasado es la forma de manejar el caso sin análisis.Sin embargo, creo que uno o dos segundos probablemente sea un poco rápido. Además, me acabo de dar cuenta de que no es necesario el bloque catch: actualizaré mi respuesta. –
De hecho, no recuerdo por qué puse ese bloque 'try..catch' :) Acerca del tiempo de espera: Puedo configurar uno más largo (5 segundos) y un control giratorio en el botón cuando hago clic. Entonces, el usuario más rápido no tendrá la sensación de que no está pasando nada ... –