Ian Pitts hat mir diesen Trick vor einiger Zeit geschickt und ich komme gerade dazu, ihn zu veröffentlichen. Danke Ian!
Google Analytics (Einführungsvideo hier) ist leistungsstark, aber eine bemerkenswerte fehlende Funktion sind Daten zu ausgehenden Klicks. Wenn Sie jQuery verwenden, fügen Sie diesen Code auf Ihrer Seite ein und Sie werden ausgehende Klicks im Handumdrehen verfolgen.
<script type="text/javascript">
// <![CDATA[
$(document).ready(function() {
$("a[@href^='http://']:not(.noAutoLink)").addClass("offSite").attr('target', '_blank').bind('click keypress', function(event) {
var code=event.charCode || event.keyCode;
if(!code || (code && code == 13)) {
if(pageTracker){
var fixedLink = this.href;
fixedLink = fixedLink.replace(/https?:\/\/(.*)/,"$1");
fixedLink = '/outgoing/' + fixedLink;
pageTracker._trackPageview(fixedLink);
};
};
});
// ]]>
</script>
Einfache (naja, fast) Sprache
- Zielt auf alle hrefs mit http:// (Vorausgesetzt, Ihre internen Links verwenden relative Dateipfade, wie sie sollten)
- Außer denen mit der Klasse .noAutoLink (Optional, aber nützlich, um Links gezielt auszuschließen, wenn Sie möchten)
- Es fügt dann die Klasse "offsite" hinzu (Ebenfalls optional, könnte aber als CSS-Hook verwendet werden, um eine Art "externer Link"-Symbol anzuzeigen, besonders wenn Sie target="&_blank" verwenden möchten)
- Dann fügt es ein target von _blank hinzu (Nicht XHTML-konform, aber da es bei Bedarf per Skript hinzugefügt wird, schadet es der Validierung nicht)
- Dann bindet es an Click- und Keypress-Events... sodass auch diejenigen, die die Tastatur anstelle der Maus verwenden, die Aktion erhalten
- Der if(pageTracker)-Teil ist das, was die GA-Objekte erkennt
- Dann wird einige reguläre Ausdruckmagie angewendet, um den href in etwas zu verwandeln, das in GA verfolgt werden kann
- Ein gefälschter Link wird erstellt, der in einem fiktiven /outgoing/-Verzeichnis erscheinen wird
- Und schließlich wird GA angewiesen, einen Seitenaufruf für diese neue gefälschte Ressource aufzuzeichnen
Sobald Sie dies eine Weile laufen gelassen haben (wahrscheinlich ein paar Tage, da Google Analytics nicht sehr in Echtzeit ist), können Sie zu Inhalt > Inhalt-Drilldown gehen und Ihr /outgoing/-Verzeichnis finden. Klicken Sie darauf, um Ihre beliebtesten ausgehenden Links zu sehen!
UPDATE
Ian hat ein Update/eine Verbesserung dieses Codes auf seinem Blog veröffentlicht. Der neue Code sucht nicht nur nach "http://", um festzustellen, ob es sich um einen ausgehenden Link handelt, sondern vergleicht die Hostnamen mit der aktuellen Website. Auf diese Weise werden interne Links mit voller URL nicht fälschlicherweise als externe Links angesehen.
Toller Artikel! Ich habe letzte Woche gerade dieselbe Technik als Proof of Concept bei .eduGuru gepostet, der Artikel heißt Tracking outgoing clicks with Google Analytics. Schön zu sehen, dass ein echtes produktionsreifes JavaScript veröffentlicht wird.
Ihr leistet großartige Arbeit! Weiter so!
Guter Artikel, Chris. Das hilft mir sicherlich, meine GA-Ergebnisse noch besser zu verfolgen. Danke, dass Sie den Tipp geteilt haben. Ich habe diesen hier getwittert.
Machen Sie weiter so :)
Ziemlich cool. Das muss ich definitiv hinzufügen, wenn ich mal Zeit habe. Danke für den Hinweis
Ich mache wohl etwas falsch! Die Links öffnen sich nicht in einem neuen Fenster (woran ich merke, dass etwas nicht stimmt – obwohl ich das entfernen möchte, sobald ich weiß, dass es funktioniert). Ich bekomme diesen Fehler
Fehler: fehlende } nach Funktionskörper
Quelldatei: http://……
Zeile: 69, Spalte: 8
Quelltext: // ]]>
(Hier ist er zu finden: http://artmeetscommerce.net/clients.php?page=mindgame)
Liegt es am Code? Oder liegt es an mir (oder der Verwendung von anderem jQuery-Zeug, das sich damit überschneidet)?
Ich bin wirklich gespannt, das auszuprobieren – ich habe Googles JS, das den Tracker aktiviert, so modifiziert, dass es ein externes jQuery-Skript verwendet. Es wird also ein Kinderspiel sein, dies nach der Initialisierung einzufügen.
Danke!
Ich habe vor einiger Zeit ein jQuery-Plugin geschrieben, das automatisch Google Analytics-Tracking für ausgehende Links, Downloads und Mailto's hinzufügt
http://devblog.jasonhuck.com/2007/11/19/google-analytics-integration-with-jquery/
Obwohl es das ältere Tracking-Skript von Google verwendet, hat es jemand anderes inzwischen aktualisiert, um mit dem neueren Skript zu funktionieren
http://dvdsmpsn.wordpress.com/2008/06/18/jgoogleanalytics-google-analytics-integration-for-jquery/
jason
Gute Sache, ich muss mehr jQuery lernen...
Hallo zusammen… Ich freue mich, dass Ihnen die Technik gefällt. Ich habe diesen Code-Schnipsel auf unserer neu veröffentlichten Website aktualisiert, seit ich ihn mit Chris besprochen habe. Ich poste gerade einen Blogbeitrag auf meiner Website und werde hier erneut kommentieren, wenn er fertig ist. Das neue Skript vergleicht tatsächlich die Domain des Links mit der Domain der aktuellen Seite und fügt die Aktion automatisch hinzu… es prüft nicht nur, ob "http://" im Link vorhanden ist. Das hilft bei einigen CMS-Tools, die URLs programmatisch vollständig qualifizieren.
Okay… ich habe den aktualisierten Code auf meinem Blog veröffentlicht. Schauen Sie dort nach, wenn Sie interessiert sind. Danke nochmal, Chris!
Toller Artikel, danke fürs Teilen!
Es war sehr interessant, darüber zu erfahren
Tolles Skript, Chris. Obwohl ich persönlich darauf verzichten werde, jedem ausgehenden Link _blank hinzuzufügen. Der Benutzer sollte selbst entscheiden, ob er ein neues Fenster möchte oder nicht.
Aber die Verfolgung ausgehender Links durch das Stat-Plugin von WordPress ist auch richtig, oder? Würde Google das missbilligen, also könnten sie Ihr GA-Konto entfernen? Weiß jemand etwas?
Koew, ja… in diesem Fall war das Öffnen der Links in einem neuen Browserfenster die gewünschte Aktion für die Website, die ich baute. Für andere Websites mit technischeren Zielgruppen würde ich das nicht tun. Auf jeden Fall können Sie das verkettete .attr am Ende dieses Teils des Skripts einfach weglassen.
Was Googles Missbilligung dieser Technik angeht… das ist tatsächlich etwas, das sie in ihrer API-Dokumentation vorschlagen. Das, kombiniert mit den neuen Event-Tracking-Funktionen, sollte jedem versichern, dass diese Technik sicher zu verwenden ist.
Ich habe etwas Ähnliches (und viel saubereres) vor einiger Zeit geschrieben.
Es verlässt sich zwar auf rel="external" (was Sie sowieso verwenden sollten), aber es wäre nicht schwer, den Selektor zu ändern.
http://www.aestheticallyloyal.com/docs/js/track-outgoing.js
Kolber… obwohl das sauberer ist, hätte es in der Situation, in der ich mich befand, als ich es schrieb, nicht funktioniert. Ich musste Links, die dynamisch aus einem CMS kamen, verarbeiten können. Einige Links waren lokal, andere waren extern. Wenn alle als rel="external" gesetzt wären, würde das nicht funktionieren, da lokale Links in GA falsch verfolgt würden.
Ich empfehle Ihnen dringend, stattdessen Event Tracking anstelle von _trackPageview() zu verwenden, wenn Ihr GA-Profil dies zulässt. Dies verhindert, dass ausgehende Klicks zu Ihren Seitenaufrufen gezählt werden, und liefert Ihnen genauere Seitenaufrufzahlen.
Gute Sache. Nur ein Hinweis für WordPress-Benutzer: Das Plugin Ultimate Google Analytics verfolgt auch ausgehende Links als Teil seiner Funktionalität. Ich frage mich, wie sich die tatsächliche Code-Implementierung unterscheidet?