Sí, LO sé sobre Google Analytics. Lo utilizamos para nuestras métricas generales del sitio, y sé que podemos rastrear enlaces individuales. Sin embargo, necesitábamos una solución de seguimiento de enlaces muy específicas y necesitamos que el seguimiento de los datos disponibles para nuestra aplicación web en tiempo real , así que escribí mi propia solución:jQuery: haga clic en seguimiento con PHP
jQuery:
$.fn.track = function() {
var source, url, name, ref, $this;
$this = $(this);
if (window.location.search.substring(1) != '') {
source = window.location.pathname + "?" + window.location.search.substring(1);
} else {
source = window.location.pathname;
}
url = jQuery.URLEncode($this.attr('href'));
name = $this.attr('name');
ref = jQuery.URLEncode(source);
$this.live('click', function (click) {
click.preventDefault();
$.post('/lib/track.php', {
url: url,
name: name,
ref: ref
}, function() { window.location = $this.attr('href'); });
});
};
.. .utilizando el complemento jQuery URLEncode (http://www.digitalbart.com/jquery-and-urlencode/).
Ahora, este código funciona bien con mi back-end PHP y en mi máquina, pero no parece funcionar de manera confiable para todos los demás. A veces, los parámetros que se pasan a través de jQuery NO se pasan, lo que da como resultado un registro en la base de datos sin name
, url
o ref
.
Por mi vida, no puedo entender por qué esto podría estar pasando; Sé que el $.post
está activando, ya que hay registros en la base de datos (en PHP, también grabo la IP de la solicitud junto con la marca de tiempo), pero en muchos casos el script PHP está recibiendo variables en blanco $_POST
de jQuery.
Lo he probado en vivo en cada navegador al que tengo acceso en mi lugar de trabajo, y todos ellos funcionan bien para mí; sin embargo, aproximadamente el 75% de todos los registros creados (no por mis computadoras) vienen en blanco (la mayoría usa los mismos navegadores que yo).
¿Por qué podría estar pasando esto?
Obviamente usted ha invertido algún tiempo en esta solución, pero por si acaso; ¿Has visto Mixpanel? Dejando a un lado el costo, hace exactamente lo que parece que intentas hacer ... – Mathew