Frage

Ich versuche, Klicks über Google Analytics zu verfolgen, die in einer neuen Anforderung zur Folge haben. Insbesondere klickt auf Registerkarten, die über die jQuery UI tabs Widgets. Ich bin mit der älteren Version des Codes ( ‚Bengel-Tracker‘) und versuche, die Klicks anmelden etwa so:

$('.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);
});

Das gleiche Verfahren funktioniert, in einem anderen Fall, deren einziger wesentlicher Unterschied, soweit ich das beurteilen kann, ist das Fehlen einer Raute (#) Symbols in der Zeichenfolge. Ist das Zeichen, das nicht in einer Zeichenkette erlaubt durch urchinTracker() verfolgt, oder könnte eine andere Ursache (außer niemand auf die Links geklickt haben!) Da sein?

War es hilfreich?

Lösung

In der Standardeinstellung deaktiviert Google Analytics Tracking Anker-Tags . Um sie zu aktivieren für die Legacy-Tracking-Code, verwenden Sie die folgende Form:

_uanchor = 1;
urchinTracker(val);

Wert auf variable _uanchor Einstellung ist die entsprechende Methode _setAllowAnchor aufzurufen, wenn die GA-Codebasis verwenden. (Sie finden einen detaillierten Vergleich der Google Analytics-Tracking-Code Migration Guide -. Link ist veraltet )

Das Verfahren _setAllowAnchor auf der Google Referenz-Site .

Andere Tipps

Kurz gesagt, Google Analytics kann nicht auf Seiten-Links verfolgt ein Zeichen ‚#‘ enthalten. Ein Klick auf index.html # foo wird einfach wie ein Klick auf index.html behandelt, mit allem, was nach dem ‚#‘ ignoriert.

Sie in Erwägung ziehen könnte das Zeichen '#' Flucht:

$('.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);
});

In Ihrem Beispiel würde dies eine Seitenansicht für /tab/?main aufnehmen, die mit Google Analytics funktionieren sollen.

Wenn Sie in-Bild Sprung Klicks verfolgen, die folgende funktionieren würde global:

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

Beachten Sie, dass wenn Sie einige spezifische onclick Handler wie

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

Sie müssten manuell den Hash voranstellen die onhashchange auslösen

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

Klingt wie Sie Google Analytics Ereignis-Tracking die Beispiele verwenden Onclick = „“ Quatsch, aber ich wette, dass Sie wahrscheinlich diese jQuery Click-Ereignisse als auch binden können.

  1. Ich habe versucht, die _uanchor = 1; Methode. Die nicht Arbeit. Der Grund ist es nicht der Fall funktioniert, dass es ausgelegt ist, die Google Analytics-Parameter als Hash-Werte zu senden, nicht senden Ihren Hashwert.

    Aus dem Leitfaden zitiert in Török Gábor Antwort , das Setzen von _uanchor einem hat folgende Auswirkungen:

      

    Wenn diese Option aktiviert, verwendet # anstelle des Standard ? die Anforderung stammt aus dem Query-String zu trennen

    Dies ist in dem "Kampagnen-Tracking-Seite.

  2. Rob Knight Antwort funktioniert gut, aber ich habe eine kleine Änderung. In Pseudo-Code:

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

Nicht sicher, ob es wirklich ankommt, um GA eine URL wie foo.html&bar=baz zu haben, aber es schien nur sauberer zu mir.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top