Sitzungen und Besucher

Die Webanalyse zählt “Besuche” statt “Seitenaufrufe”:

  • Ein “Seitenaufruf” wird jedes Mal gezählt, wenn eine Seite geladen wird.

  • Ein “Besuch” wird beim ersten Laden einer Seite gezählt. Lädt jemand die Seite neu oder wechselt zu einer anderen Seite und kehrt zurück, zählt das als ein einziger Besuch.

In aller Regel möchten Sie Besuche erfassen, keine Seitenaufrufe. Andernfalls würde ein Nutzer, der eine Seite zehnmal neu lädt, auch zehnmal gezählt; das ist wenig aussagekräftig.

Diese Funktion lässt sich in den Website-Einstellungen deaktivieren: Einstellungen → Datenerfassung → Sessions. Ist sie deaktiviert, gilt jeder Seitenaufruf als eigenständiger “Besuch”.

Technische Details

Die Identifikation von Besuchern erfolgt wie folgt:

  1. Eine Session-ID wird als concat(siteID, User-Agent, IP) gebildet.

  2. Diese wird im Arbeitsspeicher als Zuordnung Session-ID → UUIDv4 für 8 Stunden gespeichert.

  3. Eine Zuordnung UUID → seen_paths wird (ebenfalls im Arbeitsspeicher) geführt, um neue Besuche für unterschiedliche Pfade zu zählen.

  4. Die UUID wird in der Datenbank verwendet.

IP-Adresse und User-Agent werden nie in der Datenbank oder auf der Festplatte gespeichert; die zufällige UUID lässt sich auf keine Weise zurückverfolgen.

Die Daten liegen ausschließlich im Arbeitsspeicher, der für grundlegende Netzwerkvorgänge ohnehin benötigt wird.


Als Pseudocode:

session_key    = site_id + user_agent + IP
count_as_visit = false

# We've seen this session before.
if sessions[session_key] and sessions[session_key].newer_than(8_hours)
    # Only count as visit if this session hasn't visited this path yet.
    if not sessions[session_key].seen_path(current_path)
        count_as_visit = true
        add_current_path(sessions[session_key])
    end
else
    # Generate new session.
    sessions[session_key] = create_random_uuid()
    add_current_path(sessions[session_key])
    count_as_visit = true
end

# Store pageview; only the random UUID in sessions[session_key] is stored,
# and NOT session_key
store_pageview()

# Increate counter to make the charts go up.
if count_as_visit
    increase_counter_in_database()
end

Fragen oder Probleme?

Bei Fragen oder Schwierigkeiten stehen wir Ihnen gern zur Verfügung. Die meisten Probleme lassen sich schnell klären.

Kontakt aufnehmen: anzeigen