Cambiar el nombre del objeto ga

En algunos casos, tal vez quieras agregar analytics.js a tu página, pero la variable ga ya se está usando con otro fin. En esta situación, analytics.js proporciona un mecanismo para cambiar el nombre del objeto ga global.

Cambiar el nombre del objeto global en el fragmento de seguimiento

El fragmento de seguimiento JavaScript permite cambiar el nombre del objeto ga global modificando el parámetro final. También deberás actualizar todas las invocaciones de la cola de comandos y cambiar ga() por otro nombre que elijas.

Por ejemplo, si quisieras cambiar el nombre del objeto ga a analytics, podrías modificar el fragmento de seguimiento de este modo:

<!-- Google Analytics -->
<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','analytics');

analytics('create', 'UA-XXXXX-Y', 'auto');
analytics('send', 'pageview');
</script>
<!-- End Google Analytics -->

Cambiar manualmente el nombre del objeto global

El nombre del objeto global se puede cambiar porque analytics.js, cuando se carga, busca una cadena almacenada en una variable global llamada GoogleAnalyticsObject. Si la encuentra, utiliza el nombre de la cadena como el nuevo nombre de la cola de comandos global.

Si cargas analytics.js y no utilizas el fragmento de seguimiento, puedes cambiar el nombre del objeto global indicando en la variable GoogleAnalyticsObject el nombre que quieres usar antes de que se cargue la biblioteca analytics.js.

Por ejemplo, si utilizas el método $.getScript de jQuery para cargar analytics.js, podrías cambiar el nombre del objeto global con el código siguiente:

<script>
// Instructs analytics.js to use the name `analytics`.
window.GoogleAnalyticsObject = 'analytics';

// Uses jQuery to load analytics.js instead of the tracking snippet.
$.getScript('//www.google-analytics.com/analytics.js', function() {

  // Creates a tracker and sends a pageview using the renamed command queue.
  analytics('create', 'UA-12345-1', 'auto');
  analytics('send', 'pageview');
});
</script>

Fragmento de seguimiento asíncrono alternativo

A diferencia del fragmento de seguimiento JavaScript estándar, el fragmento de seguimiento asíncrono alternativo no ofrece un sistema predeterminado para cambiar el nombre del objeto global ga.

Sin embargo, con la técnica descrita anteriormente, puedes cambiar el nombre del objeto global ga y seguir disfrutando de las ventajas de precarga del fragmento de seguimiento alternativo.

La siguiente versión modificada del fragmento de seguimiento asíncrono alternativo configura la variable GoogleAnalyticsObject como analytics y también cambia el nombre de todas las veces que aparece ga por analytics:

<!-- Google Analytics -->
<script>

// Instructs analytics.js to use the name `analytics`.
window.GoogleAnalyticsObject = 'analytics';

// Creates an initial analytics() function.
// The queued commands will be executed once analytics.js loads.
window.analytics = window.analytics || function() {
  (analytics.q = analytics.q || []).push(arguments)
};

// Sets the time (as an integer) this tag was executed.
// Used for timing hits.
analytics.l = +new Date;

// Creates a default tracker with automatic cookie domain configuration.
analytics('create', 'UA-12345-1', 'auto');

// Sends a pageview hit from the tracker just created.
analytics('send', 'pageview');
</script>

<!-- Sets the `async` attribute to load the script asynchronously. -->
<script async src='//www.google-analytics.com/analytics.js'></script>
<!-- End Google Analytics -->