JS Click Tracking
Webentwicklung, Widget, Wordpress

suchmaschinenfreundliches Tracking von Klicks 

Wer sich dafür interessiert, auf welche (ausgehenden) Links die Webseiten-Besucher der eigenen Seite klicken, der benötigt ein Tracking Script. Oftmals werden durch diese Scripts jedoch die suchmaschinenfreundlichen URLs zerstört indem ein Weiterleitungsscript zwischengeschaltet wird. Bei einem solchen Click Tracking würden die Links z.B. go.php?url=http://ziel.de lauten, was weder den Besuchern, noch den Suchmaschinen gefällt. Zudem wären Änderungen am CMS oder in den eigenen Scripten nötig.

Aus diesem Grund wird hier eine Möglichkeit für ein besseres Click Tracking vorgestellt, die sich offenbar bewährt hat, sodass auch Google Analytics einen ähnlichen Ansatz verwenden. Hierzu genügt es, ein kleines Javascript einzubinden, welches dann (unbemerkt) und unproblematisch die Links für das Tracking zurecht biegt. Da Suchmaschinen i.d.R. kein JavaScript interpretieren, werden dadurch keine Nachteile im Bezug auf die Suchmaschinenoptimierung entstehen. Auch skeptischen Besucher beugt dieses Script vor, sodass diesen keine URL der Art go.php?... im Browser angezeigt wird, sondern - wie gewöhnt / ohne Tracking - die Ziel-Adresse selbst.

 

Javascript: SEO Click Tracking 

Jedes Script braucht einen Namen sodass es der Einfachkeit halber im Folgenden tracky genannt wird:

// http://www.shop24-7.info/

var tracky_script="./tracky/tracky.php";

function tracky_change_target()
{
    var url;
    url=this.getAttribute('href');
    if(url.match('http://'))
    this.setAttribute('href',tracky_script+'?goto='+escape(url));
    return true;
}

window.onload = function()
{
    for(var i = 0; i < document.links.length; i++)
    {
        document.links[i].onmousedown=tracky_change_target;
    }
}

 

Dieses Script speichern wir im Verzeichnis tracky und nennen die Datei tracky.js. Anschließend binden wir das Javascript in das Template bzw. in die Seite ein, auf der die Klicks getrackt werden sollen. Dazu fügt man im Head-Bereich (zwischen <head> und </head>) diese Zeile hinzu:

    <script type="text/javascript" src="./tracky/tracky.js"></script>
Anders als die meisten anderen JS-Lösungen muss es nicht im <body> aktiviert werden indem man es dem Event onload zuweist.

Es sollten nun alle absoluten Links, sobald sie geklickt werden, über das in der tracky.js festgelegten Script (var tracky_script="./tracky/tracky.php";) abgewickelt werden.

Folglich muss diese Datei zumindest derart aufgebaut sein:

  • <?php
    if (isset($_GET['goto']))
    {
      $url=mysql_escape_string($_GET['goto']);
  •   header("Location: $url");
    }
  • else
  • {
  •   echo "Where do You want to go today?";
  • }
  • ?>

 

In diesem Script liegt es nun bei Ihnen, wie die Daten verarbeitet werden. Es empfiehlt sich, eine eigene MySQL-Tabelle zu diesem Zwecke anzulegen und beispielsweise für jeden Tag einen Eintrag pro externe Domain anzulegen. Bei jedem Klick dorthin wird nun ein Feld ("Klick-Anzahl") um 1 erhöht. Alternativ könnte natürlich für jeden Klick ein Eintrag angelegt werden, was jedoch bei größeren Websites schnell viele Ressourcen beansprucht.