Nous continuons la liste de nos trucs et astuces Google Analytics, avec ici une question tumultueuse, que dis-je, un des grands débats autour de Google Analytics :
Où faut-il placer le tag Google Analytics dans le code source de la page ?
Dans les balises head ? à l’intérieur des balises body ? En haut ou en bas du code source ?
Google vous dit qu’il faut mieux le mettre en bas juste avant la balise body. Certains gourous vous diront qu’il vaut mieux le mettre en haut… Alors quoi ?
La bonne pratique, selon Google…
… c’est de placer le tag Google Analytics le plus près possible de la balise body de fermeture, c’est à dire en bas de la page. La raison principale : il est inutile de risquer de dégrader l’expérience de vos visiteurs en conditionnant l’affichage de la page au bon chargement du code de tracking. Même si les serveurs de Google sont certainement plus performants que ceux de votre site, nul n’est à l’abri de temps de chargements plus longs qu’à l’accoutumée. Certains e-commerçants que nous connaissons retirent même totalement les codes de tracking lors de périodes de trafic intenses (Noël, les soldes, …). Il est alors plus important de vendre que de récupérer de la donnée !
Certaines personnes prétendent qu’il faut placer le code en haut de la page, car les données seraient plus fiables : c’est stupide. Non seulement cela peut occasionner un temps de chargement perçu comme plus long (comme on vient de le voir), mais les données elles-mêmes ne sont pas plus fiables. Imaginez qu’un visiteur vienne sur votre site le temps de lancer le chargement du code Google Analytics, mais pas suffisamment longtemps pour charger la page. Peut-on réellement considérer que cette personne est réellement venue visiter le site ? Au moins, lorsque le code est en bas, on « perd» peut-être ceux qui ont le clic ultra-rapide sur le bouton retour, mais on s’assure de ne comptabiliser que ceux qui ont réellement vu la page entièrement affichée.
Mais il y a des cas particuliers !
Il y a cependant des cas particuliers où vous n’avez pas le choix, et où le code doit impérativement se trouver plus haut dans la page. C’est le cas lorsque vous souhaitez par exemple mesurer des clics sur certains éléments (boutons, formulaires, modules Flash, …), en utilisant par exemple pageTracker._trackPageview(’Clic_sur_un_element’), ou que vous souhaitez faire un appel à la définition de variables personnalisées pour vos visiteurs avec la fonction pageTracker._setVar(’Client_fidele’).
Il est bien entendu indispensable de déclarer les fonctions en incluant le code ga.js et en définissant l’identifiant du pageTracker AVANT d’appeler ces différentes fonctions. Dans ces cas précis, le code Google Analytics doit impérativement se trouver au-dessus des appels spécifiques à ces fonctions, entre la balise body d’ouverture et le premier appel à une fonction spécifique.
Voir l’exemple ci-dessous :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <body> <!-- On appelle d'abord le code GA --> <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{ var pageTracker = _gat._getTracker("UA-xxxxxx-x"); pageTracker._trackPageview(); } catch(err) {} </script> <!-- Ici on peut insérer un flash qui effectuera des appels successifs à la fonction pageTracker._trackPageview en fonction des actions du visiteur --> <!-- On peut aussi mesurer les téléchargement d'un fichier PDF --> <a onClick="pageTracker._trackPageview('/Telechargement/Fichier.pdf')" href="fichier.pdf">Libellé du fichier PDF</a> <!-- On peut enfin identifier un visiteur comme un client fidèle (en fonction des actions réalisées précédemment) --> <script type="javascript"> pageTracker._setVar('Client_fidele'); </script> </body> |
En résumé : si vous n’avez pas besoin de tracker des éléments spécifiques, placez le code juste avant la balise body de fermeture. Sinon, placez le après la balise body d’ouverture, mais avant les appels aux fonctions de tracking spécifiques !

Vous aider à définir une stratégie claire et centrée sur le client.
Auditer, concevoir ou refondre un site et l'optimiser sur le long terme.
Choisir la solution, mettre en place le tracking et gérer les reportings
Comprendre les principaux enjeux de la performance e-business




5 août 2009 à 15:37
Bonjour Thomas,
Si le placement du code de suivi juste avant la balise ne fait aucun doute, je tenais cependant à relever un petit point sur les cas particuliers:
si on se sert de _setVar, il vaut mieux le faire *AVANT* l’appel à _trackPageview(), et donc l’inclure dans le code de suivi principal.
Dans la pratique, il vaut mieux définir la variable personnalisée en Javascript plus haut dans la page et l’injecter dans le code de suivi dynamiquement.
Ensuite, à moins d’utiliser des fonctions qui interviendront au chargement de la page (via l’évènement AVANT une instruction particulière. Le code de suivi s’éxécute au moment du rendu de l page et les appels successifs aux fonctions Google Analytics se feront normalement
Pour défendre cet article, le placement du code avant tout appel à une fonction de suivi était vraiment nécessaire pour la version urchin.js du code de suivi. Avec la version ga.js et les trackers nommés, on s’affranchit d’un grand nombre de contraintes, et notamment du placement du code.
Amicalement,
Julien COQUET
5 août 2009 à 15:39
le formulaire de commentaire n’aime pas l’HTML
il fallait lire:
» juste avant la balise BODY»
et
« (via l’évènement BODY onLoad)»
23 novembre 2009 à 13:12
Merci donc de cette confirmation Julien !