Lektion 1 von 9
Ereignisse, Sitzungen, Nutzer: so misst Web-Analytics
Du verstehst, was ein Analysetool wirklich aufzeichnet, unterscheidest Ereignisse, Sitzungen und Nutzer sicher und berechnest Grundkennzahlen selbst mit SQL.
Worum es geht
Die Sprachschule LinguaPlus AG in Luzern hat eine schöne Website mit über hundert Kursseiten. Jeden Monat kommen Tausende Besucherinnen und Besucher, aber die Online-Anmeldungen stagnieren. Die Marketingleiterin stellt Aylin, Lernende im 3. Lehrjahr, eine scheinbar einfache Frage: "Wie viele Leute schauen sich einen Kurs an und melden sich dann nicht an?"
Niemand kann antworten. Es gibt zwar ein altes Analysetool, aber dort stehen dreissig Zahlen, und niemand weiss genau, was "Besucher", "Besuche" oder "Aktionen" eigentlich bedeuten. Genau hier beginnt Web-Analytics: nicht mit bunten Dashboards, sondern mit der Frage, was ein Analysetool überhaupt aufzeichnet.
In dieser Lektion lernst du die drei Grundbausteine jeder Auswertung kennen: Ereignisse, Sitzungen und Nutzer. Wenn du diese drei sauber auseinanderhalten kannst, verstehst du jede Kennzahl in Google Analytics 4 (GA4), Matomo oder Plausible, und du kannst sie sogar selbst mit SQL aus Rohdaten berechnen.
Was bei einem Seitenaufruf passiert
Stell dir eine Stempelkarte im Café vor. Jedes Mal, wenn du einen Kaffee kaufst, gibt es einen Stempel. Das Café weiss danach nicht, wer du bist, aber es sieht auf deiner Karte, wie oft du da warst. Ein Analysetool funktioniert ähnlich, nur viel detaillierter.
Wenn jemand www.linguaplus.ch/kurse/spanisch-a2 öffnet, passiert Folgendes:
Das Tracking-Script schickt eine kleine Nachricht an den Analytics-Server. Vereinfacht sieht sie so aus:
{
"ereignis": "page_view",
"client_id": "1873462.1759480211",
"session_id": "1759480211",
"zeitpunkt": "2026-09-14T19:42:07+02:00",
"seite": "/kurse/spanisch-a2",
"referrer": "https://www.google.ch/",
"geraet": "mobile"
}Der Server ergänzt weitere Angaben, zum Beispiel ein grobes Land oder eine Region aus der IP-Adresse, Browser und Betriebssystem. Später, wenn die lernende Person auf "Termin wählen" klickt oder das Anmeldeformular abschickt, sendet das Script weitere Nachrichten mit anderen Ereignisnamen.
Wichtig: Das Tool sieht keine Menschen, sondern nur einen Strom solcher Nachrichten. Alles, was du später in Berichten siehst, wird aus diesem Strom berechnet.
Ereignisse, Sitzungen und Nutzer
Nimm als Bild ein Einkaufszentrum. Es gibt Personen, die kommen (Nutzer). Jede Person kann an mehreren Tagen kommen (Sitzungen). Bei jedem Besuch macht sie Dinge: Laden betreten, Pullover anprobieren, an der Kasse zahlen (Ereignisse).
| Begriff | Was es ist | Beispiel LinguaPlus |
|---|---|---|
| Ereignis (Event) | eine einzelne gemessene Aktion mit Name, Zeitpunkt und Parametern | page_view auf /kurse/spanisch-a2, anmeldung_start mit Parameter sprache = spanisch |
| Sitzung (Session, in Matomo "Besuch") | eine Folge von Ereignissen desselben Nutzers ohne längere Pause | Abends von 19:42 bis 19:55 drei Kursseiten angeschaut |
| Nutzer (User, in Matomo "Besucher") | ein wiedererkannter Browser oder ein Gerät, erkannt über eine ID | dasselbe Handy kommt am Montag und am Donnerstag wieder |
Daraus folgt eine einfache Hierarchie: Ein Nutzer hat mindestens eine Sitzung, eine Sitzung hat mindestens ein Ereignis.
Wann endet eine Sitzung? In GA4 und in Matomo standardmässig nach 30 Minuten ohne Aktivität. Wer um 19:42 eine Seite öffnet, um 19:55 die nächste und dann erst um 20:40 weiterliest, hat zwei Sitzungen. GA4 beginnt um Mitternacht oder bei einer neuen Kampagnenquelle keine neue Sitzung, andere Tools tun das teilweise.
Wer ist ein Nutzer? Das Script speichert beim ersten Besuch eine zufällige ID in einem Cookie (bei GA4 die client_id). Kommt derselbe Browser wieder, ist es derselbe Nutzer. Das hat Folgen:
- Lea auf dem Handy und Lea am Laptop sind zwei Nutzer.
- Löscht Lea ihre Cookies oder surft privat, ist sie danach ein neuer Nutzer.
- Lehnt Lea das Tracking im Consent-Banner ab, wird sie je nach Einstellung gar nicht gezählt.
- Meldet sich Lea in einem Kundenkonto an, kann die Website eine eigene User-ID mitschicken. Dann lassen sich Geräte zusammenführen.
Die Tools verwenden unterschiedliche Namen für dasselbe:
| Konzept | GA4 (deutsche Oberfläche) | Matomo |
|---|---|---|
| Nutzer | Nutzer, Aktive Nutzer | Eindeutige Besucher |
| Sitzung | Sitzungen | Besuche |
| Ereignis | Ereignisse | Aktionen, Ereignisse |
| Ziel-Ereignis | Schlüsselereignis (früher Conversion) | Ziel |
Lea besucht die Website von LinguaPlus am Montagabend mit dem Handy: Um 19:42 öffnet sie die Startseite, um 19:50 eine Kursseite und um 20:35 nochmals dieselbe Kursseite. Am Dienstag öffnet sie die Kursseite am Laptop. Sie hat auf beiden Geräten in die Statistik eingewilligt und ist nicht eingeloggt. Was zählt das Analysetool (Sitzungsende nach 30 Minuten Inaktivität)?
Vom Ereignis zur Kennzahl
Aus dem Ereignisstrom berechnet das Tool alle Kennzahlen. Die wichtigsten:
| Kennzahl | Berechnung |
|---|---|
| Seitenaufrufe | Anzahl Ereignisse page_view |
| Sitzungen mit Interaktion (GA4) | Sitzungen, die länger als 10 Sekunden dauern oder ein Schlüsselereignis enthalten oder mindestens 2 Seitenaufrufe haben |
| Interaktionsrate (Engagement-Rate) | Sitzungen mit Interaktion / Sitzungen |
| Absprungrate (GA4) | 1 minus Interaktionsrate |
| Conversion-Rate (sitzungsbasiert) | Sitzungen mit Conversion / Sitzungen |
| Ereignisse pro Sitzung | Ereignisse / Sitzungen |
Ein Beispiel: An einem Tag zählt GA4 für LinguaPlus 1'200 Sitzungen, davon 780 mit Interaktion. Die Interaktionsrate beträgt 780 / 1'200 = 65 %, die Absprungrate damit 35 %.
Auch bei der Conversion-Rate musst du die Basis nennen. "4 % Conversion-Rate" kann heissen: 4 % der Sitzungen enthalten eine Anmeldung, oder 4 % der Nutzer haben sich angemeldet. Wer pro Nutzer rechnet, bekommt meist einen höheren Wert, weil ein Nutzer mehrere Sitzungen braucht, bis er sich entscheidet.
An einem Tag zählt GA4 für LinguaPlus 1'600 Sitzungen. 1'040 davon dauerten länger als 10 Sekunden, enthielten ein Schlüsselereignis oder hatten mindestens zwei Seitenaufrufe. Wie hoch ist die Absprungrate in GA4 (in %)?
Schritt für Schritt: Grundzahlen aus einer Ereignistabelle
Viele Tools erlauben einen Export der Rohdaten (GA4 zum Beispiel nach BigQuery, Matomo direkt aus seiner MySQL-Datenbank). Dann liegen die Ereignisse als Tabelle vor, und du kannst jede Kennzahl selbst nachrechnen. Das ist die beste Art, die Begriffe wirklich zu verstehen.
Aylin bekommt einen Auszug mit zehn Ereignissen:
| nutzer_id | sitzung_id | zeitpunkt | ereignis | seite |
|---|---|---|---|---|
| u1 | s1 | 2026-09-14 19:42 | page_view | /startseite |
| u1 | s1 | 2026-09-14 19:43 | page_view | /kurse/spanisch-a2 |
| u1 | s1 | 2026-09-14 19:44 | kurs_ansehen | /kurse/spanisch-a2 |
| u2 | s2 | 2026-09-14 20:05 | page_view | /kurse/englisch-b1 |
| u1 | s3 | 2026-09-17 12:10 | page_view | /kurse/spanisch-a2 |
| u1 | s3 | 2026-09-17 12:12 | anmeldung_start | /anmeldung |
| u1 | s3 | 2026-09-17 12:16 | anmeldung_abgeschlossen | /anmeldung/danke |
| u3 | s4 | 2026-09-17 21:30 | page_view | /startseite |
| u3 | s4 | 2026-09-17 21:31 | page_view | /kurse/italienisch-a1 |
| u2 | s5 | 2026-09-18 08:02 | page_view | /kontakt |
Schritt 1: Ereignisse zählen. Jede Zeile ist ein Ereignis.
SELECT COUNT(*) AS ereignisse FROM ereignis; -- 10Schritt 2: Nutzer zählen. Ein Nutzer kommt mehrfach vor, deshalb DISTINCT.
SELECT COUNT(DISTINCT nutzer_id) AS nutzer FROM ereignis; -- 3 (u1, u2, u3)Schritt 3: Sitzungen zählen.
SELECT COUNT(DISTINCT sitzung_id) AS sitzungen FROM ereignis; -- 5 (s1 bis s5)Schritt 4: Seitenaufrufe zählen. Nur Ereignisse mit dem Namen page_view.
SELECT COUNT(*) AS seitenaufrufe FROM ereignis WHERE ereignis = 'page_view'; -- 7Schritt 5: Sitzungen pro Nutzer. 5 / 3 = 1.67. Achtung: COUNT liefert ganze Zahlen, und SQLite teilt ganze Zahlen ganzzahlig (5 / 3 = 1). Mit 1.0 * erzwingst du eine Kommazahl.
SELECT ROUND(1.0 * COUNT(DISTINCT sitzung_id) / COUNT(DISTINCT nutzer_id), 2) AS sitzungen_pro_nutzer
FROM ereignis; -- 1.67Schritt 6: Conversion-Rate pro Sitzung. Nur Sitzung s3 enthält anmeldung_abgeschlossen. 1 von 5 Sitzungen ergibt 20 %. Pro Nutzer gerechnet ist es 1 von 3, also 33.3 %. Beides ist richtig, aber es sind zwei verschiedene Kennzahlen.
SELECT ROUND(100.0 * COUNT(DISTINCT CASE WHEN ereignis = 'anmeldung_abgeschlossen'
THEN sitzung_id END)
/ COUNT(DISTINCT sitzung_id), 1) AS cr_sitzung
FROM ereignis; -- 20.0Der Trick mit CASE WHEN ... THEN sitzung_id END liefert für alle anderen Zeilen NULL, und COUNT(DISTINCT ...) ignoriert NULL. So zählst du nur die Sitzungen mit Anmeldung.
Jetzt bist du dran. Im Labor rechnest du dieselben Grundzahlen für einen grösseren Auszug.
Labor: die Grundzahlen einer Woche
Die Tabelle ereignis enthält einen Auszug aus dem Matomo-Rohdatenexport von LinguaPlus (21. bis 24. September 2026). Jede Zeile ist ein Ereignis.
Schreibe eine Abfrage, die genau eine Zeile mit diesen fünf Spalten liefert (in dieser Reihenfolge):
| Spalte | Inhalt |
|---|---|
ereignisse | Anzahl aller Ereignisse |
nutzer | Anzahl verschiedener Nutzer |
sitzungen | Anzahl verschiedener Sitzungen |
seitenaufrufe | Anzahl Ereignisse mit dem Namen page_view |
cr_sitzung | Anteil der Sitzungen mit mindestens einem anmeldung_abgeschlossen, in Prozent, auf eine Dezimale gerundet |
Überlege vor dem Ausführen: Wie viele Sitzungen pro Nutzer erwartest du ungefähr?
Tabellen und Testdaten ansehen
CREATE TABLE ereignis (
id INTEGER PRIMARY KEY,
nutzer_id TEXT NOT NULL, -- pseudonyme ID aus dem Cookie
sitzung_id TEXT NOT NULL,
zeitpunkt TEXT NOT NULL, -- JJJJ-MM-TT HH:MM
ereignis TEXT NOT NULL,
seite TEXT NOT NULL
);
INSERT INTO ereignis VALUES
(1, 'u1', 's1', '2026-09-21 18:02', 'page_view', '/startseite'),
(2, 'u1', 's1', '2026-09-21 18:03', 'page_view', '/kurse/englisch-b2'),
(3, 'u1', 's1', '2026-09-21 18:04', 'kurs_ansehen', '/kurse/englisch-b2'),
(4, 'u2', 's2', '2026-09-21 19:15', 'page_view', '/kurse/franzoesisch-a1'),
(5, 'u2', 's2', '2026-09-21 19:16', 'kurs_ansehen', '/kurse/franzoesisch-a1'),
(6, 'u2', 's2', '2026-09-21 19:20', 'anmeldung_start', '/anmeldung'),
(7, 'u2', 's2', '2026-09-21 19:26', 'anmeldung_abgeschlossen', '/anmeldung/danke'),
(8, 'u3', 's3', '2026-09-22 07:40', 'page_view', '/startseite'),
(9, 'u1', 's4', '2026-09-22 12:05', 'page_view', '/kurse/englisch-b2'),
(10, 'u1', 's4', '2026-09-22 12:07', 'anmeldung_start', '/anmeldung'),
(11, 'u4', 's5', '2026-09-22 20:30', 'page_view', '/kontakt'),
(12, 'u4', 's5', '2026-09-22 20:31', 'beratung_angefragt', '/kontakt/danke'),
(13, 'u3', 's6', '2026-09-23 08:10', 'page_view', '/kurse/italienisch-a2'),
(14, 'u3', 's6', '2026-09-23 08:11', 'kurs_ansehen', '/kurse/italienisch-a2'),
(15, 'u5', 's7', '2026-09-23 21:45', 'page_view', '/startseite'),
(16, 'u1', 's8', '2026-09-24 18:30', 'page_view', '/anmeldung'),
(17, 'u1', 's8', '2026-09-24 18:33', 'anmeldung_abgeschlossen', '/anmeldung/danke'),
(18, 'u6', 's9', '2026-09-24 22:02', 'page_view', '/kurse/spanisch-a1');Typische Fehler
- Nutzer mit Menschen gleichsetzen. "Wir hatten 5'000 Kundinnen auf der Website" stimmt nicht. Es waren 5'000 Browser oder Geräte. Eine Person mit Handy und Laptop zählt doppelt, Personen ohne Einwilligung fehlen. Korrektur: von "Nutzern" sprechen und die Grenzen nennen.
- Nutzer über Tage addieren. Montag 300 Nutzer, Dienstag 280 Nutzer ergibt nicht 580 Nutzer für beide Tage, weil viele an beiden Tagen da waren. Sitzungen und Ereignisse darfst du addieren, Nutzer nicht. Korrektur: Den Zeitraum im Tool direkt auswählen.
- Conversion-Rate ohne Basis angeben. 20 % pro Sitzung und 33 % pro Nutzer beschreiben dieselben Daten. Korrektur: immer dazuschreiben, worauf sich die Rate bezieht.
- Kennzahlen verschiedener Tools 1:1 vergleichen. Matomo, GA4 und Plausible definieren Absprung, Sitzung und Nutzer leicht unterschiedlich. Korrektur: Beim Toolwechsel eine Übergangszeit mit beiden Tools messen und die Definitionen dokumentieren.
- Ganzzahlige Division in SQL.
5 / 3ergibt in SQLite1. Korrektur: mit1.0 *oder100.0 *multiplizieren, bevor du teilst.
Warum kann die Kennzahl 'Nutzer' in einem Analysetool von der Zahl der Menschen abweichen, die die Website tatsächlich besucht haben? Wähle alle zutreffenden Gründe.
Wähle alle zutreffenden Antworten.
Zusammenfassung
- Ein Analysetool zeichnet nur Ereignisse auf: Name, Zeitpunkt, Seite, eine ID aus dem Cookie und Parameter. Alles andere wird daraus berechnet.
- Eine Sitzung ist eine Folge von Ereignissen ohne mehr als 30 Minuten Pause, ein Nutzer ist ein wiedererkannter Browser oder ein Gerät.
- Nutzer sind keine Menschen: Mehrere Geräte, gelöschte Cookies und abgelehnte Einwilligungen verzerren die Zahl.
- Die Interaktionsrate in GA4 ist der Anteil Sitzungen mit mehr als 10 Sekunden, einem Schlüsselereignis oder mindestens zwei Seitenaufrufen. Die Absprungrate ist ihr Gegenteil.
- Jede Rate braucht eine Basis: pro Sitzung oder pro Nutzer, in welchem Zeitraum.
- Mit SQL berechnest du Grundzahlen aus Rohdaten selbst:
COUNT(*),COUNT(DISTINCT ...)und bedingtes Zählen mitCASE WHEN.
Mit deiner eigenen KI vertiefen
Kopiere einen Prompt in Claude, ChatGPT oder Claude Code. Er macht die KI zur Lernbegleitung statt zum Lösungsautomaten.
Sokratischer Coach: Ereignisse, Sitzungen, Nutzer Chat-KI
Du festigst die Grundbegriffe an kleinen Fällen. Die KI stellt Fragen und lässt dich rechnen, statt dir die Lösung zu geben.