55 votes

google analytics - plusieurs trackers sur une page (conflit de cookie)

Je suis en train d'écrire une application web qui est censé être intégré dans les sites d'autres personnes (une sorte de widget). Je suis en utilisant Google Analytics pour le suivi de toutes les personnes qui visitent toutes les instances de mon script sur l'intégration de sites web. Le problème est que je ne sais pas comment l'utiliser, afin qu'elle n'interfère pas avec ces sites " propres comptes Google Analytics. Je suis le stockage de la variable d'outil de suivi dans un espace de noms, alors j'ai pensé que cela devrait le faire, mais je n'ai pas réalisé que GA stocke ses paramètres dans des cookies (__utma, __utmz etc.), et ces cookies sont utilisés par les deux trackers, si il y en a deux sur la même page... Donc par exemple si j'utilise _setVar pour stocker une sorte de variable définie par l'utilisateur dans Google Analytics, et l'intégration de site fait la même chose, nous écraser des uns et des autres valeurs...

Bien sûr, il serait plus facile si Google a fourni un moyen de changer le nom de l'cookies pour un custom, mais je ne peux pas trouver un moyen de le faire. J'ai pensé à utiliser un cookie de domaine ou le chemin d'accès à une force distincte de cookie, mais cela ne fonctionne pas, parce que si j'ai mis de domaine ou le chemin d'accès à autre chose que le vrai nom de domaine/chemin, alors le cookie n'est pas lisible pour la page d'après rechargement...

Quelqu'un sait-il un moyen d'avoir deux suivis sur une page et de les faire utiliser des cookies afin de ne pas écraser les paramètres de l'autre?

Ou, si c'est complètement impossible - est-il un autre service d'analyse avec les mêmes fonctionnalités que GA dans lequel c'est possible? (il devait avoir des fonctionnalités avancées comme l'événement et suivi de campagne...)

56voto

Paul Thompson Points 716

Maintenant simplifié avec le nouveau code de suivi asynchrone. :)

https://developers.google.com/analytics/devguides/collection/gajs/?hl=pl#MultipleCommands

18voto

MyWebsiteSpot Points 78

Vous pouvez installer plusieurs instances du code de suivi Google Analytics sur les pages de votre site web pour envoyer des données à plusieurs propriétés dans votre compte. https://support.google.com/analytics/answer/1032400?hl=en

Ou vous pouvez faire preuve de créativité et d'effectuer les opérations suivantes pour instructions de Google. https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#multipletrackers

<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','ga');

  ga('create', 'UA-XXXX-Y', 'auto');
  ga('create', 'UA-XXXX-Y', 'auto', {'name': 'newTracker'});
  ga('send', 'pageview');
  ga('newTracker.send', 'pageview');

</script>

10voto

Török Gábor Points 13913

N'avez pas à utiliser des noms différents cookie Google Analytics heureusement travaille avec plusieurs trackers sur la même page. Voir les réponses à la question de Google Analytics - Plusieurs suivis pendant Plusieurs Comptes?.

Mise à jour

Il s'avère que l'utilisation de plusieurs tracker est une méthode de travail mais il a des pièges à éviter. L'un de ceux-ci, qui est, vous ne pouvez pas appliquer d'utilisateur différent de segmentation pour chacun d'eux. John Henson démontre une solution de contournement qui contraint GA utilisation de cookies, peut-être vous devriez vérifier.

8voto

Miles Lukas Points 61

Au cas où quelqu'un aurait toujours ce problème et voudrait un collage facile, mon problème consistait à utiliser mon propre suivi Google pour mon code ajouté à des pages d'autres personnes pouvant également utiliser Google Suivi. J'ai testé cela et confirme que cela fonctionne comme prévu:

 var _gaq = _gaq || [];

_gaq.push(['some_unique_name._setAccount', 'UA-xxxxxxxx-1']);
_gaq.push(['some_unique_name._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';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
 

J'utilise aussi des événements

 _gaq.push(['some_unique_name._trackEvent', 'Event Category', 'Event Action', 'Event Label']);
 

Si quelqu'un voit un problème avec cela, s'il vous plaît faites le moi savoir.

3voto

Richard Nienaber Points 5049

Selon les documents énumérés par Török, il semble que la réponse correcte est d'utiliser _setCookiePath. Cela provoque chaque tracker pour utiliser complètement les cookies.

Exemple de code à partir du site web:

<script type="text/javascript">
    var pageTracker = _gat._getTracker("UA-11111-1″);

    pageTracker._setDomainName('domain.com');

    pageTracker._setCookiePath('/subdirectory/');
    pageTracker._trackPageview();

    var otherTracker = _gat._getTracker("UA-22222-1″);
    otherTracker._setDomainName('domain.com');
    otherTracker._trackPageview();
</script>

Lorsque vous vous connectez à partir d'un domaine à un autre, tous les liens qui les postes à l'autre de domaine doit ressembler à ceci:

<a href="pageTracker._linkByPost('otherdomain.com/petStoreCart/legalTerms.php');"

Cela va ajouter Google Analytics requête spécifique de la chaîne de valeurs qui seront utilisées par le script ci-dessus pour définir le "cookie" (source).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X