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