Rinomina l'oggetto GA

In alcuni casi, potresti voler aggiungere analytics.js alla tua pagina, ma la variabile ga è già in uso per qualcos'altro. Per risolvere questo problema, analytics.js fornisce un meccanismo per rinominare l'oggetto ga globale.

Rinomina l'oggetto globale

Il tag Google Analytics ti consente di rinominare l'oggetto ga globale modificando il parametro finale passato alla funzione minimizzata. Dovrai inoltre aggiornare tutte le chiamate alla coda di comando da ga() a qualsiasi nome tu scelga.

Ad esempio, se vuoi rinominare l'oggetto ga in analytics, puoi modificare il tag nel seguente 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 -->

Ridenominazione manuale dell'oggetto globale

La ridenominazione dell'oggetto globale funziona perché analytics.js, quando viene caricato, cerca una stringa archiviata in una variabile globale denominata GoogleAnalyticsObject. Se trova questa variabile, utilizza il nome della stringa come nuovo nome per la coda dei comandi globale.

Ad esempio, se stai utilizzando il metodo $.getScript di jQuery per caricare analytics.js, puoi rinominare l'oggetto globale con il seguente codice:

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

// Use jQuery to load analytics.js.
$.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>

Il tag asincrono alternativo

A differenza del tag standard di Google Analytics, il tag asincrono alternativo non offre supporto predefinito per la ridenominazione dell'oggetto ga globale.

Tuttavia, utilizzando la tecnica descritta sopra, puoi rinominare l'oggetto ga globale e ottenere comunque tutti i vantaggi di precaricamento del tag asincrono alternativo.

La seguente versione modificata del tag asincrono alternativo imposta la variabile GoogleAnalyticsObject su analytics e rinomina anche tutte le istanze di ga in 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 analytics object with automatic cookie domain configuration.
analytics('create', 'UA-12345-1', 'auto');

// Sends a pageview hit from the analytics object 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 -->