Standardmäßig erfasst Google Analytics keine Klicks auf externe Links. Doch gerade um einen Einblick zu kriegen, welche Verweise von Nutzern gerne angenommen werden, ist es sinnvoll, über das Eventtracking diese Interaktionen zu erfassen und auswertbar zu gestalten. Da eine einheitliche Auswertungsbasis wichtig ist, werden bei uns zudem interne Links aus Beiträgen sowie interne Links über das Widget für verwandte Beiträge ebenso über das Eventtracking abgebildet.
Struktur der Eventdaten
Für eine optimale Auswertung übergeben wir die Eventdaten in folgender Struktur:
- Event Kategorie: Aktuelle URL
- Event Aktion: External link/Internal link/Internal related post
- Event Label: Die angeklickte URL
JS & jQuery Snippet zum erfassen externer & interner Linkaufrufe mit Google Analytics
//Link Tracking
(function($)
{
$('a.liexternal, a.liinternal, .wp_rp_content ul li a').click(function(e)
{
//Aktuelle URL
var current_url = window.location.href;
//Angeklickte URL
var clicked_url = $(this).attr('href');
//Checken ob der Link bereits getrackt wurde (je Seitenaufruf)
if(!e.isDefaultPrevented())
{
//Verhindere die Default Eventaktion (Linkklick = Seitenaufruf)
e.preventDefault();
//Manuelle Funktion um den Seitenaufruf nach Tracking zu bewirken
function loadPage()
{
document.location = clicked_url;
}
//Callback Funktion um den Seitenaufruf nach Tracking durchzuführen
//Unterschied zwischen Classic & Universal Analytics beachten!
_gaq.push(['_set', 'hitCallback', loadPage]);
if($(this).hasClass('liexternal'))
{
_gaq.push(['_trackEvent', current_url, 'External link', clicked_url]);
}
else if($(this).hasClass('liinternal'))
{
_gaq.push(['_trackEvent', current_url, 'Internal link', clicked_url]);
}
else if($(this).hasClass('wp_rp_title'))
{
_gaq.push(['_trackEvent', current_url, 'Internal related post', clicked_url]);
}
else
{
loadPage();
}
}
else
{
return true;
}
});
})(jQuery);
Google Analytics & die hitCallback Funktion
Je nachdem welcher Google Analytics Trackingcode auf Ihrer Seite im Einsatz ist, müssen Sie gegebenenfalls eine Anpassung des Eventtracking & der hitCallback Registrierung bewirken. Das obige Beispiel gilt für den Classic Analytics Code (ga.js). Beim Classic Analytics muss die Callback-Registrierung separat erfolgen und unmittelbar vor dem Eventtracker-Aufruf geschehen.
Beispiel der hitCallback Funktion für den Universal Analytics Code (analytics.js)
Beim Universal Analytics Trackingcode (analytics.js) ist es möglich, einen Callback auch direkt mit dem Eventtracker zu registrieren.
ga('send', 'event', current_url, 'External link', clicked_url, {'hitCallback':loadPage});
Abschließender Hinweis
Da wir das Plugin Link Indication sowie Wordpress Related Posts verwenden, ist es ein Leichtes die Links separiert von einander anzusprechen. Für Ihren eigenen Einsatz müssen Sie also die jQuery Selektoren eventuell anpassen. Weiterhin gibt es im Internet einige Snippets, die, neben dem registrierten, Callback bei Google Analytics als weitere Sicherheit über setTimeout() das Laden der Seite anstoßen. Vor diesem Einsatz möchten wir ausdrücklich abraten, denn viele Browser halten die aufgerufenen Seiten mittlerweile im Speicher vor, sodass diese schnell wieder angezeigt werden können, unterbinden aber die weitere JS-Ausführung. Wenn ein Nutzer nach einem Seitenwechsel nun über den "Zurück"-Button des Browsers zurückkehren möchte, wird er erneut zu vorherigen Seite geleitet, was ein unnötiges Ärgernis ist.