Analytics

Duplication simple du tracker pour Universal Analytics

Tout d’abord, je suis désolé pour le titre. Je devrais vraiment arrêter de lancer le mot “simple”, car les gens me disent toujours que les choses que je prétends être faciles et directes le sont rarement. Mais puisque c’est mon blog, je me réserve le droit d’utiliser la terminologie stupide et trompeuse que je veux. Je maintiens que ce qui suit EST assez simple, surtout si l’on considère la quantité de complexité qu’il réduit dans votre configuration Universal Analytics.

Ensuite, je veux diriger votre regard vers ma dernière création Keynote / PowerPoint :

Hit duplicateur

Cette œuvre d’art s’appelle « … en attendant le cosmos ». Notez les points de suspension énigmatiques au début, l’absence de majuscules et le fait que le titre n’a rien à voir avec l’image. Oui ami. C’est le post-post-modernisme à son meilleur !

Donc, je suppose que mon art incroyable a révélé ce que je veux vous montrer dans cet article. En bref, c’est un simple petit plugin que j’utilise dans les projets sur lesquels je travaille, qui duplique tous les hits envoyés à une propriété Google Analytics. Ces résultats dupliqués sont envoyés à une autre Propriété Google Analytics, dont vous spécifiez l’ID de propriété lors du lancement du plug-in.

Ce didacticiel utilise un plug-in Universal Analytics (d’oh), qui, à son tour, utilise l’API Tasks.

Avant de continuer, je veux vous diriger vers le blog de David Vallejo, où lui et un tas d’autres personnes travaillent ensemble sur un projet open-source qui fait des choses similaires, mais à un niveau BEAUCOUP plus configurable. Le plugin que je suis sur le point de vous guider fera simplement un exact double du hit que vous avez envoyé, sans vous permettre de modifier la charge utile d’un bit.

Pourquoi, me demanderez-vous ? Eh bien, un nombre étonnamment élevé de projets sur lesquels je travaille ont besoin d’une propriété “rollup”, qui collecte les données de tous les sites de l’organisation. Les données envoyées au cumul reflètent souvent tout ce qui est collecté dans les sites locaux. C’est toute une corvée à dupliquer send commandes sur tous les trackers, donc si le projet est correct avec une simple duplication, j’utilise ce plugin.

MISE EN GARDE: Cette volonté meilleur travailler avec traqueurs nommés. Ainsi, Google Tag Manager configure cela dans Google Tag Manager est difficile, car vous devrez jouer avec le champ du nom du Tracker. Si vous avez confiance en vos compétences en matière de mise en œuvre de GTM, n’hésitez pas à faire ce que vous voulez, bien sûr. Néanmoins, dans son état actuel, le plugin s’adresse mieux à une implémentation Universal Analytics sur la page.

Modification du code de suivi

Pour que cela fonctionne, vous devrez apporter une petite modification à votre code de suivi Universal Analytics. Disons que le code ressemble maintenant à ceci :

<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','https://www.google-analytics.com/analytics.js','ga');    ga('create', 'UA-12345-1', 'auto');   ga('send', 'pageview'); </script>

Vous devrez ajouter la modification suivante :

<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','https://www.google-analytics.com/analytics.js','ga');    ga('create', 'UA-12345-1', 'auto');    // ADD THIS LINE:   ga('require', 'simolatorDuplicator', {'newId' : 'UA-12345-2'});    ga('send', 'pageview'); </script>

Il y a un seul ajout : ga('require', 'simolatorDuplicator', {'newId' : 'UA-12345-2'});. Cette ligne invoque un plugin appelé simolatorDuplicator (Je sais ! Le nom de plugin le plus génial de l’UNIVERS !), après quoi vous passez un chose avec une seule paire clé-valeur : {newId : newTrackerId}. Au lieu de newTrackerIdvous placez une chaîne avec l’ID de la propriété Google Analytics sur laquelle vous souhaitez dupliquer tous les résultats.

Le plugin lui-même

Il existe deux façons rapides et faciles (désolé pour ces mots encore une fois) de charger le plugin. Soit l’héberger dans son propre fichier JavaScript que vous chargez ensuite avec un <script></script> loader, ou exécutez simplement le code dans le modèle de page lui-même.

Ce qui est important, c’est que le le code du plugin doit être chargé APRÈS le code de suivi. Le code ressemble à ceci :

(function() {   var ga = window[window['GoogleAnalyticsObject']];   var GADuplicate = function(tracker, propertyId) {     var o = tracker.get('sendHitTask');     var temp;     tracker.set('sendHitTask', function(model) {       o(model);       temp = model.get('hitPayload').replace(new RegExp(model.get('trackingId'), 'g'), propertyId.newId);       if (temp) {         model.set('hitPayload', temp, true);         o(model);       }     });   };   ga('provide', 'simolatorDuplicator', GADuplicate); })(); 

Donc, soit écrivez ceci dans un fichier nommé quelque chose.js (n’hésitez pas à remplacer quelque chose avec autre chose), ou ajoutez simplement le code dans son propre <script> bloc après l’extrait de suivi.

<!-- METHOD 1 --> <script>   // GA Tracking code here </script> <script src="something.js" async></script>  <!-- METHOD 2 --> <script>   // GA Tracking code here </script> <script> (function() {   var ga = window[window['GoogleAnalyticsObject']] || function() {};   var GADuplicate = function(tracker, config) {     var o = tracker.get('sendHitTask');     var temp;     tracker.set('sendHitTask', function(model) {       o(model);       temp = model.get('hitPayload').replace(new RegExp(model.get('trackingId'), 'g'), config.newId);       if (temp) {         model.set('hitPayload', temp, true);         o(model);       }     });   };   ga('provide', 'simolatorDuplicator', GADuplicate); })(); </script>

Les deux sont tout aussi bien, mais pour garder les choses bien rangées, je recommande la première méthode.

Passons rapidement en revue le code.

(function() {   var ga = window[window['GoogleAnalyticsObject']] || function() {};   ...   ga('provide', 'simolatorDuplicator', GADuplicate); })(); 

Ces lignes enveloppent le code du plug-in dans une expression de fonction immédiatement invoquée, que j’utilise pour protéger l’espace de noms global. Non, vous n’aviez pas besoin de comprendre quoi que ce soit.

La ligne suivante établit le ga() interface locale, en l’étendant à l’objet Google Analytics global. C’est ainsi que le plugin fonctionne toujours même si vous avez renommé l’interface GA globale de ga à autre chose.

Après le code du plugin (représenté par le « … ») nous mettons le plugin à la disposition du ga interface. C’est une ligne très importante, car c’est le pendant de la ga('require', 'simolatorDuplicator'...); commande utilisée dans le code de suivi. Si vous n’aviez pas cette ligne, ou si vous aviez une faute de frappe dans le nom du plugin, votre code GA ne fonctionnerait pas du tout ! Alors n’oubliez pas de tester, tester, TESTER.

Ensuite, le constructeur du plugin lui-même :

  var GADuplicate = function(tracker, config) {     var o = tracker.get('sendHitTask');     var temp;     tracker.set('sendHitTask', function(model) {       o(model);       temp = model.get('hitPayload').replace(new RegExp(model.get('trackingId'), 'g'), config.newId);       if (temp) {         model.set('hitPayload', temp, true);         o(model);       }     });   }; 

Beaucoup de choses se passent ici.

Tout d’abord, l’expression de la fonction établit une nouvelle fonction appelée GADuplicatequi prend deux paramètres : tracker et config. Les tracker Le paramètre est transmis automatiquement par la logique du plug-in et contient une référence à l’objet de suivi Universal Analytics qui a appelé le plug-in. Les config l’objet est passé en paramètre dans le code de suivi modifié. C’est le {'newId' : 'UA-12345-2'} dont nous avons parlé plus tôt.

Ensuite, nous faisons une copie de l’original sendHitTask. Cette petite méthode est en fait toute la logique de répartition de analytics.js, nous en aurons donc besoin pour envoyer nos données à Google Analytics.

Nous en avons besoin en particulier parce que sur la toute prochaine ligne après les déclarations de variables, nous écraser les sendHitTask du tracker par un nouveau !

Premièrement la original sendHitTasktemporairement copié dans la méthode o(), est utilisé pour envoyer le hit standard à Universal Analytics. C’est vraiment important, car sans cela, vous ne feriez qu’envoyer votre hit en double !

Ensuite, on prend le hitPayload que vous venez d’envoyer à GA, et nous remplaçons toutes les instances de l’ID de propriété actuel par le nouvel ID de propriété que vous avez configuré dans le code de suivi ! C’est la logique principale de ce plugin. Nous prenons la charge utile, nous l’envoyons d’abord régulièrement, puis nous la modifions et envoyons la version modifiée. En utilisant model.set('hitPayload', temp, true); nous réécrivons la charge utile, qui est ensuite soumise avec une nouvelle invocation de la o() méthode.

Je maintiens que c’est vraiment très simple quand on y pense, mais naturellement cela nécessite une certaine compréhension du fonctionnement des API. Alors n’hésitez pas à vous plonger dans la documentation.

Et c’est tout! C’est le code, la configuration et la mise en œuvre. N’oubliez pas que vous devrez modifier le code de suivi en conséquence sur toutes les pages de votre site où vous souhaitez utiliser ce plugin. Vous pouvez également l’utiliser avec des trackers nommés. modifiez simplement l’appel du plugin en:

ga('myNamedTracker:require', 'simolatorDuplicator', {'newId' : 'UA-12345-2'}); 

Et ouivous pouvez renommer le plugin en autre chose que simolatorDuplicatormême si je t’aimerai un peu moins si tu le fais.

Résumé

N’oubliez pas qu’il s’agit d’un exact appuyez sur la méthode de duplication. Si vous souhaitez modifier la charge utile, vous devrez ajouter une logique supplémentaire au code, et je vous recommande vraiment de consulter le lien vers le blog de David Vallejo dans le chapitre d’introduction de cet article.

Faites-moi savoir si vous rencontrez des problèmes avec cela, ou si vous avez des suggestions ! S’il vous plaît, testez-le soigneusement avant de l’implémenter. Vous jouez avec du code qui peut potentiellement paralyser votre implémentation de Google Analytics.

Source : www.simoahava.com

Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page
Index