Dans certaines situations, un système de gestion de contenu utilise le même modèle pour plusieurs sites Web avec des noms de domaine différents et je ne peux pas créer de modèle distinct pour chacun. Cependant, chaque site Web doit être suivi avec Google Analytics. Serait-il approprié de suivre chaque domaine de la sorte en introduisant un code conditionnel? Et serait-ce assez robuste pour ne pas casser? Y a-t-il une manière plus élégante de faire ceci?
<script type="text/javascript">
var _gaq = _gaq || [];
switch (location.hostname){
case 'www.aaa.com':
_gaq.Push(['_setAccount', 'UA-xxxxxxx-1']);
break;
case 'www.bbb.com':
_gaq.Push(['_setAccount', 'UA-xxxxxxx-2']);
break;
case 'www.ccc.com':
_gaq.Push(['_setAccount', 'UA-xxxxxxx-3']);
break;
}
_gaq.Push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
})();
</script>
Soyons clairs: chaque site Web est un nom de domaine distinct et doit faire l'objet d'un suivi distinct, PAS de domaines différents avec les mêmes pages sur un seul profil analytique.
Exécutez l'instruction switch pour votre serveur de code GA. Ainsi, au lieu d'utiliser location.hostname
, utilisez $_SERVER['SERVER_NAME']
(s'il s'agit de PHP).
De cette façon, un seul profil sera sur vos sites multiples, mais avec des identifiants de profil différents. Mettre ce code dans JS pourrait être déroutant et risquer de se rompre.
Vous pouvez utiliser un code de suivi et des segments de configuration dans l'analyse pour séparer les sites en fonction des domaines.
Votre solution consistant à utiliser le location.hostname
en JavaScript est suffisante. Google Analytics s'appuie sur JavaScript pour fonctionner. Votre solution ne sera pas plus fragile que le reste du suivi de Google Analytics.