Renommer l'objet ga

Dans certains cas, vous pouvez ajouter analytics.js à votre page, mais la variable ga est déjà utilisée pour autre chose. Pour résoudre ce problème, analytics.js fournit un mécanisme permettant de renommer l'objet ga global.

Renommer l'objet global

La balise Google Analytics vous permet de renommer l'objet ga global en modifiant le paramètre final transmis à la fonction réduite. Vous devrez également mettre à jour tous les appels de la file d'attente de commandes en remplaçant ga() par le nom de votre choix.

Par exemple, si vous souhaitez renommer l'objet ga en analytics, vous pouvez modifier la balise comme suit:

<!-- 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 -->

Renommer manuellement l'objet global

Renommer l'objet global fonctionne, car analytics.js recherche, lors de son chargement, une chaîne stockée dans une variable globale appelée GoogleAnalyticsObject. S'il la trouve, il utilise le nom de chaîne comme nouveau nom pour la file d'attente de commandes globale.

Par exemple, si vous utilisez la méthode jQuery $.getScript pour charger analytics.js, vous pouvez renommer l'objet global avec le code suivant:

<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>

Autre balise asynchrone

Contrairement à la balise Google Analytics standard, l'autre balise asynchrone ne permet pas par défaut de renommer l'objet ga global.

Toutefois, en utilisant la technique décrite ci-dessus, vous pouvez renommer l'objet ga global tout en conservant tous les avantages de préchargement de l'autre tag asynchrone.

La version modifiée suivante de la balise asynchrone alternative définit la variable GoogleAnalyticsObject sur analytics et renomme toutes les instances de ga en 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 -->