Question

J'essaie de suivre les clics via Google Analytics qui ne génèrent pas de nouvelle demande. Plus précisément, cliquez sur les onglets créés via le widget jQuery UI . J'utilise l'ancienne version du code ("tracker urchin") et j'essaie de consigner les clics de la manière suivante:

$('.ui-tabs-nav li a').click(function() {
    val = "/tab/" + $(this).attr('href');

    // when uncommented, the following line reports, for example:
    //   /tab/#main
    // as expected.
    // console.log(val);

    res = urchinTracker(val);
});

La même méthode fonctionne, dans un autre cas, dont la seule différence significative, pour autant que je sache, est l’absence de symbole dièse (#) dans la chaîne. Ce caractère n'est-il pas autorisé dans une chaîne suivie par urchinTracker () , ou pourrait-il y avoir une autre cause (autre que personne n'ayant cliqué sur les liens!)?

Était-ce utile?

La solution

Par défaut, Google Analytics désactive code de suivi Google Analytics. Guide de migration - ce lien est obsolète ).

La méthode _setAllowAnchor est décrite dans Site de référence Google .

Autres conseils

En bref, Google Analytics ne peut pas suivre les liens sur la page contenant un caractère "#". Un clic sur index.html # foo est simplement traité comme un clic sur index.html, tout ce qui suit le "#" étant ignoré.

Vous pouvez envisager d'échapper au caractère '#':

$('.ui-tabs-nav li a').click(function() {
    val = new String("/tab/" + $(this).attr('href')).replace('#', '&');

    // when uncommented, the following line reports, for example:
    //   /tab/#main
    // as expected.
    // console.log(val);

    res = urchinTracker(val);
});

Dans votre exemple, cela enregistrerait une vue de page pour / tab /? main , ce qui devrait fonctionner correctement avec Google Analytics.

Si vous souhaitez suivre les clics d'ancrage dans la page, les opérations suivantes fonctionneront globalement:

window.onhashchange = function() {
  _gaq.push(['_trackPageview', location.pathname + location.search + location.hash]);
}

Attention, si vous avez des gestionnaires onclick spécifiques tels que

 $('#someid a').click(function(event){
   event.preventDefault();
   var target = $(this).attr('href');
   // some more clever stuff
 });

Vous devez ajouter le hachage manuellement pour déclencher le onhashchange

.
 $('#someid a').click(function(event){
   event.preventDefault();
   var target = $(this).attr('href');
   // triggers onhashchange
   location.hash = target;
   // some more clever stuff
 });

On dirait que vous souhaitez Suivi des événements Google Analytics les les exemples utilisent onclick = " " mais je parie que vous pourriez probablement les lier à des événements de clic jQuery.

  1. J'ai essayé d'utiliser la méthode _uanchor = 1; . Cela ne ne fonctionne pas. Cela ne fonctionne pas parce qu'il est conçu pour envoyer les paramètres de Google Analytics sous forme de valeurs de hachage et non pour envoyer votre valeur de hachage.

    D'après le guide cité, dans la réponse de G & # 225; , définissez < code> _uanchor sur l'un a les effets suivants:

      

    Une fois activé, utilise # au lieu du ? par défaut pour séparer la requête de la chaîne de requête

    cela se trouve dans la section "Suivi de campagne".

  2. La réponse de Rob Knight fonctionne bien, mais j'ai apporté une petite modification. En pseudo-code:

    if (href contains ?) {
    href = href.replace('#', '&');
    } else {
    href = href.replace('#', '?');
    }
    

Je ne sais pas si cela importe vraiment pour GA d'avoir une URL telle que foo.html & amp = bar = baz , mais cela me semblait plus propre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top