Sonntag, 27. Januar 2008

Google Analytics und Website Suche mit statischen dynamischen URLs

Um Google-Analytics und die damit mögliche Auswertung der eigenen seiteninternen Suchfunktion auch für unveränderliche dynamische URLs* lauffähig zu bekommen, muss man sich kurz mit der Funktionsweise dieses Tracking-Tools auseinandersetzen. Grundsätzlich basiert die Auswertung von Analytics auf dem Auslesen der aktuell aufgerufenen URL mittels eingebundenem JavaScript. Bei Webprojekten die aus welchen Gründen auch immer nach einem POST- oder GET-Befehl bei jedem Seitenaufruf die gleiche URL ohne weitere Parameter anzeigen (z.B. meinepage.de/index.php oder suche.php) ist also ein kleines Workaround notwendig, welches dem Analytics-Script sozusagen eine URL vorgaukelt. (Hierfür benötigen Sie Programmierkenntnisse und Zugriff auf Ihr CMS!)


Grundlagen

Der Code, der im Quelltext unmittelbar vor dem </body>-Tag eingefügt werden sollte (nicht muss) besteht aus zwei Teilen:

Der erste Teil lädt das fürs Tracking notwendige JavaScript und muss immer vor dem zweiten Teil stehen:

<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"><script>


Der zweite Teil übergibt die notwendigen Variablen an das Trackingscript:

<script type="text/javascript">
_uacct = "UA-12345-6";
urchinTracker();
<script>


Die Variable _uacct steht für die ID des Analytics-Accounts (hier: 12345) nebst Nummer des aktuell zu trackenden Projektes (hier: 6) und muss natürlich Ihre eigene Zahlenfolge enthalten. Mit dem Aufruf urchinTracker() wird sozusagen eine leere Variable übergeben, die das Script dazu veranlasst, die aktuelle URL auszulesen und zu verarbeiten. Hier ist unser Ansatzpunkt!

Würden wir anstelle dessen urchinTracker("/contentseite.html") hineinschreiben, sehen wir später im Bericht, dass die Seite contentseite.html aufgerufen wurde. Natürlich macht es keinen Sinn, hier einen festen Wert zu hinterlegen, da Sie ja wissen wollen, welche Inhaltsseite wie oft aufgerufen wurde. Je nachdem, ob Ihre Seite aus reinem PHP-Code heraus erstellt wird oder Sie eine Template-Engine benutzen, müssen Sie an dieser Stelle eine Variable einsetzen. Besonders dafür geeignet ist der Titel der Seite, den Sie wahrscheinlich ohnehin aus der Datenbank auslesen, um ihn anzuzeigen. Hier mal ein Beispiel in Smarty-Notation:

urchinTracker("/{$Content.Titel}");

Besonders Ordentliche können hier auch noch die jeweilige Hierarchie einfügen. Eine Endung auf .html ist nicht notwendig.


Website-Suche

Die Auswertung über die neue Website-Suche von Analytics basiert natürlich auf dem gleichen Prinzip und damit auch unser Workaround. Bei der Aktivierung dieser Auswertung in den Profil-Einstellungen (wie das geht erfahren Sie hier) müssen Sie über einen Suchparameter angeben, an welcher Stelle der (fiktiven) URL der Suchbegriff steht. Analytics wertet dann alles was in der URL zwischen dem darauffolgenden Gleichheitszeichen und dem nächsten Ampersant (&) steht als eingegeben Suchbegriff. Bei einer Suche auf google.de würde das so aussehen:

http://www.google.de/search?hl=de&q=suchbegriff&meta=

Der Suchparameter ist hier also "q".

Da wir den Suchbegriff auch in unserer vorgegaukelten URL mitliefern müssen, benötigen wir natürlich die entsprechende Variable. In den meisten Fällen wird diese auf Ihrer Suchergebnisseite ohnehin angezeigt: "Ihre Suche nach XYZ lieferte folgende Ergebnisse:"
Unsere Parameterübergabe sieht dann wie folgt aus:

urchinTracker("/?q={$Suchbegriff}");

Voila!

Jetzt besteht zusätzlich noch die Möglichkeit, eine Kategorie (z.B. Seiten, PDF-Dokumente, Telefonbucheinträge) zu übergeben, sofern Ihre Suchfunktion die Ergebnisse entsprechend aufgliedert. Der Parameter für die Kategorie wäre in diesem Fall "k":

urchinTracker("/?q={$Suchbegriff}&k={$Kategorie}");


Noch eine Empfehlung: Auch wenn Ihre Suchfunktion ersteinmal keine Kategorien zur Verfügung stellt, unterteilen sich Ihre Suchergebnisse naturgemäß in mindestens zwei Kategorien - nämlich "mit" und "ohne" Ergebnis. Dies kann Ihnen später in der Auswertung zeigen, welche Inhalte Ihre Besucher gern gefunden hätten. Vereinfacht also:

urchinTracker("/?q={$Suchbegriff}&k=mit");

bzw.

urchinTracker("/?q={$Suchbegriff}&k=ohne");
____________________
*) Die Einordnung solcher URLs als statisch, aber eigentlich dynamisch ist vielleicht etwas eigenwillig - ich lasse mich hier gern eines Besseren belehren. Man könnte das vielleicht mit einem Saxophon vergleichen, das ja streng genommen zu den Holzblasinstrumenten zählt.

Labels: , , ,