javascript - cookies google analytics
Google Analytics: múltiples rastreadores en una página(conflicto de cookies) (9)
Ahora es más fácil con el nuevo código de seguimiento asíncrono. :)
https://developers.google.com/analytics/devguides/collection/gajs/#MultipleCommands
Estoy escribiendo una aplicación web que se supone que debe estar integrada en los sitios web de otras personas (una especie de artilugio). Estoy usando Google Analytics para rastrear a todas las personas que visitan todas las instancias de mi script en los sitios web incrustados. El problema es que no sé cómo usarlo para que no interfiera con las cuentas propias de Google Analytics de esos sitios web. Estoy almacenando la variable de seguimiento en un espacio de nombres, así que pensé que debería hacerlo, pero no me he dado cuenta de que GA almacena su configuración en cookies (__utma, __utmz, etc.), y esos dos usuarios utilizan esas cookies, si hay dos de ellos en la misma página ... Así que, por ejemplo, si uso _setVar para almacenar algún tipo de variable definida por el usuario en Google Analytics, y el sitio de inserción hace lo mismo, sobrescribimos los valores de los demás ...
Por supuesto, sería más fácil si Google proporcionara una forma de cambiar el nombre de las cookies por una personalizada, pero no puedo encontrar ninguna forma de hacerlo. Pensé en usar el dominio de cookies o la ruta para forzar una cookie por separado, pero esto no funciona, porque si configuro el dominio o la ruta a algo que no sea el dominio / ruta real, entonces la cookie no es legible para la página después de volver a cargar. ..
¿Alguien sabe una forma de tener dos rastreadores en una página y hacer que utilicen cookies separadas para que no sobrescriban las configuraciones de los demás?
O, si eso es completamente imposible, ¿hay algún otro servicio analítico con funcionalidad similar a GA en la que esto sea posible? (Tendría que tener características avanzadas como el seguimiento de eventos y campañas ...)
De acuerdo con la documentación listada por Török, parece que la respuesta correcta es usar _setCookiePath . Esto hace que cada rastreador use cookies completamente diferentes.
Código de ejemplo del sitio web:
<script type=”text/javascript”>
var pageTracker = _gat._getTracker(”UA-11111-1″);
pageTracker._setDomainName(’domain.com’);
pageTracker._setCookiePath(’/subdirectory/’);
pageTracker._trackPageview();
var otherTracker = _gat._getTracker(”UA-22222-1″);
otherTracker._setDomainName(’domain.com’);
otherTracker._trackPageview();
</script>
Cuando se vincula de un dominio a otro, cada enlace que se publica en el otro dominio tiene que verse así:
<a href="pageTracker._linkByPost(''otherdomain.com/petStoreCart/legalTerms.php'');"
Esto agregará valores de cadena de consulta específicos de Google Analytics que serán utilizados por la secuencia de comandos anterior para establecer la cookie ( source ).
En caso de que alguien todavía tenga este problema y quiera pegar fácilmente, mi problema fue usar mi propio rastreo de Google para mi código que se estaba agregando a las páginas de otras personas que también podrían estar usando el seguimiento de Google. He probado esto y confirmo que funciona como se esperaba:
var _gaq = _gaq || [];
_gaq.push([''some_unique_name._setAccount'', ''UA-xxxxxxxx-1'']);
_gaq.push([''some_unique_name._trackPageview'']);
(function() {
var ga = document.createElement(''script''); ga.type = ''text/javascript''; ga.async = true;
ga.src = (''https:'' == document.location.protocol ? ''https://ssl'' : ''http://www'') + ''.google-analytics.com/ga.js'';
var s = document.getElementsByTagName(''script'')[0]; s.parentNode.insertBefore(ga, s);
})();
Estoy usando también el uso de eventos
_gaq.push([''some_unique_name._trackEvent'', ''Event Category'', ''Event Action'', ''Event Label'']);
Si alguien ve un problema con él, házmelo saber.
He usado esta estructura en nuestros sitios y sitios de clientes y funciona como un encanto ...
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src=''" + gaJsHost + "google-analytics.com/ga.js'' type=''text/javascript''%3E%3C/script%3E"));
</script> <script type="text/javascript">
try {
//Original tracking
var pageTracker_ORIG = _gat._getTracker("UA-XXXXXXX-1");
pageTracker_ORIG._setDomainName(''.sleepinggiantmedia.co.uk'');
pageTracker_ORIG._trackPageview();
//New Analytics tag
var pageTracker_SGM = _gat._getTracker("UA-XXXXXXX-1");
pageTracker_SGM._setDomainName(''.sleepinggiantmedia.co.uk'');
pageTracker_SGM._trackPageview();
} catch(err) {}
No es necesario utilizar diferentes nombres de cookies, ya que Google Analytics funciona felizmente con varios rastreadores en la misma página. Consulte las respuestas a la pregunta Google Analytics: ¿múltiples rastreadores para varias cuentas? .
Actualizar
Resulta que usar múltiples rastreadores es un método de trabajo, pero tiene algunos inconvenientes . Uno de ellos, es decir, no puede aplicar una segmentación de usuario diferente para cada uno de ellos. John Henson demuestra una solución alternativa que obliga a GA a usar cookies diferentes , puede ser que usted debería verificarlo.
Parece que Google recomienda en contra de esta práctica:
La instalación de múltiples instancias del código de seguimiento de Google Analytics en una sola página web no es una implementación compatible. Sugerimos que elimine todas las instancias excepto una, y asegúrese de tener el código del perfil correcto instalado en cada página que desea rastrear.
https://support.google.com/analytics/bin/answer.py?hl=en-GB&answer=1032400
Puede instalar varias instancias del código de seguimiento de Google Analytics en sus páginas web para enviar datos a múltiples propiedades en su cuenta. https://support.google.com/analytics/answer/1032400?hl=en
O puede ser creativo y hacer lo siguiente según las instrucciones de Google. https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#multipletrackers
<script>
(function(i,s,o,g,r,a,m){i[''GoogleAnalyticsObject'']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,''script'',''//www.google-analytics.com/analytics.js'',''ga'');
ga(''create'', ''UA-XXXX-Y'', ''auto'');
ga(''create'', ''UA-XXXX-Y'', ''auto'', {''name'': ''newTracker''});
ga(''send'', ''pageview'');
ga(''newTracker.send'', ''pageview'');
</script>
Esta persona está teniendo el mismo problema en la ayuda de Google Analytics de cuatro meses. Sugeriría echarle un vistazo al hilo. Pero regularmente GA no admite múltiples rastreadores.
Me gusta Clicky , pero cuesta dinero.
var otherTracker = _gat._getTracker(”UA-22222-1″);
otherTracker._setDomainName(’domain.com’);
otherTracker._trackPageview();