Rss Feed
Tweeter button
Facebook button

Google-Analytics Site-Search mit URL-Rewriting

Posted by admin at 26 Juli 2011

Category: Allgemein, Google Analytics, Tips & Tricks

Schlagwörter: , , , , , ,

Wer gerne das Site-Search Feature von Google-Analytics verwendet, um die Suchanfragen von Benutzern auf einer Webseite zu analysieren wird höchstwahrscheinlich auch mal mit einem speziellen Problem konfrontiert gewesen sein. Site-Search funktioniert nicht mehr sobald die URLs der Webseite mittels URL-Rewriting umgeschrieben werden. Dann nämlich kann Google-Analytics keinen Suchparameter, wie z.B. ?search=testsuche in der URL finden. Lediglich nur noch etwas wie /suchen/testsuche oder ähnliches.

Wie kann man Google-Analytics jetzt diese verloren gegangene Suchinformation wieder bereitstellen? Nach einigen Probieren und Recherchieren im Internet bin ich zu einer Lösung gekommen. Man kann das Problem ganz elegant mittels eines virtuellen Pageviews lösen. Am besten man verwendet den asynchronen Google-Ananlytics Code (Das sollte man meiner Meinung nach sowieso) und modifiziert die Zeile

_gaq.push(['_trackPageview']); nach
_gaq.push(['_trackPageview','search-result?search=TESTSUCHE']);.

Jetzt wird TESTSUCHE als Suchparameter übergeben. Das ganze wollen wir natürlich dynamisch. Mit PHP habe ich das z.B. folgendermaßen realisiert.

if (strlen($_GET["search"]))
$site_search = ",'/search-result?search=".rawurlencode($_GET["search"])."'";

echo "<script type=\"text/javascript\">

window.google_analytics_uacct = \"YOUR_GOOGLE_ANALYTICS_ID_HERE\";

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'YOUR_GOOGLE_ANALYTICS_ID_HERE']);
_gaq.push(['_trackPageview'$site_search]);
_gaq.push(['_trackPageLoadTime']);
_gaq.push(['_gat._anonymizeIp']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

</script>\n";

So wird der zusätzliche Pageview Aufruf nur initiiert, wenn auch tatsächlich eine Suchanfrage stattfindet. Wichtig ist auch den Suchparameter mit rawurlencode zu kodieren. Ich empfehle außerdem, den GET Parameter vor der Weiterverarbeitung zu prüfen und nicht direkt zu verwenden um möglichen Angriffen vorzubeugen. Der Suchparameter in Google-Analytics muss jetzt nur noch als “search” angegeben werden und Google-Analytics Site-Search funktioniert jetzt auch mit URL-Rewriting.

Bewerte diesen Artikel

Gefallen? Bitte teilen...
Tweet about this on TwitterShare on FacebookShare on Google+Email this to someone

Schreibe einen Kommentar

Schreibe einen Kommentar
  • (required)
  • (required) (will not be published)