Session-Tracking

Das Session-Tracking (deutsch: Sitzungsverfolgung) wird dazu verwendet, die Aktionen eines Nutzers auf einer Website aufzuzeichnen. Dabei werden Ereignisse wie Klicks oder das Ausfüllen eines Formulars als Sequenzen behandelt und zu einer Session zusammengefasst, um ihn als einzelnen Client erfassen zu können.

Die Kommunikation zwischen Server und Client ist im Internet immer zustandslos. Das heißt, dass das verwendete HTTP-Protokoll jede Anfrage, wie beispielsweise den Aufruf einer Website, einzeln bearbeitet und darauf antwortet. Um einen Nutzer als Clienten, der ja mehrere Anfragen an den Server stellt, einordnen zu können, ist deshalb ein Tracking notwendig, das die zahlreichen Anfragen an den Server einem Nutzer zuordnet.[1] Dies geschieht durch den Austausch zusätzlicher Daten zwischen Server und Client.

Vorteile und Nutzen[Bearbeiten]

Das Session-Tracking erzeugt einen virtuellen Zustand. Der einzelne Nutzer wird mithilfe einer Sitzungs-ID eingeordnet. Alle Aktionen, die er durchführt, sind dieser ID zugehörig. Er kann einem Link folgen, Produkte in den Warenkorb legen oder Formulare ausfüllen – die eingegeben Daten werden als Zustand behandelt und stehen während der gesamten Sitzung zur Verfügung. Das erhöht das Nutzererlebnis und sorgt dafür, dass personenbezogene Daten nicht an den Server übertragen werden. Nur die Session-ID wird zwischen Server und Client ausgetauscht.

Zudem: Eine Sitzung dauert in der Regel eine bestimmte Zeiteinheit, die bei der Implementierung des Session-Trackings definiert wird. Jegliche Daten werden clientseitig gespeichert und nur für diesen Zeitraum vorgehalten. Sobald eine Sitzung beendet wird, verfallen die Daten.[2]

Session-Tracking kommt häufig bei Onlineshops zum Einsatz: Wenn Nutzer Formulardaten eingeben oder Produkte in einen Warenkorb legen, ist es hilfreich, wenn der Client diese Daten für die spätere Verwendung speichert.

Auch in Affiliate-Netzwerken wird Session-Tracking häufig verwendet: Klickt ein Nutzer auf einen Banner und besucht zwischenzeitlich eine andere Website, kann die Session-ID später beim Kauf eines Produktes hilfreich sein: Mit ihr lässt sich feststellen, welcher Affiliate der Auslöser für den Kauf war, um die Provision richtig zuzuordnen.[3]

Umsetzung[Bearbeiten]

Es gibt grundsätzlich vier verschiedene Möglichkeiten, ein Session-Tracking zu implementieren.[4]

Cookies[Bearbeiten]

Cookies sind am weitesten verbreitet beim Session-Tracking. Im folgenden Beispiel wird eine Session-ID generiert und mit Nutzerdaten in Form einer Tabelle (Hashmap) assoziiert. Anschließend können alle Daten, die zur Session-ID gehören (SessionInfo), ausgelesen werden. Der Cookie fungiert als Vermittler zwischen Nutzerdaten und Session-ID. Er kann sich auf mehrere Sessions beziehen (persistent) oder nach einer Session gelöscht werden (nicht-persistent). Im Beispiel handelt es sich um einen nicht-persistenten Cookie.[5]

String sessionID = makeUniqueString();
HashMap sessionInfo = new HashMap();
HashMap globalTable = findTableStoringSessions();
globalTable.put(sessionID, sessionInfo);
Cookie sessionCookie = new Cookie("JSESSIONID", sessionID);
sessionCookie.setPath("/");
response.addCookie(sessionCookie)

Hidden Form Field[Bearbeiten]

Versteckte Felder im HTML-Code können ebenfalls dazu verwendet werden, um ein Session-Tracking für bestimmte URLs einzufügen. Die Parameter dieser Felder werden dann beim Aufruf automatisch in die GET- und POST-Daten des Servers eingelesen und bei Abruf ausgelesen. Allerdings sind versteckte Felder an dynamische erzeugte Websites gebunden, sodass sich diese Methode nur für bestimmte Arten von Websites empfiehlt, beispielsweise Checkout-Seiten.[6]

<INPUT TYPE="HIDDEN" NAME="session" VALUE="1234">

URL Rewriting[Bearbeiten]

Bei diesem Ansatz wird jede URL, die der Nutzer aufruft, um einen Parameter ergänzt. Der Parameter fungiert als Session-ID und der Server assoziiert diesen mit den verfügbaren Nutzerdaten.

http://www.beispielseite/pfad/datei.html;jsessionid=a1234

Der letzte Teil der URL „;jsessionid=a1234“ identifiziert den Nutzer mit der Session-ID a1234. Problematisch bei diesem Ansatz ist die Tatsache, dass alle URLs wie bei versteckten Feldern dynamisch erzeugt werden müssen. Auf statischen Websites kann das URL-Rewriting zum Session-Tracking deshalb nicht benutzt werden.[7] Zudem kann beim URL Rewriting ein Session-Hijacking stattfinden.[8]

HTTP Session[Bearbeiten]

Das Tracking einer Sitzung kann auch mithilfe der HTTP Session API von Java realisiert werden. Hier wird ein Objekt innerhalb der HTTP-Umgebung mithilfe von Webcontainern und Servlets erzeugt und kann mittels verschiedener Methoden adressiert, gespeichert und verändert werden. Die API bietet alle Tools, die für ein funktionierendes Session-Tracking notwendig sind.[9]

HttpSession session = request.getSession();
synchronized(session) {
SomeClass value =
(SomeClass)session.getAttribute("someID");
if (value == null) {
value = new SomeClass(...);
}
doSomethingWith(value);
session.setAttribute("someID", value);
}

Ein HTTP Session-Tracking basiert entweder auf Cookies oder auf dem URL-Rewriting. Im letzten Fall sind Änderungen an den URLs notwendig, um Zustandsinformationen einer angeforderten URL mitzugeben.

Kostenfreie Anbieter[Bearbeiten]

Folgende Anbieter von Webanalyse-Tools verwenden (auch) Session-Tracking, um Aktionen der Nutzer aufzuzeichnen und auszuwerten. Die Anbieter sind kostenlos. Jedoch ist die Benutzung oft damit verbunden, dass die Daten der Website dem System zur Verfügung stehen müssen – also extern gespeichert werden.

  • Google Analytics: Der am meisten verwendete Anbieter im Bereich Webanalyse.[10]
  • Piwik: Im deutschsprachigen Raum die wohl bekannteste kostenlose Webanalyse-Software nach Google Analytics.[11]
  • eAnalytics: Eine Open Source Software für Privatpersonen und Unternehmen, die auf die eigenen Bedürfnisse zugeschnitten werden kann.[12]
  • Open Web Analytics: Quelloffene Software, die auch mit WordPress und MediaWiki harmoniert.[13]

Bedeutung für die Webanalyse[Bearbeiten]

Session-Tracking gilt als Standard in der Webanalyse und hat gegenüber anderen Methoden einige Vorteile. Im Kontrast dazu ist die Anwendung auf mobilen Endgeräten mit dieser Art von Webtracking nicht möglich. In Anbetracht der steigenden Nutzung mobiler Endgeräte im E-Commerce bildet ein Session-Tracking nur einen Teil der Interaktionen ab und kann somit nur bedingt als akkurate Datenbasis für eine umfassende Webanalyse betrachtet werden.

Wie bei anderen Tracking-Modellen auch sind datenschutzrechtliche Aspekte unbedingt zu beachten. Jegliche personenbezogenen Daten müssen maskiert oder von den Nutzerdaten getrennt werden. Auch eine Einwilligung des Nutzers ist unter bestimmten Bedingungen einzuholen. Beispielsweise dann, wenn Session-Tracking nur ein Teil des Trackings darstellt und zusätzlich noch die IP-Adresse abgerufen und gespeichert wird.[14]

Einzelnachweise[Bearbeiten]

  1. Session Tracking pdf.coreservlets.com. Abgerufen am 15.12.2014
  2. Java ist auch eine Insel openbook.galileo-press.de. Abgerufen am 15.12.2014
  3. Was ist Affiliate Marketing? Teil 2: Technik, Vor-/Nachteile und Ausblick webmasterpro.de. Abgerufen am 15.12.2014
  4. Session Tracking java-programming.info. Abgerufen am 15.12.2014
  5. Session Tracking pdf.coreservlets.com. Abgerufen am 15.12.2014
  6. Servlets - Session Tracking tutorialspoint.com. Abgerufen am 15.12.2014
  7. A Fast Introduction to Basic Servlet Programming informit.com. Abgerufen am 15.12.2014
  8. A Fast Introduction to Basic Servlet Programming informit.com. Abgerufen am 15.12.2014
  9. Session Tracking java-programming.info. Abgerufen am 15.12.2014
  10. Google Analytics eanalytics.de. Abgerufen am 15.12.2014
  11. Piwik piwik.org. Abgerufen am 15.12.2014
  12. eAnalytics eanalytics.de. Abgerufen am 15.12.2014
  13. Open Web Analytics openwebanalytics.com. Abgerufen am 15.12.2014
  14. Whitepaper Webanalyse und Datenschutz bvdw.org. Abgerufen am 15.12.2014

Weblinks[Bearbeiten]