From ddb91a995018a92e76689530cc7dbff4ffd7e3b5 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 1 Oct 2026 18:22:27 +0000 Subject: [PATCH] =?UTF-8?q?Analyse:=20gepr=C3=BCfte=20Rechtstexte=20Fassun?= =?UTF-8?q?g=202026-10-02=20ver=C3=B6ffentlichen=20(HTML,=20PDF,=20Zusatzs?= =?UTF-8?q?eiten-Vorlage,=20Archiv)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- docs/rechtliches/archiv/README.md | 9 + docs/rechtliches/archiv/banner-2026-10-02.md | 21 ++ .../datenschutz-analyse-2026-10-02.html | 84 ++++++++ docs/rechtliches/avv-website-analyse.md | 124 ++++++------ .../leistungsbeschreibung-website-analyse.md | 108 ++++++---- .../avv-website-analyse-2026-10-02.html | 189 ++++++++++++++++++ .../avv-website-analyse-2026-10-02.pdf | Bin 0 -> 109249 bytes ...schreibung-website-analyse-2026-10-02.html | 164 +++++++++++++++ ...eschreibung-website-analyse-2026-10-02.pdf | Bin 0 -> 94042 bytes runner/src/templates/datenschutz-analyse.html | 66 ++++-- runner/test/analytics-inject.test.js | 4 +- scripts/build-legal-pdfs.sh | 25 ++- server/index.js | 3 + server/services/analyseLegal.js | 54 +++++ test/analyseLegal.test.js | 78 ++++++++ test/avvPage.test.js | 36 ++-- 16 files changed, 827 insertions(+), 138 deletions(-) create mode 100644 docs/rechtliches/archiv/README.md create mode 100644 docs/rechtliches/archiv/banner-2026-10-02.md create mode 100644 docs/rechtliches/archiv/datenschutz-analyse-2026-10-02.html create mode 100644 public/rechtliches/avv-website-analyse-2026-10-02.html create mode 100644 public/rechtliches/avv-website-analyse-2026-10-02.pdf create mode 100644 public/rechtliches/leistungsbeschreibung-website-analyse-2026-10-02.html create mode 100644 public/rechtliches/leistungsbeschreibung-website-analyse-2026-10-02.pdf create mode 100644 server/services/analyseLegal.js create mode 100644 test/analyseLegal.test.js diff --git a/docs/rechtliches/archiv/README.md b/docs/rechtliches/archiv/README.md new file mode 100644 index 0000000..059dc32 --- /dev/null +++ b/docs/rechtliches/archiv/README.md @@ -0,0 +1,9 @@ +# Archiv der Analyse-Texte + +Jede ausgelieferte Fassung bleibt hier nachvollziehbar. `BANNER_VERSION` im Client (`analytics/client/core.js`) und `config.analyse.avvVersion` tragen dieselbe Fassung. + +| Fassung | gültig ab | Banner-Text | Zusatzseite | +|---|---|---|---| +| 2026-10-02 | offen bis Livegang | [banner-2026-10-02.md](banner-2026-10-02.md) (`BANNER_VERSION` 2026-10-02) | [datenschutz-analyse-2026-10-02.html](datenschutz-analyse-2026-10-02.html) | + +AVV und Leistungsbeschreibung je Fassung: `public/rechtliches/avv-website-analyse-.html|pdf` und `leistungsbeschreibung-website-analyse-.html|pdf`. „Gültig ab“ wird beim Livegang eingetragen. diff --git a/docs/rechtliches/archiv/banner-2026-10-02.md b/docs/rechtliches/archiv/banner-2026-10-02.md new file mode 100644 index 0000000..6d42776 --- /dev/null +++ b/docs/rechtliches/archiv/banner-2026-10-02.md @@ -0,0 +1,21 @@ +# Banner-Text Fassung 2026-10-02 + +Quelle: `analytics/client/core.js` (Konstanten `BANNER_*`). Wortgleich zu `banner-portal-mailtexte.md` § 1. + +- `BANNER_VERSION`: 2026-10-02 + +## Fließtext (BANNER_TEXT) + +Um unsere Website zu verbessern, zählen wir Seitenaufrufe mit Land und Gerätetyp, ohne Kennung. Mit Deiner Zustimmung messen wir zusätzlich, von welcher Website Du kommst, wie lange Du bleibst, wie weit Du scrollst und wo Du klickst (Heatmap), mit einer täglich wechselnden Kennung. Die Messung betreibt für uns die WEBklar GbR in Deutschland, ohne Cookies und ohne Werbung. Nach „Ablehnen“ zählen wir nur noch, dass Du abgelehnt hast. Deine Zustimmung kannst Du jederzeit über „Datenschutz-Einstellungen“ mit Wirkung für die Zukunft widerrufen. Details: [Datenschutz](/datenschutz-analyse.html) + +## aria-label (BANNER_ARIA) + +Einwilligung zur Reichweitenmessung + +## Schaltflächen + +„Ablehnen“ · „Annehmen“ (gleich gestaltet, Ablehnen zuerst) + +## Einstellungs-Link (SETTINGS_LABEL) + +Datenschutz-Einstellungen diff --git a/docs/rechtliches/archiv/datenschutz-analyse-2026-10-02.html b/docs/rechtliches/archiv/datenschutz-analyse-2026-10-02.html new file mode 100644 index 0000000..e46e1e7 --- /dev/null +++ b/docs/rechtliches/archiv/datenschutz-analyse-2026-10-02.html @@ -0,0 +1,84 @@ + + + + + + +Datenschutz – Reichweitenmessung + + + +

← Zur Startseite

+ +

Datenschutz bei der Reichweitenmessung

+

Ergänzung zur Datenschutzerklärung dieser Website · Stand: 02.10.2026

+

Diese Seite beschreibt nur die Reichweitenmessung. Alle übrigen Datenschutzhinweise findest Du in der Datenschutzerklärung dieser Website; Impressum und Datenschutzerklärung erreichst Du über die Startseite.

+ +

Verantwortlicher

+

{{company}}
{{#address}}{{address}}
{{/address}}E-Mail: {{email}}

+

Falls es einen Datenschutzbeauftragten gibt, findest Du seine Kontaktdaten in der Datenschutzerklärung dieser Website.

+ +

Worum es geht

+

Wir möchten verstehen, wie diese Website genutzt wird, um sie zu verbessern: Welche Seiten werden gelesen, woher kommen die Besucher, wo wird geklickt? Dafür nutzen wir eine eigene Messung ohne Cookies und ohne Dienste von Google, Meta oder anderen Werbenetzwerken. Wir nutzen die Daten nicht für Werbung und bilden keine Profile einzelner Besucher. Die Messung läuft auf einem Server in Deutschland.

+

Damit die Messung arbeiten kann, lädt Dein Browser bei jedem Seitenaufruf ein Skript von einem Server der WEBklar GbR. Dabei erhält dieser Server, wie bei jeder Datei, die eine Website lädt, technisch Deine IP-Adresse und Dein Browser-Kennzeichen (User-Agent). Das gilt auch, wenn Du ablehnst oder „Global Privacy Control“ aktiviert hast. Wir speichern und protokollieren beides nicht.

+ +

Solange Du im Banner nichts ausgewählt hast

+

Dann zählen wir den Aufruf der Seite. Das Skript übermittelt dafür nur die Adresse der Seite und die Angabe, dass das Banner angezeigt wurde. Gespeichert werden:

+
    +
  • der Seitenpfad (ohne Suchbegriffe oder Parameter hinter dem „?“),
  • +
  • das Land, das wir aus Deiner IP-Adresse ableiten,
  • +
  • die Geräteklasse (Handy, Tablet oder Computer), die wir aus dem Browser-Kennzeichen ableiten,
  • +
  • der Zeitpunkt, auf die volle Stunde gerundet, und
  • +
  • ein Zähler dafür, dass das Banner angezeigt wurde.
  • +
+

IP-Adresse und Browser-Kennzeichen verwenden wir nur kurz im Arbeitsspeicher: um Land und Geräteklasse zu bestimmen, um automatische Abrufe durch Programme (Bots) auszusortieren und um zu verhindern, dass die Messung durch massenhafte Anfragen verfälscht wird. Für diese Mengenbegrenzung bilden wir aus Deiner IP-Adresse einen Prüfwert (Hash), den wir nur im Arbeitsspeicher halten und nicht speichern. Eine Kennung, mit der wir Dich wiedererkennen könnten, speichern wir ohne Deine Einwilligung nicht.

+

Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO. Unser berechtigtes Interesse ist, die Nutzung unserer Website in Zahlen zu kennen, das Banner zu betreiben und die Messung vor Missbrauch zu schützen.

+ +

Wenn Du „Ablehnen“ wählst

+

Dann zählen wir einmal, dass abgelehnt wurde, und das Skript sendet danach nichts mehr, auch keine Seitenaufrufe. Sendet Dein Browser das Signal „Global Privacy Control“ oder „Do Not Track“, zeigen wir das Banner gar nicht an und zählen nichts.

+ +

Wenn Du „Annehmen“ wählst

+

Dann messen wir zusätzlich:

+
    +
  • von welcher Website Du gekommen bist (nur der Domainname),
  • +
  • die Größenklasse Deines Browserfensters,
  • +
  • eine Besucher-Kennung, die täglich wechselt. Wir berechnen sie aus IP-Adresse und Browser-Kennzeichen mit einem Schlüssel, der jeden Tag neu erzeugt und nicht gespeichert wird. Am selben Tag könnten wir die Kennung damit nachrechnen. Nach dem Wechsel des Schlüssels lässt sie sich nicht mehr aus Deiner IP-Adresse berechnen und nicht mit Kennungen anderer Tage verknüpfen,
  • +
  • wie lange Du auf einer Seite bleibst (ab dem Laden der Seite) und wie weit Du scrollst,
  • +
  • wo auf der Seite geklickt wird: die Klickposition und den Aufbau des angeklickten Elements, ohne Texte und ohne Eingaben in Formulare (für eine „Heatmap“),
  • +
  • ob Du auf eine Telefonnummer, eine E-Mail-Adresse, einen WhatsApp-Link oder einen Link zu einer anderen Website klickst (dann mit deren Domainname, nicht mit der Nummer oder Adresse selbst), und
  • +
  • einen Zähler dafür, dass Du „Annehmen“ gewählt hast.
  • +
+

Rechtsgrundlage ist Deine Einwilligung nach § 25 Abs. 1 TDDDG und Art. 6 Abs. 1 lit. a DSGVO.

+ +

Was in Deinem Browser gespeichert wird

+

Wir speichern Deine Auswahl („Annehmen“ oder „Ablehnen“) mit Datum und der Fassung des Banner-Textes im lokalen Speicher Deines Browsers (Eintrag „wk-consent“), damit wir Dich nicht bei jedem Seitenaufruf erneut fragen. Das ist ohne Einwilligung zulässig (§ 25 Abs. 2 Nr. 2 TDDDG). Die Auswahl gilt 183 Tage, danach fragen wir erneut. Du kannst den Eintrag jederzeit selbst löschen, indem Du die Website-Daten in Deinem Browser löschst.

+ +

Speicherdauer

+

Einzelne Seitenaufrufe, Ereignisse und Klickpositionen löschen wir nach 30 Tagen. Danach bleiben nur zusammengefasste Tageswerte, also Summen je Tag, etwa Aufrufe je Seite oder je Land, ohne Besucher-Kennung. Wir löschen sie nach 25 Monaten, spätestens rund 60 Tage nach dem Ende der Messung. Unser Dienstleister sichert den Server täglich; gelöschte Daten bleiben dort bis zu sieben Tage erhalten.

+ +

Empfänger

+

Die Messung betreibt für uns die WEBklar GbR, Am Schwimmbad 10, 67722 Winnweiler, als Auftragsverarbeiter. WEBklar darf die Daten nur auf unsere Weisung und für unsere Zwecke verwenden. Der Server steht bei der Hetzner Online GmbH in Deutschland, die als weiterer Auftragsverarbeiter eingesetzt wird. Eine Übermittlung in Länder außerhalb der EU bzw. des EWR findet nicht statt.

+ +

Freiwilligkeit

+

Du bist weder gesetzlich noch vertraglich verpflichtet, uns diese Daten bereitzustellen. Wenn Du ablehnst oder Deine Einwilligung widerrufst, kannst Du die Website trotzdem uneingeschränkt nutzen. Eine automatisierte Entscheidungsfindung findet nicht statt.

+ +

Einwilligung widerrufen

+

Du kannst Deine Einwilligung jederzeit mit Wirkung für die Zukunft widerrufen: Klicke auf „Datenschutz-Einstellungen“ (in der Regel unten rechts auf jeder Seite) und wähle „Ablehnen“. Die Rechtmäßigkeit der Verarbeitung bis zum Widerruf bleibt unberührt.

+ +
+

Widerspruchsrecht

+

Du kannst der Zählung nach Art. 6 Abs. 1 lit. f DSGVO jederzeit aus Gründen widersprechen, die sich aus Deiner besonderen Situation ergeben (Art. 21 DSGVO). Am einfachsten wählst Du im Banner oder über „Datenschutz-Einstellungen“ „Ablehnen“ oder aktivierst in Deinem Browser das Signal „Global Privacy Control“. Dann sendet das Skript keine Daten mehr. Du kannst Deinen Widerspruch auch an die oben genannte E-Mail-Adresse richten.

+
+ +

Deine Rechte

+

Du hast das Recht auf Auskunft, Berichtigung, Löschung, Einschränkung der Verarbeitung und Datenübertragbarkeit (Art. 15 bis 18 und 20 DSGVO). In den Messdaten speichern wir keine Namen, keine IP-Adressen und keine Kennung, die länger als einen Tag gilt, und wir runden Zeitpunkte auf die volle Stunde. Deshalb können wir gespeicherte Messdaten in der Regel nicht Dir zuordnen (Art. 11 DSGVO). Anders kann es sein, solange die Zugriffsprotokolle des Webservers noch vorhanden sind (14 Tage). Wenn Du uns Datum, ungefähre Uhrzeit, besuchte Seiten und, wenn Du möchtest, Deine IP-Adresse nennst, prüfen wir, ob eine Zuordnung möglich ist. Ist das nicht möglich, teilen wir Dir das mit.

+

Mit Deinen Anliegen kannst Du Dich jederzeit an die oben genannte Adresse wenden. Außerdem hast Du das Recht, Dich bei einer Datenschutz-Aufsichtsbehörde zu beschweren (Art. 77 DSGVO).

+ + diff --git a/docs/rechtliches/avv-website-analyse.md b/docs/rechtliches/avv-website-analyse.md index d3225c0..77d5b6c 100644 --- a/docs/rechtliches/avv-website-analyse.md +++ b/docs/rechtliches/avv-website-analyse.md @@ -1,47 +1,54 @@ # Auftragsverarbeitungsvertrag Website-Analyse (Art. 28 DSGVO) -> **Entwurf – vor Verwendung anwaltlich prüfen lassen.** Dieser Text ist keine Rechtsberatung. Stellen mit „Prüfpunkt Anwalt“ sind offen. - -**Fassung 2026-10-01** +**Fassung 2026-10-02** zwischen dem Kunden als Verantwortlichem („Kunde“) und der WEBklar GbR, Am Schwimmbad 10, 67722 Winnweiler, vertreten durch die Gesellschafter Kenso Grimm und Justin Klein, als Auftragsverarbeiter („WEBklar“). -Dieser Vertrag ergänzt den Auftragsverarbeitungsvertrag in Anlage 1 der Abo-Bedingungen. Er wird vereinbart, wenn der Kunde im Kundenportal die Funktion „Website-Analyse“ einschaltet und dabei die Zustimmung zu dieser Fassung bestätigt (Haken im Portal; das Portal speichert Fassung, Zeitpunkt und Person). Schaltet ein Mitarbeiter von WEBklar die Funktion auf Wunsch des Kunden ein, bestätigt der Mitarbeiter im System, dass der Kunde diese Fassung des Vertrags bestätigt hat. Gespeichert werden die Fassung, der Zeitpunkt und der Name des Mitarbeiters. Bei Zustimmung im Kundenportal wird die Zustimmung dem Kundenkonto zugeordnet. +## Vorbemerkung: Abschluss und Verhältnis zu anderen Verträgen - - +(1) Der Kunde schließt diesen Vertrag, wenn er im Kundenportal die Funktion „Website-Analyse“ einschaltet und dabei per Haken diesem Vertrag und der Leistungsbeschreibung „Website-Analyse“ in der angezeigten Fassung zustimmt. Das Portal speichert die Fassung, den Zeitpunkt, das Kundenkonto und die angemeldete Person. Anschließend sendet WEBklar dem Kunden eine E-Mail, die beide Texte in dieser Fassung als PDF enthält und auf sie verlinkt. + +(2) Ein Mitarbeiter von WEBklar darf die Funktion nur einschalten, wenn der Kunde vorher in Textform (etwa im Chat des Kundenportals oder per E-Mail) erklärt hat, dass er diesem Vertrag und der Leistungsbeschreibung in der aktuellen Fassung zustimmt. WEBklar speichert die Fassung, das Datum und den Weg dieser Erklärung, den Zeitpunkt des Einschaltens und den Namen des Mitarbeiters. Der Kunde erhält die E-Mail nach Absatz 1. + +(3) Dieser Vertrag ergänzt den Auftragsverarbeitungsvertrag in Anlage 1 der Abo-Bedingungen. Für die Website-Analyse geht er Anlage 1 vor; im Übrigen gilt Anlage 1 ergänzend. In Datenschutzfragen geht er den Abo-Bedingungen und der Leistungsbeschreibung „Website-Analyse“ vor. ## 1. Gegenstand und Dauer -(1) WEBklar betreibt für die öffentliche Website des Kunden eine Reichweitenmessung („Website-Analyse“) und verarbeitet dabei personenbezogene Daten der Besucher der Website im Auftrag des Kunden. Die Leistung ist in der Leistungsbeschreibung „Website-Analyse“ beschrieben. +(1) WEBklar betreibt für die öffentliche Website des Kunden eine Reichweitenmessung mit Einwilligungsbanner („Website-Analyse“) und verarbeitet dabei personenbezogene Daten der Besucher der Website im Auftrag des Kunden. Den Umfang beschreibt die Leistungsbeschreibung „Website-Analyse“. -(2) Der Vertrag beginnt mit dem Einschalten der Funktion und gilt, solange die Funktion eingeschaltet ist. Er endet mit dem Ausschalten, spätestens mit dem Ende des Wartungs-Abos, und gilt darüber hinaus, bis alle Daten nach Nummer 9 gelöscht sind. +(2) Der Vertrag beginnt mit dem Einschalten der Funktion. Er endet mit dem Ausschalten, spätestens mit dem Ende des Wartungs-Abos; den Messdienst schaltet WEBklar dann spätestens am folgenden Tag ab. Die Pflichten aus diesem Vertrag gelten fort, bis alle Daten nach Nummer 9 gelöscht sind. ## 2. Art und Zweck der Verarbeitung -(1) Art: Erheben über ein Skript, das WEBklar in die Website des Kunden einfügt, Übermitteln an den Messdienst von WEBklar, Speichern, Verdichten zu Tageswerten, Auswerten im Kundenportal (Kennzahlen, Heatmap) und Löschen. +(1) Art: Erheben über ein Skript, das WEBklar beim Veröffentlichen in die Website des Kunden einfügt, Übermitteln an den Messdienst von WEBklar, Speichern, Verdichten zu Tageswerten, Auswerten im Kundenportal (Kennzahlen, Heatmap) und Löschen. -(2) Zweck: Der Kunde soll erkennen, wie seine Website genutzt wird, um sie zu verbessern. Andere Zwecke verfolgt WEBklar mit diesen Daten nicht. Es findet kein Profiling, keine Werbung und keine Zusammenführung mit anderen Daten statt. +(2) Zwecke: Der Kunde soll erkennen, wie seine Website genutzt wird, um sie zu verbessern. Außerdem schützt WEBklar den Messdienst für den Kunden vor Missbrauch und verfälschten Zahlen (Mengenbegrenzung, Erkennen von Bots). + +(3) WEBklar verwendet die Daten für keine eigenen Zwecke, auch nicht in anonymisierter Form und nicht für Auswertungen über mehrere Kunden. Es findet keine Werbung und keine Zusammenführung mit anderen Daten statt. WEBklar bildet keine Profile einzelner Besucher. Die Besucher-Kennung dient nur dazu, die Besucher eines Tages zu zählen. ## 3. Datenarten und Betroffene -(1) Datenarten ohne Einwilligung des Besuchers: Seitenaufruf mit Pfad (ohne Suchparameter), Domainname der verweisenden Website, Land (abgeleitet aus der IP-Adresse; die IP-Adresse wird nur im Moment der Abfrage verwendet und nicht gespeichert), Geräteklasse (Handy, Tablet, Computer) und Größenklasse des Browserfensters (vp), anonyme Zähler zur Anzeige, Annahme und Ablehnung des Banners. +(1) Solange der Besucher im Banner keine Wahl getroffen hat und sein Browser kein Signal nach Absatz 2 Satz 2 sendet: Pfad der aufgerufenen Seite (ohne Suchparameter und Anker), auch bei einem Seitenwechsel ohne Neuladen; Land (aus der IP-Adresse abgeleitet); Geräteklasse (Handy, Tablet oder Computer; aus dem Browser-Kennzeichen abgeleitet); Zeitpunkt (auf die volle Stunde gerundet); ein Zähler dafür, dass das Banner angezeigt wurde. -(2) Zusätzlich nach Annehmen des Banners durch den Besucher: eine täglich wechselnde pseudonyme Besucher-Kennung (nicht über mehrere Tage verknüpfbar), Verweildauer und Scrolltiefe je Seite, Klickpositionen mit vereinfachtem Elementpfad (Heatmap, keine Formulareingaben), Art des Kontakt-Klicks (Telefon, E-Mail, WhatsApp, Link auf eine andere Website mit Domainname). +(2) Nach „Ablehnen“ sendet das Skript einmalig einen Zähler „abgelehnt“ und danach nichts mehr. Sendet der Browser die Signale „Global Privacy Control“ oder „Do Not Track“, zeigt das Skript kein Banner und sendet nichts. -(3) Nicht gespeichert werden IP-Adressen und Browser-Kennzeichen (User-Agent); sie werden nur kurzzeitig im Arbeitsspeicher verarbeitet (siehe Anlage). Nicht erhoben werden Cookies, Formularinhalte, Seiteninhalte, Mausbewegungen oder Sitzungsaufzeichnungen. Besondere Kategorien nach Art. 9 DSGVO werden nicht gezielt verarbeitet. +(3) Nach „Annehmen“ zusätzlich: Domain der Website, von der der Besucher kam; Größenklasse des Browserfensters; eine täglich wechselnde pseudonyme Besucher-Kennung; Verweildauer (ab dem Laden der Seite) und Scrolltiefe je Seite; Klickpositionen mit einem Elementpfad aus Tag-Namen und Position (ohne Texte, Kennungen und Klassennamen); die Art von Kontakt-Klicks (Telefon, E-Mail, WhatsApp oder Link auf eine andere Website, dann mit deren Domain); ein Zähler „angenommen“. -(4) Betroffene: Besucher der Website des Kunden. +(4) IP-Adresse und Browser-Kennzeichen (User-Agent) erhält der Server von WEBklar technisch bei jedem Abruf des Skripts und bei jeder Messanfrage, auch nach „Ablehnen“. Der Messdienst verarbeitet sie nur kurz im Arbeitsspeicher, um Land, Geräteklasse, Bots, die Mengenbegrenzung und, nur nach Einwilligung, die Besucher-Kennung zu bestimmen. Er speichert und protokolliert sie nicht. Nicht erhoben werden Cookies, Formularinhalte, Seitentexte, Mausbewegungen, Tastatureingaben und Sitzungsaufzeichnungen. -(5) WEBklar verwendet die Daten ausschließlich für den Kunden und gibt sie nicht an Dritte weiter, außer an Unterauftragsverarbeiter nach Nummer 7. +(5) Tageswerte sind Summen je Tag und Merkmal (etwa Aufrufe je Seite, je Land oder je Geräteklasse), ohne Besucher-Kennung. Enthalten die Pfade der Website personenbezogene Angaben, können auch Tageswerte personenbezogen sein (Nummer 11 Abs. 2). - +(6) Besondere Kategorien personenbezogener Daten (Art. 9 DSGVO) werden nicht gezielt verarbeitet. Je nach Inhalt der Website können sich aus Pfaden oder Domains aber Rückschlüsse ergeben (Nummer 11 Abs. 3). + +(7) Betroffene: Besucher der Website des Kunden. ## 4. Weisungen -(1) WEBklar verarbeitet die Daten nur auf dokumentierte Weisung des Kunden, es sei denn, eine gesetzliche Pflicht verlangt etwas anderes. In diesem Fall teilt WEBklar dem Kunden die Pflicht vorher mit, soweit das Gesetz es erlaubt. +(1) WEBklar verarbeitet die Daten nur auf dokumentierte Weisung des Kunden, auch in Bezug auf eine Übermittlung in ein Drittland oder an eine internationale Organisation. Das gilt nicht, wenn das Recht der Europäischen Union oder Deutschlands WEBklar zu einer Verarbeitung verpflichtet. In diesem Fall teilt WEBklar dem Kunden die Pflicht vorher mit, soweit das Gesetz es nicht verbietet. -(2) Die Weisungen ergeben sich aus diesem Vertrag, der Leistungsbeschreibung und den Einstellungen des Kunden im Kundenportal (Einschalten und Ausschalten; die Akzentfarbe des Banners wird beim Einschalten gewählt). Weitere Weisungen erteilt der Kunde in Textform, etwa im Chat des Kundenportals. Hält WEBklar eine Weisung für rechtswidrig, weist es den Kunden unverzüglich darauf hin und darf die Ausführung aussetzen. +(2) Mit dem Einschalten weist der Kunde WEBklar an, die Website-Analyse in der Standardkonfiguration nach der Leistungsbeschreibung zu betreiben. Weitere Weisungen ergeben sich aus den Einstellungen im Kundenportal (Einschalten, Ausschalten, Akzentfarbe des Banners). Sonstige Weisungen erteilt der Kunde in Textform, etwa im Chat des Kundenportals. Weisungen, die von der Standardkonfiguration abweichen, setzt WEBklar nur um, wenn das technisch vorgesehen ist; sonst kann der Kunde die Funktion ausschalten. + +(3) Hält WEBklar eine Weisung für rechtswidrig, weist es den Kunden unverzüglich darauf hin. WEBklar darf die Ausführung aussetzen, bis der Kunde die Weisung ändert oder die Rechtslage geklärt ist. ## 5. Vertraulichkeit @@ -51,82 +58,81 @@ WEBklar setzt nur Personen ein, die zur Vertraulichkeit verpflichtet sind oder e (1) WEBklar trifft die Maßnahmen nach Art. 32 DSGVO, die in der Anlage zu diesem Vertrag beschrieben sind. WEBklar darf sie an den Stand der Technik anpassen, sofern das Schutzniveau nicht sinkt. -(2) Die Maßnahmen der Anlage 2 zu den Abo-Bedingungen gelten ergänzend. +(2) Für den Server gelten ergänzend die Maßnahmen der Anlage 2 der Abo-Bedingungen, soweit die Anlage zu diesem Vertrag nichts anderes regelt. ## 7. Unterauftragsverarbeiter -(1) Der Kunde genehmigt den Einsatz der Hetzner Online GmbH, Industriestraße 25, 91710 Gunzenhausen, für den Betrieb des Servers, auf dem der Messdienst läuft, und für die Datensicherung. Ort der Verarbeitung ist ein Rechenzentrum in Deutschland (Falkenstein). Die Daten werden nicht in Drittländer übermittelt. +(1) Der Kunde genehmigt den Einsatz der Hetzner Online GmbH, Industriestraße 25, 91710 Gunzenhausen, für den Betrieb des Servers, auf dem der Messdienst läuft, und für dessen Sicherung. Ort der Verarbeitung ist das Rechenzentrum Falkenstein (Deutschland). Eine Übermittlung in Drittländer findet nicht statt. -(2) Will WEBklar einen Unterauftragsverarbeiter hinzuziehen oder ersetzen, teilt es das dem Kunden mindestens vier Wochen vorher in Textform mit. Der Kunde kann aus wichtigem datenschutzrechtlichem Grund widersprechen. Einigen sich die Parteien nicht, kann der Kunde die Website-Analyse zu dem Zeitpunkt beenden, zu dem der neue Unterauftragsverarbeiter eingesetzt werden soll. +(2) Will WEBklar einen weiteren Unterauftragsverarbeiter hinzuziehen oder einen ersetzen, teilt es das dem Kunden mindestens vier Wochen vorher in Textform mit. Der Kunde kann innerhalb von zwei Wochen nach Zugang der Mitteilung aus wichtigem datenschutzrechtlichem Grund in Textform widersprechen. WEBklar setzt den neuen Unterauftragsverarbeiter nicht vor Ablauf dieser Frist ein. Kündigt ein Unterauftragsverarbeiter von WEBklar eine eigene Änderung mit kürzerer Frist an, informiert WEBklar den Kunden unverzüglich, nachdem die Ankündigung eingegangen ist; der Kunde kann dann unverzüglich widersprechen. Einigen sich die Parteien nicht, kann der Kunde die Website-Analyse ausschalten und WEBklar sie für diese Website zu dem Zeitpunkt beenden, zu dem der neue Unterauftragsverarbeiter eingesetzt wird. Die Daten werden dann nach Nummer 9 gelöscht, auf Verlangen des Kunden sofort. -(3) WEBklar verpflichtet jeden Unterauftragsverarbeiter vertraglich auf dieselben Datenschutzpflichten, die sich aus diesem Vertrag ergeben. +(3) WEBklar verpflichtet jeden Unterauftragsverarbeiter vertraglich auf die Datenschutzpflichten nach Art. 28 Abs. 4 DSGVO. Bei der Hetzner Online GmbH ist das deren Vertrag zur Auftragsverarbeitung, den WEBklar abgeschlossen hat. Kommt ein Unterauftragsverarbeiter seinen Datenschutzpflichten nicht nach, haftet WEBklar dem Kunden für die Einhaltung dieser Pflichten (Art. 28 Abs. 4 Satz 2 DSGVO). -(4) Die Länderzuordnung nutzt eine lokal gespeicherte Datenbank („DB-IP Lite Country“, Lizenz CC BY 4.0). Dabei werden keine Daten an den Anbieter der Datenbank übermittelt; er ist kein Unterauftragsverarbeiter. - - +(4) Die Länderzuordnung nutzt eine Datenbank, die WEBklar auf dem eigenen Server speichert („IP to Country Lite“ von DB-IP.com, Lizenz CC BY 4.0). Daten der Besucher werden dabei nicht an DB-IP übermittelt. DB-IP ist kein Unterauftragsverarbeiter. ## 8. Unterstützung des Kunden, Betroffenenrechte -(1) WEBklar leitet Anfragen betroffener Personen, die an WEBklar gerichtet sind, unverzüglich an den Kunden weiter und unterstützt ihn bei der Beantwortung, soweit das mit den eingesetzten Systemen möglich ist. +(1) WEBklar leitet Anfragen betroffener Personen, die an WEBklar gerichtet sind, unverzüglich an den Kunden weiter. WEBklar unterstützt ihn mit geeigneten technischen und organisatorischen Maßnahmen bei der Beantwortung. -(2) Die gespeicherten Daten enthalten keine IP-Adresse, keinen Namen und keine Kennung, die über einen Tag hinaus gilt. WEBklar kann einzelne Besucher daher in der Regel nicht identifizieren und Auskunfts-, Berichtigungs- oder Löschverlangen zu einzelnen Besuchen nicht umsetzen, solange die betroffene Person keine zusätzlichen Angaben bereitstellt (Art. 11 DSGVO). Der Kunde weist Betroffene darauf in seiner Datenschutzerklärung hin. +(2) Die gespeicherten Messdaten enthalten keine IP-Adresse, keinen Namen und keine Kennung, die länger als einen Tag gilt; Zeitpunkte sind auf die volle Stunde gerundet. Einzelne Besucher kann WEBklar daher in der Regel nicht identifizieren (Art. 11 DSGVO). Ein Abgleich kann aber möglich sein, solange die Zugriffsprotokolle der Website (Anlage 1 und 2 der Abo-Bedingungen, 14 Tage) vorhanden sind. Nennt eine betroffene Person zusätzliche Angaben, etwa Datum, Uhrzeit, besuchte Seiten oder ihre IP-Adresse, prüft WEBklar auf Weisung des Kunden, auch anhand dieser Protokolle, ob eine Zuordnung möglich ist, und teilt ihm das Ergebnis mit. -(3) WEBklar unterstützt den Kunden bei seinen Pflichten aus Art. 32 bis 36 DSGVO. +(3) Der Messung können Besucher technisch widersprechen (Art. 21 DSGVO): Nach „Ablehnen“ und bei den Browser-Signalen „Global Privacy Control“ und „Do Not Track“ sendet das Skript nichts mehr. -(4) Verletzungen des Schutzes personenbezogener Daten meldet WEBklar dem Kunden unverzüglich, möglichst innerhalb von 24 Stunden nach Kenntnis, mit den Informationen, die zu diesem Zeitpunkt vorliegen. +(4) WEBklar unterstützt den Kunden bei seinen Pflichten aus Art. 32 bis 36 DSGVO. Dazu gehören die Angaben, die er für sein Verzeichnis von Verarbeitungstätigkeiten und für eine etwaige Datenschutz-Folgenabschätzung braucht, und eine kurze Interessenabwägung für die Zählung nach Art. 6 Abs. 1 lit. f DSGVO, die WEBklar mit jeder Fassung dieses Vertrags bereitstellt. -(5) Der Kunde ist dafür verantwortlich, dass die Besucher seiner Website informiert werden (Art. 13 DSGVO). WEBklar stellt dafür die Zusatzseite „/datenschutz-analyse.html“ bereit. Der Kunde ergänzt seine eigene Datenschutzerklärung um einen Hinweis darauf. +(5) Verletzungen des Schutzes personenbezogener Daten meldet WEBklar dem Kunden unverzüglich, möglichst innerhalb von 24 Stunden nach Kenntnis, mit den Informationen, die zu diesem Zeitpunkt vorliegen. - +(6) Zum Nachweis der Einwilligungen bewahrt WEBklar jede Fassung des Banner-Textes und der Zusatzseite mit dem Zeitraum ihrer Verwendung auf, bis drei Jahre nach dem Ende der Website-Analyse. WEBklar stellt sie dem Kunden auf Verlangen zur Verfügung. Ein Protokoll je Besucher führt WEBklar nicht. + +(7) Die Besucher informiert der Kunde (Art. 13 DSGVO). WEBklar stellt ihm dafür die Zusatzseite „/datenschutz-analyse.html“ als Muster bereit. Liegt die Datenschutzerklärung in der von WEBklar betreuten Website, fügt WEBklar dort einen Hinweis auf die Zusatzseite ein; sonst erhält der Kunde den Hinweis als Textbaustein (Leistungsbeschreibung Nr. 4 Abs. 4). ## 9. Löschung und Rückgabe -(1) Einzelne Ereignisse und Klickpositionen löscht WEBklar automatisch nach 30 Tagen. Zusammengefasste Tageswerte ohne Besucher-Kennung bleiben bis zum Ende der Website-Analyse (Ausschalten oder Ende des Wartungs-Abos) und weitere 60 Tage gespeichert; danach löscht WEBklar alle Daten der Website. Eine Kopie der Tageswerte stellt WEBklar dem Kunden auf Verlangen in Textform innerhalb dieser Frist zur Verfügung. +(1) Einzelne Ereignisse und Klickpositionen löscht WEBklar automatisch nach 30 Tagen. Der Löschlauf läuft täglich, die Löschung erfolgt also in der Regel spätestens am 31. Tag; fällt ein Lauf aus, holt der nächste ihn nach. -(2) Ob und wie lange Sicherungskopien Daten der Website-Analyse enthalten, ist noch zu klären (Prüfpunkt P8, siehe Anlage); soweit sie enthalten sind, werden sie im Rahmen der regulären Rotation überschrieben. +(2) Tageswerte löscht WEBklar 25 Monate nach dem jeweiligen Tag. Nach dem Ende der Website-Analyse (Ausschalten oder Ende des Wartungs-Abos) löscht WEBklar alle Daten der Website am 61. Tag. Bis zum 46. Tag nach dem Ende kann der Kunde eine Kopie der Tageswerte und der noch vorhandenen Einzelereignisse verlangen; WEBklar stellt sie innerhalb von zwei Wochen als CSV-Datei bereit. Auf Weisung des Kunden löscht WEBklar die Daten früher. -(3) Gesetzliche Aufbewahrungspflichten bleiben unberührt. +(3) Die Daten sind in der täglichen Vollsicherung des Servers enthalten (§ 3 Abs. 5 der Abo-Bedingungen). Gelöschte Daten bleiben dort bis zu sieben Tage erhalten und werden dann überschrieben. Wird eine Sicherung zurückgespielt, holt der tägliche Löschlauf die fälligen Löschungen nach; Löschungen auf Weisung des Kunden wiederholt WEBklar. - +(4) Gesetzliche Aufbewahrungspflichten bleiben unberührt. ## 10. Nachweise und Kontrollen -WEBklar stellt dem Kunden alle Informationen zur Verfügung, die zum Nachweis der Pflichten aus Art. 28 DSGVO nötig sind, und ermöglicht Überprüfungen einschließlich Inspektionen durch den Kunden oder einen von ihm beauftragten, zur Verschwiegenheit verpflichteten Prüfer. Sie finden nach Anmeldung mit angemessener Frist (in der Regel 14 Tage) zu den Servicezeiten statt, ohne den Betrieb unzumutbar zu stören. Für das Rechenzentrum genügen in der Regel die Nachweise des Betreibers (Prüfpunkt P13). Für mehr als eine Vor-Ort-Kontrolle pro Jahr kann WEBklar eine angemessene Vergütung verlangen. +WEBklar stellt dem Kunden alle Informationen zur Verfügung, die zum Nachweis der Pflichten aus Art. 28 DSGVO nötig sind, und ermöglicht Überprüfungen einschließlich Inspektionen durch den Kunden oder einen von ihm beauftragten, zur Verschwiegenheit verpflichteten Prüfer. Sie finden nach Anmeldung mit angemessener Frist (in der Regel 14 Tage) zu den Servicezeiten statt, ohne den Betrieb unzumutbar zu stören. Für das Rechenzentrum genügen in der Regel die Nachweise des Betreibers (Zertifizierung der Hetzner Online GmbH nach ISO/IEC 27001). Für mehr als eine Vor-Ort-Kontrolle pro Jahr kann WEBklar eine angemessene Vergütung verlangen. ## 11. Pflichten des Kunden -Der Kunde ist Verantwortlicher für die Verarbeitung. Er sorgt dafür, dass das Banner nicht entfernt oder verdeckt wird, dass keine weiteren Messwerkzeuge ohne Abstimmung eingebunden werden, und dass seine Datenschutzerklärung auf die Zusatzseite hinweist (Leistungsbeschreibung „Website-Analyse“). +(1) Der Kunde ist Verantwortlicher für die Messung. Er entfernt, verdeckt oder umgeht das Banner nicht. Er bindet ohne Abstimmung mit WEBklar keine weiteren Mess- oder Tracking-Werkzeuge ein. -## 12. Haftung und Schlussbestimmungen +(2) Enthalten die Pfade seiner Website personenbezogene Angaben, etwa Namen, Kundennummern oder E-Mail-Adressen, teilt der Kunde das WEBklar vor dem Einschalten mit. -(1) Für die Haftung gilt Art. 82 DSGVO. Im Übrigen gelten die Haftungsregeln der Abo-Bedingungen. +(3) Richtet sich die Website auch gezielt an Kinder unter 16 Jahren oder lassen ihre Inhalte auf besondere Kategorien personenbezogener Daten schließen (etwa Gesundheit, Religion oder politische Meinung), gilt Nr. 3 Abs. 4 der Leistungsbeschreibung. -(2) Bei Widersprüchen geht dieser Vertrag in Datenschutzfragen den Abo-Bedingungen und der Leistungsbeschreibung vor. +## 12. Haftung, Änderungen, Schlussbestimmungen -(3) Änderungen dieses Vertrags richten sich nach § 15 der Abo-Bedingungen; eine neue Fassung wird erst wirksam, wenn der Kunde sie im Portal bestätigt hat. +(1) Gegenüber betroffenen Personen gilt Art. 82 DSGVO. Für die Haftung zwischen Kunde und WEBklar gilt § 13 der Abo-Bedingungen. -(4) Es gilt deutsches Recht. +(2) Eine neue Fassung dieses Vertrags oder der Leistungsbeschreibung teilt WEBklar dem Kunden mindestens sechs Wochen vor ihrem Wirksamwerden in Textform mit. Sie wird wirksam, wenn der Kunde ihr im Kundenportal oder in Textform zustimmt. Stimmt er nicht zu, gilt die bisherige Fassung weiter. - +(3) Ist die neue Fassung nötig, weil ein Gesetz, eine Gerichtsentscheidung oder eine Vorgabe einer Aufsichtsbehörde den Betrieb in der bisherigen Form nicht mehr zulässt, und stimmt der Kunde ihr nicht zu, darf WEBklar die Website-Analyse für seine Website nach Nr. 8 Abs. 2 der Leistungsbeschreibung beenden oder aussetzen. Das Wartungs-Abo bleibt davon unberührt. + +(4) Im Übrigen gilt § 16 der Abo-Bedingungen. ## Anlage: Technische und organisatorische Maßnahmen der Website-Analyse (Art. 32 DSGVO) | Bereich | Maßnahmen | |---|---| | Übertragung | Skript und Messdaten werden nur über TLS (HTTPS) übertragen. | -| Keine Cookies | Es werden keine Cookies gesetzt. Auf dem Gerät des Besuchers wird nur die Banner-Auswahl im lokalen Speicher (Eintrag „wk-consent“) gespeichert; sie gilt sechs Monate. | -| Datenminimierung | IP-Adresse und Browser-Kennzeichen werden nicht gespeichert und nicht protokolliert. Die IP-Adresse wird nur im Moment der Abfrage verwendet für: Länderzuordnung, Schlüssel der Mengenbegrenzung (Hash mit Tagessalz, nur im Arbeitsspeicher) und, nur nach Einwilligung, die tägliche Besucher-Kennung. Das Browser-Kennzeichen wird nur im Moment der Abfrage verwendet für: Geräteklasse, Bot-Erkennung und, nur nach Einwilligung, die tägliche Besucher-Kennung. Pfade ohne Suchparameter, Elementpfade ohne Kennungen und Klassennamen. Keine Formulareingaben. | -| Pseudonymisierung | Die Besucher-Kennung (nur nach Einwilligung) ist ein gekürzter Hash mit Tagessalz. Das Salz liegt nur im Arbeitsspeicher und wird täglich um 00:00 Uhr (Europe/Berlin) neu erzeugt; ältere Kennungen sind danach nicht mehr verknüpfbar. | -| Einwilligung | Ohne „Annehmen“ sendet das Skript nur Seitenaufruf und Banner-Zähler. „Global Privacy Control“ und „Do Not Track“ gelten als Ablehnen. | -| Zugriffskontrolle | Die Verwaltungsschnittstelle des Messdienstes (Auswertung, Website-Verwaltung) läuft auf einem getrennten, internen Port, der nicht öffentlich erreichbar ist, und ist durch ein Zugriffstoken geschützt. Zugriff nur über das Kundenportal und die Verwaltung von WEBklar. Im Portal sieht jeder Kunde nur die Daten seiner eigenen Website. | -| Eingangsprüfung | Messdaten werden nur angenommen, wenn die Website registriert ist und Origin bzw. Referer zu ihren Domains passen; Bots werden verworfen; Größen- und Mengenbegrenzung je Website und Anfrager (nur im Arbeitsspeicher). | -| Heatmap-Zugriff | Die Heatmap wird über einen signierten Link abgerufen, der 30 Minuten gültig ist. | -| Löschung | Täglicher automatischer Job (02:30 Uhr, Europe/Berlin): Rohdaten und Klicks nach 30 Tagen; Websites, die seit mehr als 60 Tagen abgeschaltet sind, werden vollständig gelöscht. | -| Trennung | Daten sind je Website getrennt (Website-Schlüssel); eigener Container und eigenes Datenverzeichnis des Messdienstes; kein Zugriff auf andere Kundendaten. | -| Rechenzentrum | Hetzner Online GmbH, Falkenstein (Deutschland). **[Prüfpunkt: Zertifizierung des Rechenzentrums (ISO/IEC 27001) vor Verwendung belegen, bevor sie genannt wird.]** | -| Protokolle des Reverse-Proxys | Das Zugriffsprotokoll für die Messdienst-Adresse wird ohne Client-IP geführt. **[Prüfpunkt P7: Einstellung beim Livegang verifizieren.]** | -| Datensicherung | Die tägliche Serversicherung (7 Tage) erfasst voraussichtlich auch das Datenverzeichnis des Messdienstes. **[Prüfpunkt P8: ob das Verzeichnis in der Sicherung enthalten ist und wie lange dort gelöschte Daten verbleiben, ist noch zu klären.]** | -| Organisation | Verpflichtung aller Beteiligten auf Vertraulichkeit, Ablauf für Datenschutzverletzungen (Nr. 8 Abs. 4), Überprüfung der Maßnahmen mindestens einmal im Jahr. | - - - +| Speicher im Browser | Es werden keine Cookies gesetzt, und der Messdienst wertet keine Cookies aus. Messanfragen sendet das Skript ohne Cookies. Im lokalen Speicher des Browsers liegt nur die Banner-Wahl (Eintrag „wk-consent“ mit Wahl, Zeitpunkt und Fassung des Banner-Textes). Sie gilt 183 Tage; danach und bei einer neuen Fassung des Banner-Textes fragt das Banner erneut. | +| Einwilligung | Solange keine Wahl getroffen ist und kein Browser-Signal vorliegt, sendet das Skript nur den Pfad der Seite, auch beim Seitenwechsel ohne Neuladen, und den Zähler „Banner angezeigt“. Nach „Ablehnen“ sendet es einmalig den Zähler „abgelehnt“ und danach nichts mehr, auch nicht aus anderen geöffneten Tabs. Bei „Global Privacy Control“ oder „Do Not Track“ zeigt es kein Banner und sendet nichts. Klick-, Scroll- und Verweildauer-Ereignisse registriert es erst nach „Annehmen“. Die Schaltflächen „Ablehnen“ und „Annehmen“ sind gleich gestaltet. | +| Datenminimierung | IP-Adresse und Browser-Kennzeichen werden weder gespeichert noch protokolliert. Der Messdienst verwendet sie nur im Arbeitsspeicher für Land, Geräteklasse, Bot-Erkennung, Mengenbegrenzung und, nur nach Einwilligung, die Besucher-Kennung. Zeitpunkte werden auf die volle Stunde gerundet gespeichert. Pfade werden ohne Suchparameter und Anker gespeichert; Abschnitte, die wie Kennungen aussehen (lange Ziffernfolgen, UUIDs, E-Mail-Adressen), werden vorher ersetzt. Elementpfade bestehen nur aus Tag-Namen und Position. Formulareingaben und Seitentexte werden nicht erfasst. | +| Pseudonymisierung | Die Besucher-Kennung (nur nach Einwilligung) ist ein auf 64 Bit gekürzter HMAC-SHA256 aus Website-Schlüssel, IP-Adresse und Browser-Kennzeichen mit einem Tagesschlüssel. Auch der Schlüssel der Mengenbegrenzung wird mit dem Tagesschlüssel gebildet. Der Tagesschlüssel liegt nur im Arbeitsspeicher; die Auslagerung auf die Festplatte ist für den Messdienst gesperrt. Er wird beim ersten Ereignis eines neuen Kalendertags (Europe/Berlin) und bei jedem Neustart neu erzeugt und nie gesichert. Ältere Kennungen lassen sich danach nicht mehr zuordnen. | +| Zugriffskontrolle | Die Verwaltungsschnittstelle des Messdienstes (Auswertung, Website-Verwaltung) läuft auf einem internen Port, der nicht öffentlich erreichbar ist, und ist durch ein Zugriffstoken geschützt. Zugriff haben nur das Kundenportal und die Verwaltung von WEBklar. Das Portal zeigt jedem Kunden nur die Daten seiner eigenen Websites. | +| Heatmap | Die Heatmap öffnet ein signierter Link, den nur der angemeldete Kunde im Kundenportal erzeugen kann. Der Link gilt 30 Minuten und liefert nur Klickpunkte der gewählten Seite und Ansicht, ohne Zeitpunkte und Kennungen. | +| Eingangsprüfung | Messdaten werden nur angenommen, wenn die Website registriert und eingeschaltet ist und Origin bzw. Referer zu ihren Domains passen. Bots werden verworfen. Größe und Menge der Anfragen sind je Website und Absender begrenzt (Zähler nur im Arbeitsspeicher). Für ausgeschaltete Websites liefert der Messdienst ein leeres Skript aus. | +| Löschung | Täglicher Löschlauf um 02:30 Uhr (Europe/Berlin): Ereignisse und Klicks nach 30 Tagen, Tageswerte nach 25 Monaten, alle Daten einer Website 60 Tage nach dem Ausschalten. Gelöschte Datensätze werden in der Datenbankdatei überschrieben und aus dem Schreibprotokoll (WAL) entfernt. | +| Trennung | Der Messdienst läuft in einem eigenen Container mit eigenem Datenverzeichnis und hat keinen Zugriff auf andere Kundendaten. Alle Datensätze tragen den Website-Schlüssel; Abfragen erfolgen nur je Website. | +| Protokolle | Der Reverse-Proxy führt kein Zugriffsprotokoll, und der Messdienst protokolliert keine Anfragen. Wird ein Zugriffsprotokoll eingeschaltet, dann nicht für die Adresse des Messdienstes. Meldungen der Container werden nach 14 Tagen gelöscht. | +| Datensicherung | Tägliche Vollsicherung des Servers durch Hetzner; verfügbar sind die letzten sieben Tagessicherungen (§ 3 Abs. 5 der Abo-Bedingungen). Einen gesonderten Datenbank-Export des Messdienstes gibt es nicht. | +| Rechenzentrum | Hetzner Online GmbH, Rechenzentrum Falkenstein (Deutschland). Hetzner ist nach ISO/IEC 27001 zertifiziert; der Geltungsbereich umfasst die Hosting-Dienstleistungen und die Rechenzentren. | +| Organisation | Verpflichtung aller Beteiligten auf Vertraulichkeit, Ablauf für Datenschutzverletzungen (Nummer 8 Abs. 5), Archiv der Fassungen von Banner-Text und Zusatzseite (Nummer 8 Abs. 6), Überprüfung der Maßnahmen mindestens einmal im Jahr. | diff --git a/docs/rechtliches/leistungsbeschreibung-website-analyse.md b/docs/rechtliches/leistungsbeschreibung-website-analyse.md index 7f02f47..b4cc38c 100644 --- a/docs/rechtliches/leistungsbeschreibung-website-analyse.md +++ b/docs/rechtliches/leistungsbeschreibung-website-analyse.md @@ -1,75 +1,107 @@ # Leistungsbeschreibung Website-Analyse -> **Entwurf – vor Verwendung anwaltlich prüfen lassen.** Dieser Text ist keine Rechtsberatung. +**Fassung 2026-10-02** · Zusatzbedingungen zum Wartungs-Abo -**Fassung 2026-10-01** · Teil der Abo-Bedingungen (Wartungs-Abo) +## 1. Geltung -## 1. Leistung +(1) Diese Leistungsbeschreibung regelt die Funktion „Website-Analyse“ im Wartungs-Abo. Sie wird vereinbart, wenn der Kunde die Funktion einschaltet und ihr zusammen mit dem Auftragsverarbeitungsvertrag Website-Analyse („AVV Website-Analyse“) zustimmt. Wie die Zustimmung abläuft, regelt die Vorbemerkung des AVV Website-Analyse. -(1) Die Website-Analyse misst, wie die öffentliche Website des Kunden genutzt wird. Sie ist im Wartungs-Abo ohne Aufpreis enthalten und wird vom Kunden im Kundenportal eingeschaltet. +(2) Im Übrigen gelten die Abo-Bedingungen. Bei Widersprüchen geht für die Website-Analyse diese Leistungsbeschreibung vor, in Datenschutzfragen der AVV Website-Analyse. -(2) WEBklar fügt beim Veröffentlichen der Website ein Messskript und ein Cookie-Banner (Leiste unten, „Ablehnen“ und „Annehmen“ gleichwertig, Akzentfarbe, die beim Einschalten gewählt wird, Link „Cookie-Einstellungen“) ein und erzeugt eine Zusatzseite „/datenschutz-analyse.html“ mit den Datenschutzhinweisen zur Messung (Verantwortlicher: der Kunde). +(3) Leistungsbeschreibung B Nr. 3 der Abo-Bedingungen („Rechtstexte … nicht enthalten“) gilt nicht für die Zusatzseite nach Nr. 2 Abs. 2 und den Hinweis in der Datenschutzerklärung nach Nr. 4 Abs. 4. Beides ist Teil der Website-Analyse. + +## 2. Leistung + +(1) Die Website-Analyse misst, wie die öffentliche Website des Kunden genutzt wird. Sie ist im Wartungs-Abo ohne Aufpreis enthalten. + +(2) Beim Veröffentlichen der Website fügt WEBklar Folgendes ein: +- ein Messskript in jede HTML-Datei der Website, +- ein Einwilligungsbanner am unteren Rand mit den gleich gestalteten Schaltflächen „Ablehnen“ und „Annehmen“ in der Akzentfarbe, die der Kunde beim Einschalten wählt (ist sie für weiße Schrift zu hell, nimmt das Banner Schwarz), +- eine Schaltfläche „Datenschutz-Einstellungen“ unten rechts, über die Besucher ihre Wahl jederzeit ändern können (hat die Website ein eigenes Element mit dem Attribut `data-webklar-consent`, übernimmt dieses Element die Aufgabe), +- eine Zusatzseite „/datenschutz-analyse.html“ mit den Datenschutzhinweisen zur Messung (Verantwortlicher: der Kunde). (3) Gemessen wird: -- **ohne Einwilligung des Besuchers:** Seitenaufrufe mit Pfad (ohne Suchparameter), Domainname der verweisenden Website, Land (die IP-Adresse wird nur im Moment der Abfrage verwendet und nicht gespeichert), Geräteklasse sowie anonyme Banner-Zähler; -- **nach „Annehmen“ zusätzlich:** eine täglich wechselnde pseudonyme Besucher-Kennung, Verweildauer, Scrolltiefe, Klickpositionen (Heatmap) und die Art von Kontakt-Klicks (Telefon, E-Mail, WhatsApp, Link auf eine andere Website). +- **solange der Besucher keine Wahl getroffen hat und sein Browser kein Signal nach dem nächsten Spiegelstrich sendet:** Seitenaufrufe mit Pfad (ohne Suchparameter), Land (aus der IP-Adresse, die nicht gespeichert wird), Geräteklasse und ein Zähler dafür, dass das Banner angezeigt wurde; +- **bei den Browser-Signalen „Global Privacy Control“ und „Do Not Track“:** nichts, und es erscheint kein Banner; +- **nach „Ablehnen“:** nichts mehr, außer einmal dem Zähler „abgelehnt“; +- **nach „Annehmen“ zusätzlich:** die Domain der Website, von der der Besucher kam, die Größenklasse des Browserfensters, eine täglich wechselnde pseudonyme Besucher-Kennung, Verweildauer, Scrolltiefe, Klickpositionen (Heatmap), die Art von Kontakt-Klicks (Telefon, E-Mail, WhatsApp, Link auf eine andere Website mit deren Domain) und ein Zähler „angenommen“. -(4) Es werden keine Cookies gesetzt. Gespeichert wird auf dem Gerät des Besuchers nur dessen Banner-Auswahl im lokalen Speicher des Browsers (sechs Monate). Signale „Global Privacy Control“ und „Do Not Track“ gelten als Ablehnen. +Die einzelnen Datenarten nennt der AVV Website-Analyse in Nummer 3. -(5) Die Auswertung (Kennzahlen, Diagramme, Heatmap) steht im Kundenportal zur Verfügung. Die Daten liegen auf Servern der Hetzner Online GmbH in Deutschland; es erfolgt keine Übermittlung in Drittländer. Rohdaten und Klicks werden nach 30 Tagen gelöscht, Tageswerte bis zum Ende der Analyse und weitere 60 Tage. +(4) Es werden keine Cookies gesetzt. Gespeichert wird auf dem Gerät des Besuchers nur seine Banner-Wahl im lokalen Speicher des Browsers, für 183 Tage. -(6) Nicht enthalten sind Sitzungsaufzeichnungen, Auswertung von Formularinhalten, Messung von Ladezeiten und Fehlern, Kampagnen- und Trichteranalyse sowie ein Datenexport (außer nach Nr. 6 Abs. 2). +(5) Die Auswertung steht im Kundenportal zur Verfügung: Kennzahlen und Diagramme für die letzten 7, 30 oder 90 Tage und eine Heatmap je Seite und Ansicht (Handy, Tablet, Computer) aus den bis zu 5.000 jüngsten Klicks der letzten 30 Tage. Die Daten liegen auf dem Server von WEBklar bei der Hetzner Online GmbH in Deutschland; sie werden nicht in Drittländer übermittelt. Einzelne Ereignisse und Klicks werden nach 30 Tagen gelöscht, Tageswerte nach 25 Monaten, alle Daten rund 60 Tage nach dem Ende der Website-Analyse (AVV Website-Analyse Nummer 9). -## 2. Voraussetzungen +(6) Die Zahlen sind Näherungswerte. Besucher mit Blockern, abgeschaltetem JavaScript, Browser-Signal oder Ablehnung werden nur eingeschränkt oder gar nicht erfasst. Besucherzahlen, Herkunftsseiten, Verweildauer, Scrolltiefe, Klicks und Kontakt-Klicks stammen nur von Besuchern, die „Annehmen“ gewählt haben. -(1) Ein aktives Wartungs-Abo. Im Hosting-Abo ist die Website-Analyse nicht enthalten. +(7) Nicht enthalten sind Sitzungsaufzeichnungen, die Auswertung von Formularinhalten, die Messung von Ladezeiten und Fehlern, Kampagnen- und Trichteranalysen sowie ein Datenexport außer nach Nr. 7 Abs. 3. -(2) Die Website ist öffentlich erreichbar und wird bei WEBklar gehostet (Adresse unter project.webklar.com oder eigene Domain, die auf den Server von WEBklar zeigt). Login-geschützte Vorschauseiten werden nicht gemessen. +(8) Das Banner fragt nur nach der Einwilligung in die Website-Analyse von WEBklar. Andere einwilligungspflichtige Inhalte der Website, etwa eingebettete Karten, Videos oder Schriften von Drittanbietern, deckt es nicht ab. -(3) Der Kunde stimmt beim Einschalten dem Auftragsverarbeitungsvertrag Website-Analyse in der aktuellen Fassung zu. +## 3. Voraussetzungen -## 3. Pflichten des Kunden +(1) Der Kunde hat ein laufendes Wartungs-Abo. Im Hosting-Abo ist die Website-Analyse nicht enthalten. -(1) Der Kunde ist Verantwortlicher im Sinne der DSGVO für die Messung auf seiner Website. +(2) Die Website ist öffentlich erreichbar und wird bei WEBklar gehostet (Adresse unter project.webklar.com oder eigene Domain, die auf den Server von WEBklar zeigt). Nicht öffentliche Websites und Vorschauen, die nur nach einer Anmeldung erreichbar sind, werden nicht gemessen, ebenso wenig Websites, die im Dev-Modus auf einem Entwicklungsserver laufen. Enthält eine öffentliche Website Bereiche, die erst nach einer Anmeldung zugänglich sind (etwa eine Web-Anwendung mit Kundenkonto), werden auch dort Seitenaufrufe gezählt; dafür gilt Nr. 4 Abs. 5. -(2) Er entfernt, verdeckt oder umgeht das Banner nicht und verändert das Skript nicht. Er verändert den Banner-Text oder die Gestaltung nur nach Abstimmung mit WEBklar. +(3) Auf der Zusatzseite erscheinen als Verantwortlicher die Firma (sonst der Name), die Anschrift, soweit sie im Kundenkonto hinterlegt ist, und die E-Mail-Adresse aus dem Kundenkonto. Das Portal zeigt diese Angaben vor dem Einschalten an. Der Kunde prüft sie und teilt Änderungen mit. Fehlen Firma und Name oder fehlt eine gültige E-Mail-Adresse, lässt sich die Funktion nicht einschalten. -(3) Er bindet ohne Abstimmung mit WEBklar keine weiteren Mess-, Tracking- oder Marketing-Werkzeuge ein (zum Beispiel Google Analytics, Meta Pixel), weil sie eine eigene Einwilligung und eine Anpassung des Banners erfordern können. +(4) Richtet sich die Website auch gezielt an Kinder unter 16 Jahren, schaltet der Kunde die Website-Analyse nicht ein, weil eine Einwilligung über das Banner dann nicht genügt (Art. 8 DSGVO). Lassen Inhalte oder Adressen der Website auf besondere Kategorien personenbezogener Daten schließen, etwa Gesundheit, Religion oder politische Meinung, teilt der Kunde das WEBklar vor dem Einschalten mit. WEBklar darf das Einschalten für eine solche Website ablehnen oder die Website-Analyse dort ausschalten. -(4) Er pflegt seine Datenschutzerklärung und ergänzt sie um einen Hinweis auf die Zusatzseite „/datenschutz-analyse.html“. Beim Einschalten legt WEBklar dafür ein Ticket an. Der Kunde prüft die Angaben zu Firma, Anschrift und E-Mail-Adresse, die auf der Zusatzseite erscheinen, und teilt Änderungen mit. +## 4. Pflichten des Kunden -(5) Er richtet die Website nicht gezielt an Kinder und verarbeitet über die Website keine besonderen Kategorien personenbezogener Daten in einer Weise, die die Messung berührt, ohne vorher mit WEBklar zu sprechen. +(1) Der Kunde ist für die Messung auf seiner Website Verantwortlicher im Sinne der DSGVO. -(6) Er nutzt die Auswertung nur für eigene Zwecke und versucht nicht, einzelne Besucher zu identifizieren. +(2) Er entfernt, verdeckt oder umgeht das Banner nicht und verändert das Skript nicht. Text und Gestaltung des Banners legt WEBklar fest. - +(3) Er bindet ohne Abstimmung mit WEBklar keine weiteren Mess-, Tracking- oder Marketing-Werkzeuge ein (zum Beispiel Google Analytics oder Meta Pixel), weil sie eine eigene Einwilligung erfordern können. -## 4. Verfügbarkeit +(4) Liegt die Datenschutzerklärung in der von WEBklar betreuten Website, fügt WEBklar beim Einschalten dort einen kurzen Hinweis mit Link auf die Zusatzseite ein und entfernt ihn beim Ausschalten wieder; das wird nicht auf das Stundenkontingent angerechnet. Liegt sie woanders, etwa bei einem externen Generator, erhält der Kunde den Hinweis als Textbaustein und fügt ihn selbst ein und entfernt ihn nach dem Ausschalten selbst. Für den übrigen Inhalt seiner Datenschutzerklärung bleibt der Kunde verantwortlich (§ 6 Abs. 3 der Abo-Bedingungen). Fällt WEBklar beim Einfügen ein offensichtlicher Widerspruch auf (etwa „Wir setzen keine Analyse-Werkzeuge ein“), weist WEBklar den Kunden darauf hin; eine Pflicht zur Prüfung der Datenschutzerklärung entsteht daraus nicht. -(1) Für die Website-Analyse gilt keine Verfügbarkeitszusage. Ausfälle, Wartung oder Fehler der Messung können zu Lücken in den Daten führen; ein Anspruch auf nachträgliche Messung besteht nicht. +(5) Enthalten die Pfade seiner Website personenbezogene Angaben, etwa Namen, Kundennummern oder E-Mail-Adressen, teilt der Kunde das WEBklar vor dem Einschalten mit. -(2) Ein Ausfall der Website-Analyse beeinträchtigt die Website des Kunden nicht. Die Website wird weiter ausgeliefert, nur ohne Messung. +(6) Er nutzt die Auswertung nur für eigene Zwecke, versucht nicht, einzelne Besucher zu identifizieren, und gibt Heatmap-Links nicht weiter. -(3) Die Zahlen sind Näherungswerte. Besucher mit Blockern, deaktivierten Skripten oder abgelehnter Einwilligung werden nur eingeschränkt oder nicht erfasst. Zahlen zu Besuchern, Verweildauer, Klicks und Kontakt-Klicks stammen nur von Besuchern, die „Annehmen“ gewählt haben. +## 5. Verfügbarkeit und Störungen - +(1) Das Verfügbarkeitsziel nach § 5 der Abo-Bedingungen gilt für die Website, nicht für die Messung. Störungen der Messung beheben wir in angemessener Frist (§ 12 der Abo-Bedingungen). Daten, die während einer Störung nicht erfasst wurden, lassen sich nicht nachträglich erheben. -## 5. Ende der Leistung +(2) Fällt der Messdienst aus, wird die Website weiter ausgeliefert, nur ohne Banner und Messung. -(1) Der Kunde kann die Website-Analyse jederzeit im Kundenportal ausschalten. Mit Ende des Wartungs-Abos (auch bei Wechsel ins Hosting-Abo) endet die Website-Analyse automatisch. +(3) Die gesetzlichen Rechte des Kunden sowie §§ 12 und 13 der Abo-Bedingungen bleiben unberührt. -(2) Mit dem Abschalten werden keine Messdaten mehr gespeichert und die Heatmap ist nicht mehr abrufbar. Skript, Banner und Zusatzseite bleiben auf der Website sichtbar, bis die Website das nächste Mal veröffentlicht wird; dann entfernt WEBklar sie. Bei Websites ohne automatische Veröffentlichung geschieht das erst bei einer manuellen Veröffentlichung. WEBklar informiert den Kunden per E-Mail über die Abschaltung. +## 6. Hinweis zur Rechtslage -(3) Die gespeicherten Daten der Website löscht WEBklar 60 Tage nach der Abschaltung (Einzelheiten im Auftragsverarbeitungsvertrag). Der Kunde ergänzt seine Datenschutzerklärung nach der Abschaltung entsprechend. +Für die Zählung, solange der Besucher keine Wahl getroffen hat (Nr. 2 Abs. 3), übermittelt das Skript nur die Adresse der aufgerufenen Seite und die Angabe, dass das Banner angezeigt wurde. Land und Geräteklasse bestimmt der Messdienst aus den Daten, die jeder Browser bei einer Anfrage ohnehin mitsendet. Ob auch dafür eine Einwilligung nach § 25 TDDDG nötig ist, haben Gerichte und Aufsichtsbehörden nicht entschieden; die Aufsichtsbehörden legen den Begriff des Zugriffs auf das Endgerät eher weit aus. Ändert sich die Rechtslage, passt WEBklar die Messung an (Nr. 8). -## 6. Hinweise +## 7. Ende der Leistung -(1) **Keine Rechtsberatung.** Die Zusatzseite und die Hinweise von WEBklar sind Muster und Unterstützung. Sie ersetzen keine Rechtsberatung. WEBklar schuldet keine Prüfung, ob die Website des Kunden insgesamt datenschutzkonform ist. Der Kunde lässt seine Datenschutzerklärung bei Bedarf rechtlich prüfen. +(1) Der Kunde kann die Website-Analyse jederzeit im Kundenportal ausschalten; das Portal bestätigt die Abschaltung. Mit dem Ende des Wartungs-Abos endet die Website-Analyse; WEBklar schaltet sie spätestens am folgenden Tag ab und informiert den Kunden per E-Mail. Das gilt auch bei einem Wechsel ins Hosting-Abo und beim Widerruf eines Wechsels ins Wartungs-Abo. -(2) Auf Verlangen in Textform stellt WEBklar dem Kunden vor der Löschung eine Kopie der Tageswerte zur Verfügung. +(2) Mit dem Ausschalten speichert der Messdienst keine Messdaten mehr, und die Heatmap ist nicht mehr abrufbar. Das Messskript liefert dann kein Banner mehr aus, sobald die Website einmal mit der aktuellen Fassung des Skripts veröffentlicht wurde. Skript, Zusatzseite und, soweit WEBklar ihn eingefügt hat, den Hinweis in der Datenschutzerklärung entfernt WEBklar mit der nächsten Veröffentlichung der Website. WEBklar löst sie in der Regel sofort aus, spätestens innerhalb von fünf Werktagen. -(3) Die Länderzuordnung nutzt die Datenbank „DB-IP Lite Country“ von DB-IP.com (CC BY 4.0). +(3) Die gespeicherten Daten löscht WEBklar nach Nummer 9 des AVV Website-Analyse. Bis zum 46. Tag nach dem Ende kann der Kunde eine Kopie der Tageswerte und der noch vorhandenen Einzelereignisse als CSV-Datei verlangen. - - - +## 8. Änderungen und Einstellung + +(1) WEBklar darf die Technik der Website-Analyse verbessern, wenn der Leistungsumfang nicht schlechter wird (§ 3 Abs. 7 der Abo-Bedingungen). Ändert sich dabei, welche Daten erhoben werden, gilt Nummer 12 des AVV Website-Analyse. + +(2) WEBklar darf die Website-Analyse für eine Website mit einer Frist von vier Wochen beenden oder für alle Kunden mit einer Frist von drei Monaten einstellen, wenn +- ein Gesetz, eine Gerichtsentscheidung oder eine Vorgabe einer Aufsichtsbehörde den Betrieb in der bisherigen Form unzulässig macht oder nur mit wesentlich anderer Technik erlaubt und der Kunde einer dafür nötigen neuen Fassung nicht zustimmt (AVV Website-Analyse Nummer 12 Abs. 3), oder +- eine Sicherheitslücke sich nicht anders beheben lässt. + +Die Mitteilung erfolgt in Textform und nennt den Grund, die Merkmale der Änderung, den Zeitpunkt und bei Verbrauchern das Recht, den Vertrag nach § 327r Abs. 3 BGB zu beenden, mit seiner Frist. + +(3) Ist der Weiterbetrieb aus einem Grund nach Absatz 2 schon vor Ablauf der Frist nicht zulässig, darf WEBklar die Messung ohne Vorankündigung aussetzen, solange das nötig ist. WEBklar informiert den Kunden darüber unverzüglich in Textform mit dem Grund und nimmt die Messung wieder auf, sobald das zulässig und technisch möglich ist. + +(4) Gegenüber Unternehmern darf WEBklar die Website-Analyse außerdem ohne besonderen Grund mit einer Frist von drei Monaten in Textform für alle Kunden einstellen. Der Kunde kann das Wartungs-Abo dann innerhalb von 30 Tagen nach der Mitteilung zum Zeitpunkt der Einstellung kündigen; die Mindestlaufzeit steht dem nicht entgegen. + +(5) Weil für die Website-Analyse kein Aufpreis berechnet wird, ändert ihre Einstellung den Preis des Wartungs-Abos nicht. Gesetzliche Rechte von Verbrauchern bei Änderungen digitaler Produkte (§ 327r BGB) bleiben unberührt. + +## 9. Hinweise + +(1) **Keine Rechtsberatung.** Die Zusatzseite und der Hinweis in der Datenschutzerklärung sind Mustertexte für die Standardkonfiguration. WEBklar sorgt dafür, dass sie die Technik richtig beschreiben, und passt sie an, wenn sich die Technik ändert. Eine Prüfung, ob die Website des Kunden insgesamt datenschutzkonform ist, und eine rechtliche Beratung im Einzelfall schuldet WEBklar nicht. Abstimmungen nach dieser Leistungsbeschreibung betreffen nur die Technik. + +(2) **Nachweis der Einwilligung.** Ein Protokoll je Besucher wird nicht geführt. Als Nachweis dienen die Dokumentation der Technik und das Archiv der Fassungen von Banner-Text und Zusatzseite (AVV Website-Analyse Nummer 8 Abs. 6). + +(3) Die Länderzuordnung nutzt die Datenbank „IP to Country Lite“ von DB-IP.com (Lizenz CC BY 4.0). Im Kundenportal steht dazu unter der Auswertung der Hinweis „Länderdaten: IP-Geolocation by DB-IP“ mit Link auf db-ip.com. diff --git a/public/rechtliches/avv-website-analyse-2026-10-02.html b/public/rechtliches/avv-website-analyse-2026-10-02.html new file mode 100644 index 0000000..2cf9495 --- /dev/null +++ b/public/rechtliches/avv-website-analyse-2026-10-02.html @@ -0,0 +1,189 @@ + + + + + + Auftragsverarbeitungsvertrag Website-Analyse – WEBklar + + + +
+ + +
WEBKLAR
+

Auftragsverarbeitungsvertrag Website-Analyse (Art. 28 DSGVO)

+ +

Fassung 2026-10-02

+ +

zwischen dem Kunden als Verantwortlichem („Kunde“) und der WEBklar GbR, Am Schwimmbad 10, 67722 Winnweiler, vertreten durch die Gesellschafter Kenso Grimm und Justin Klein, als Auftragsverarbeiter („WEBklar“).

+ +

Vorbemerkung: Abschluss und Verhältnis zu anderen Verträgen

+ +

(1) Der Kunde schließt diesen Vertrag, wenn er im Kundenportal die Funktion „Website-Analyse“ einschaltet und dabei per Haken diesem Vertrag und der Leistungsbeschreibung „Website-Analyse“ in der angezeigten Fassung zustimmt. Das Portal speichert die Fassung, den Zeitpunkt, das Kundenkonto und die angemeldete Person. Anschließend sendet WEBklar dem Kunden eine E-Mail, die beide Texte in dieser Fassung als PDF enthält und auf sie verlinkt.

+ +

(2) Ein Mitarbeiter von WEBklar darf die Funktion nur einschalten, wenn der Kunde vorher in Textform (etwa im Chat des Kundenportals oder per E-Mail) erklärt hat, dass er diesem Vertrag und der Leistungsbeschreibung in der aktuellen Fassung zustimmt. WEBklar speichert die Fassung, das Datum und den Weg dieser Erklärung, den Zeitpunkt des Einschaltens und den Namen des Mitarbeiters. Der Kunde erhält die E-Mail nach Absatz 1.

+ +

(3) Dieser Vertrag ergänzt den Auftragsverarbeitungsvertrag in Anlage 1 der Abo-Bedingungen. Für die Website-Analyse geht er Anlage 1 vor; im Übrigen gilt Anlage 1 ergänzend. In Datenschutzfragen geht er den Abo-Bedingungen und der Leistungsbeschreibung „Website-Analyse“ vor.

+ +

1. Gegenstand und Dauer

+ +

(1) WEBklar betreibt für die öffentliche Website des Kunden eine Reichweitenmessung mit Einwilligungsbanner („Website-Analyse“) und verarbeitet dabei personenbezogene Daten der Besucher der Website im Auftrag des Kunden. Den Umfang beschreibt die Leistungsbeschreibung „Website-Analyse“.

+ +

(2) Der Vertrag beginnt mit dem Einschalten der Funktion. Er endet mit dem Ausschalten, spätestens mit dem Ende des Wartungs-Abos; den Messdienst schaltet WEBklar dann spätestens am folgenden Tag ab. Die Pflichten aus diesem Vertrag gelten fort, bis alle Daten nach Nummer 9 gelöscht sind.

+ +

2. Art und Zweck der Verarbeitung

+ +

(1) Art: Erheben über ein Skript, das WEBklar beim Veröffentlichen in die Website des Kunden einfügt, Übermitteln an den Messdienst von WEBklar, Speichern, Verdichten zu Tageswerten, Auswerten im Kundenportal (Kennzahlen, Heatmap) und Löschen.

+ +

(2) Zwecke: Der Kunde soll erkennen, wie seine Website genutzt wird, um sie zu verbessern. Außerdem schützt WEBklar den Messdienst für den Kunden vor Missbrauch und verfälschten Zahlen (Mengenbegrenzung, Erkennen von Bots).

+ +

(3) WEBklar verwendet die Daten für keine eigenen Zwecke, auch nicht in anonymisierter Form und nicht für Auswertungen über mehrere Kunden. Es findet keine Werbung und keine Zusammenführung mit anderen Daten statt. WEBklar bildet keine Profile einzelner Besucher. Die Besucher-Kennung dient nur dazu, die Besucher eines Tages zu zählen.

+ +

3. Datenarten und Betroffene

+ +

(1) Solange der Besucher im Banner keine Wahl getroffen hat und sein Browser kein Signal nach Absatz 2 Satz 2 sendet: Pfad der aufgerufenen Seite (ohne Suchparameter und Anker), auch bei einem Seitenwechsel ohne Neuladen; Land (aus der IP-Adresse abgeleitet); Geräteklasse (Handy, Tablet oder Computer; aus dem Browser-Kennzeichen abgeleitet); Zeitpunkt (auf die volle Stunde gerundet); ein Zähler dafür, dass das Banner angezeigt wurde.

+ +

(2) Nach „Ablehnen“ sendet das Skript einmalig einen Zähler „abgelehnt“ und danach nichts mehr. Sendet der Browser die Signale „Global Privacy Control“ oder „Do Not Track“, zeigt das Skript kein Banner und sendet nichts.

+ +

(3) Nach „Annehmen“ zusätzlich: Domain der Website, von der der Besucher kam; Größenklasse des Browserfensters; eine täglich wechselnde pseudonyme Besucher-Kennung; Verweildauer (ab dem Laden der Seite) und Scrolltiefe je Seite; Klickpositionen mit einem Elementpfad aus Tag-Namen und Position (ohne Texte, Kennungen und Klassennamen); die Art von Kontakt-Klicks (Telefon, E-Mail, WhatsApp oder Link auf eine andere Website, dann mit deren Domain); ein Zähler „angenommen“.

+ +

(4) IP-Adresse und Browser-Kennzeichen (User-Agent) erhält der Server von WEBklar technisch bei jedem Abruf des Skripts und bei jeder Messanfrage, auch nach „Ablehnen“. Der Messdienst verarbeitet sie nur kurz im Arbeitsspeicher, um Land, Geräteklasse, Bots, die Mengenbegrenzung und, nur nach Einwilligung, die Besucher-Kennung zu bestimmen. Er speichert und protokolliert sie nicht. Nicht erhoben werden Cookies, Formularinhalte, Seitentexte, Mausbewegungen, Tastatureingaben und Sitzungsaufzeichnungen.

+ +

(5) Tageswerte sind Summen je Tag und Merkmal (etwa Aufrufe je Seite, je Land oder je Geräteklasse), ohne Besucher-Kennung. Enthalten die Pfade der Website personenbezogene Angaben, können auch Tageswerte personenbezogen sein (Nummer 11 Abs. 2).

+ +

(6) Besondere Kategorien personenbezogener Daten (Art. 9 DSGVO) werden nicht gezielt verarbeitet. Je nach Inhalt der Website können sich aus Pfaden oder Domains aber Rückschlüsse ergeben (Nummer 11 Abs. 3).

+ +

(7) Betroffene: Besucher der Website des Kunden.

+ +

4. Weisungen

+ +

(1) WEBklar verarbeitet die Daten nur auf dokumentierte Weisung des Kunden, auch in Bezug auf eine Übermittlung in ein Drittland oder an eine internationale Organisation. Das gilt nicht, wenn das Recht der Europäischen Union oder Deutschlands WEBklar zu einer Verarbeitung verpflichtet. In diesem Fall teilt WEBklar dem Kunden die Pflicht vorher mit, soweit das Gesetz es nicht verbietet.

+ +

(2) Mit dem Einschalten weist der Kunde WEBklar an, die Website-Analyse in der Standardkonfiguration nach der Leistungsbeschreibung zu betreiben. Weitere Weisungen ergeben sich aus den Einstellungen im Kundenportal (Einschalten, Ausschalten, Akzentfarbe des Banners). Sonstige Weisungen erteilt der Kunde in Textform, etwa im Chat des Kundenportals. Weisungen, die von der Standardkonfiguration abweichen, setzt WEBklar nur um, wenn das technisch vorgesehen ist; sonst kann der Kunde die Funktion ausschalten.

+ +

(3) Hält WEBklar eine Weisung für rechtswidrig, weist es den Kunden unverzüglich darauf hin. WEBklar darf die Ausführung aussetzen, bis der Kunde die Weisung ändert oder die Rechtslage geklärt ist.

+ +

5. Vertraulichkeit

+ +

WEBklar setzt nur Personen ein, die zur Vertraulichkeit verpflichtet sind oder einer gesetzlichen Verschwiegenheitspflicht unterliegen.

+ +

6. Technische und organisatorische Maßnahmen

+ +

(1) WEBklar trifft die Maßnahmen nach Art. 32 DSGVO, die in der Anlage zu diesem Vertrag beschrieben sind. WEBklar darf sie an den Stand der Technik anpassen, sofern das Schutzniveau nicht sinkt.

+ +

(2) Für den Server gelten ergänzend die Maßnahmen der Anlage 2 der Abo-Bedingungen, soweit die Anlage zu diesem Vertrag nichts anderes regelt.

+ +

7. Unterauftragsverarbeiter

+ +

(1) Der Kunde genehmigt den Einsatz der Hetzner Online GmbH, Industriestraße 25, 91710 Gunzenhausen, für den Betrieb des Servers, auf dem der Messdienst läuft, und für dessen Sicherung. Ort der Verarbeitung ist das Rechenzentrum Falkenstein (Deutschland). Eine Übermittlung in Drittländer findet nicht statt.

+ +

(2) Will WEBklar einen weiteren Unterauftragsverarbeiter hinzuziehen oder einen ersetzen, teilt es das dem Kunden mindestens vier Wochen vorher in Textform mit. Der Kunde kann innerhalb von zwei Wochen nach Zugang der Mitteilung aus wichtigem datenschutzrechtlichem Grund in Textform widersprechen. WEBklar setzt den neuen Unterauftragsverarbeiter nicht vor Ablauf dieser Frist ein. Kündigt ein Unterauftragsverarbeiter von WEBklar eine eigene Änderung mit kürzerer Frist an, informiert WEBklar den Kunden unverzüglich, nachdem die Ankündigung eingegangen ist; der Kunde kann dann unverzüglich widersprechen. Einigen sich die Parteien nicht, kann der Kunde die Website-Analyse ausschalten und WEBklar sie für diese Website zu dem Zeitpunkt beenden, zu dem der neue Unterauftragsverarbeiter eingesetzt wird. Die Daten werden dann nach Nummer 9 gelöscht, auf Verlangen des Kunden sofort.

+ +

(3) WEBklar verpflichtet jeden Unterauftragsverarbeiter vertraglich auf die Datenschutzpflichten nach Art. 28 Abs. 4 DSGVO. Bei der Hetzner Online GmbH ist das deren Vertrag zur Auftragsverarbeitung, den WEBklar abgeschlossen hat. Kommt ein Unterauftragsverarbeiter seinen Datenschutzpflichten nicht nach, haftet WEBklar dem Kunden für die Einhaltung dieser Pflichten (Art. 28 Abs. 4 Satz 2 DSGVO).

+ +

(4) Die Länderzuordnung nutzt eine Datenbank, die WEBklar auf dem eigenen Server speichert („IP to Country Lite“ von DB-IP.com, Lizenz CC BY 4.0). Daten der Besucher werden dabei nicht an DB-IP übermittelt. DB-IP ist kein Unterauftragsverarbeiter.

+ +

8. Unterstützung des Kunden, Betroffenenrechte

+ +

(1) WEBklar leitet Anfragen betroffener Personen, die an WEBklar gerichtet sind, unverzüglich an den Kunden weiter. WEBklar unterstützt ihn mit geeigneten technischen und organisatorischen Maßnahmen bei der Beantwortung.

+ +

(2) Die gespeicherten Messdaten enthalten keine IP-Adresse, keinen Namen und keine Kennung, die länger als einen Tag gilt; Zeitpunkte sind auf die volle Stunde gerundet. Einzelne Besucher kann WEBklar daher in der Regel nicht identifizieren (Art. 11 DSGVO). Ein Abgleich kann aber möglich sein, solange die Zugriffsprotokolle der Website (Anlage 1 und 2 der Abo-Bedingungen, 14 Tage) vorhanden sind. Nennt eine betroffene Person zusätzliche Angaben, etwa Datum, Uhrzeit, besuchte Seiten oder ihre IP-Adresse, prüft WEBklar auf Weisung des Kunden, auch anhand dieser Protokolle, ob eine Zuordnung möglich ist, und teilt ihm das Ergebnis mit.

+ +

(3) Der Messung können Besucher technisch widersprechen (Art. 21 DSGVO): Nach „Ablehnen“ und bei den Browser-Signalen „Global Privacy Control“ und „Do Not Track“ sendet das Skript nichts mehr.

+ +

(4) WEBklar unterstützt den Kunden bei seinen Pflichten aus Art. 32 bis 36 DSGVO. Dazu gehören die Angaben, die er für sein Verzeichnis von Verarbeitungstätigkeiten und für eine etwaige Datenschutz-Folgenabschätzung braucht, und eine kurze Interessenabwägung für die Zählung nach Art. 6 Abs. 1 lit. f DSGVO, die WEBklar mit jeder Fassung dieses Vertrags bereitstellt.

+ +

(5) Verletzungen des Schutzes personenbezogener Daten meldet WEBklar dem Kunden unverzüglich, möglichst innerhalb von 24 Stunden nach Kenntnis, mit den Informationen, die zu diesem Zeitpunkt vorliegen.

+ +

(6) Zum Nachweis der Einwilligungen bewahrt WEBklar jede Fassung des Banner-Textes und der Zusatzseite mit dem Zeitraum ihrer Verwendung auf, bis drei Jahre nach dem Ende der Website-Analyse. WEBklar stellt sie dem Kunden auf Verlangen zur Verfügung. Ein Protokoll je Besucher führt WEBklar nicht.

+ +

(7) Die Besucher informiert der Kunde (Art. 13 DSGVO). WEBklar stellt ihm dafür die Zusatzseite „/datenschutz-analyse.html“ als Muster bereit. Liegt die Datenschutzerklärung in der von WEBklar betreuten Website, fügt WEBklar dort einen Hinweis auf die Zusatzseite ein; sonst erhält der Kunde den Hinweis als Textbaustein (Leistungsbeschreibung Nr. 4 Abs. 4).

+ +

9. Löschung und Rückgabe

+ +

(1) Einzelne Ereignisse und Klickpositionen löscht WEBklar automatisch nach 30 Tagen. Der Löschlauf läuft täglich, die Löschung erfolgt also in der Regel spätestens am 31. Tag; fällt ein Lauf aus, holt der nächste ihn nach.

+ +

(2) Tageswerte löscht WEBklar 25 Monate nach dem jeweiligen Tag. Nach dem Ende der Website-Analyse (Ausschalten oder Ende des Wartungs-Abos) löscht WEBklar alle Daten der Website am 61. Tag. Bis zum 46. Tag nach dem Ende kann der Kunde eine Kopie der Tageswerte und der noch vorhandenen Einzelereignisse verlangen; WEBklar stellt sie innerhalb von zwei Wochen als CSV-Datei bereit. Auf Weisung des Kunden löscht WEBklar die Daten früher.

+ +

(3) Die Daten sind in der täglichen Vollsicherung des Servers enthalten (§ 3 Abs. 5 der Abo-Bedingungen). Gelöschte Daten bleiben dort bis zu sieben Tage erhalten und werden dann überschrieben. Wird eine Sicherung zurückgespielt, holt der tägliche Löschlauf die fälligen Löschungen nach; Löschungen auf Weisung des Kunden wiederholt WEBklar.

+ +

(4) Gesetzliche Aufbewahrungspflichten bleiben unberührt.

+ +

10. Nachweise und Kontrollen

+ +

WEBklar stellt dem Kunden alle Informationen zur Verfügung, die zum Nachweis der Pflichten aus Art. 28 DSGVO nötig sind, und ermöglicht Überprüfungen einschließlich Inspektionen durch den Kunden oder einen von ihm beauftragten, zur Verschwiegenheit verpflichteten Prüfer. Sie finden nach Anmeldung mit angemessener Frist (in der Regel 14 Tage) zu den Servicezeiten statt, ohne den Betrieb unzumutbar zu stören. Für das Rechenzentrum genügen in der Regel die Nachweise des Betreibers (Zertifizierung der Hetzner Online GmbH nach ISO/IEC 27001). Für mehr als eine Vor-Ort-Kontrolle pro Jahr kann WEBklar eine angemessene Vergütung verlangen.

+ +

11. Pflichten des Kunden

+ +

(1) Der Kunde ist Verantwortlicher für die Messung. Er entfernt, verdeckt oder umgeht das Banner nicht. Er bindet ohne Abstimmung mit WEBklar keine weiteren Mess- oder Tracking-Werkzeuge ein.

+ +

(2) Enthalten die Pfade seiner Website personenbezogene Angaben, etwa Namen, Kundennummern oder E-Mail-Adressen, teilt der Kunde das WEBklar vor dem Einschalten mit.

+ +

(3) Richtet sich die Website auch gezielt an Kinder unter 16 Jahren oder lassen ihre Inhalte auf besondere Kategorien personenbezogener Daten schließen (etwa Gesundheit, Religion oder politische Meinung), gilt Nr. 3 Abs. 4 der Leistungsbeschreibung.

+ +

12. Haftung, Änderungen, Schlussbestimmungen

+ +

(1) Gegenüber betroffenen Personen gilt Art. 82 DSGVO. Für die Haftung zwischen Kunde und WEBklar gilt § 13 der Abo-Bedingungen.

+ +

(2) Eine neue Fassung dieses Vertrags oder der Leistungsbeschreibung teilt WEBklar dem Kunden mindestens sechs Wochen vor ihrem Wirksamwerden in Textform mit. Sie wird wirksam, wenn der Kunde ihr im Kundenportal oder in Textform zustimmt. Stimmt er nicht zu, gilt die bisherige Fassung weiter.

+ +

(3) Ist die neue Fassung nötig, weil ein Gesetz, eine Gerichtsentscheidung oder eine Vorgabe einer Aufsichtsbehörde den Betrieb in der bisherigen Form nicht mehr zulässt, und stimmt der Kunde ihr nicht zu, darf WEBklar die Website-Analyse für seine Website nach Nr. 8 Abs. 2 der Leistungsbeschreibung beenden oder aussetzen. Das Wartungs-Abo bleibt davon unberührt.

+ +

(4) Im Übrigen gilt § 16 der Abo-Bedingungen.

+ +

Anlage: Technische und organisatorische Maßnahmen der Website-Analyse (Art. 32 DSGVO)

+ + + + + + + + + + + + + + + + + + + +
BereichMaßnahmen
ÜbertragungSkript und Messdaten werden nur über TLS (HTTPS) übertragen.
Speicher im BrowserEs werden keine Cookies gesetzt, und der Messdienst wertet keine Cookies aus. Messanfragen sendet das Skript ohne Cookies. Im lokalen Speicher des Browsers liegt nur die Banner-Wahl (Eintrag „wk-consent“ mit Wahl, Zeitpunkt und Fassung des Banner-Textes). Sie gilt 183 Tage; danach und bei einer neuen Fassung des Banner-Textes fragt das Banner erneut.
EinwilligungSolange keine Wahl getroffen ist und kein Browser-Signal vorliegt, sendet das Skript nur den Pfad der Seite, auch beim Seitenwechsel ohne Neuladen, und den Zähler „Banner angezeigt“. Nach „Ablehnen“ sendet es einmalig den Zähler „abgelehnt“ und danach nichts mehr, auch nicht aus anderen geöffneten Tabs. Bei „Global Privacy Control“ oder „Do Not Track“ zeigt es kein Banner und sendet nichts. Klick-, Scroll- und Verweildauer-Ereignisse registriert es erst nach „Annehmen“. Die Schaltflächen „Ablehnen“ und „Annehmen“ sind gleich gestaltet.
DatenminimierungIP-Adresse und Browser-Kennzeichen werden weder gespeichert noch protokolliert. Der Messdienst verwendet sie nur im Arbeitsspeicher für Land, Geräteklasse, Bot-Erkennung, Mengenbegrenzung und, nur nach Einwilligung, die Besucher-Kennung. Zeitpunkte werden auf die volle Stunde gerundet gespeichert. Pfade werden ohne Suchparameter und Anker gespeichert; Abschnitte, die wie Kennungen aussehen (lange Ziffernfolgen, UUIDs, E-Mail-Adressen), werden vorher ersetzt. Elementpfade bestehen nur aus Tag-Namen und Position. Formulareingaben und Seitentexte werden nicht erfasst.
PseudonymisierungDie Besucher-Kennung (nur nach Einwilligung) ist ein auf 64 Bit gekürzter HMAC-SHA256 aus Website-Schlüssel, IP-Adresse und Browser-Kennzeichen mit einem Tagesschlüssel. Auch der Schlüssel der Mengenbegrenzung wird mit dem Tagesschlüssel gebildet. Der Tagesschlüssel liegt nur im Arbeitsspeicher; die Auslagerung auf die Festplatte ist für den Messdienst gesperrt. Er wird beim ersten Ereignis eines neuen Kalendertags (Europe/Berlin) und bei jedem Neustart neu erzeugt und nie gesichert. Ältere Kennungen lassen sich danach nicht mehr zuordnen.
ZugriffskontrolleDie Verwaltungsschnittstelle des Messdienstes (Auswertung, Website-Verwaltung) läuft auf einem internen Port, der nicht öffentlich erreichbar ist, und ist durch ein Zugriffstoken geschützt. Zugriff haben nur das Kundenportal und die Verwaltung von WEBklar. Das Portal zeigt jedem Kunden nur die Daten seiner eigenen Websites.
HeatmapDie Heatmap öffnet ein signierter Link, den nur der angemeldete Kunde im Kundenportal erzeugen kann. Der Link gilt 30 Minuten und liefert nur Klickpunkte der gewählten Seite und Ansicht, ohne Zeitpunkte und Kennungen.
EingangsprüfungMessdaten werden nur angenommen, wenn die Website registriert und eingeschaltet ist und Origin bzw. Referer zu ihren Domains passen. Bots werden verworfen. Größe und Menge der Anfragen sind je Website und Absender begrenzt (Zähler nur im Arbeitsspeicher). Für ausgeschaltete Websites liefert der Messdienst ein leeres Skript aus.
LöschungTäglicher Löschlauf um 02:30 Uhr (Europe/Berlin): Ereignisse und Klicks nach 30 Tagen, Tageswerte nach 25 Monaten, alle Daten einer Website 60 Tage nach dem Ausschalten. Gelöschte Datensätze werden in der Datenbankdatei überschrieben und aus dem Schreibprotokoll (WAL) entfernt.
TrennungDer Messdienst läuft in einem eigenen Container mit eigenem Datenverzeichnis und hat keinen Zugriff auf andere Kundendaten. Alle Datensätze tragen den Website-Schlüssel; Abfragen erfolgen nur je Website.
ProtokolleDer Reverse-Proxy führt kein Zugriffsprotokoll, und der Messdienst protokolliert keine Anfragen. Wird ein Zugriffsprotokoll eingeschaltet, dann nicht für die Adresse des Messdienstes. Meldungen der Container werden nach 14 Tagen gelöscht.
DatensicherungTägliche Vollsicherung des Servers durch Hetzner; verfügbar sind die letzten sieben Tagessicherungen (§ 3 Abs. 5 der Abo-Bedingungen). Einen gesonderten Datenbank-Export des Messdienstes gibt es nicht.
RechenzentrumHetzner Online GmbH, Rechenzentrum Falkenstein (Deutschland). Hetzner ist nach ISO/IEC 27001 zertifiziert; der Geltungsbereich umfasst die Hosting-Dienstleistungen und die Rechenzentren.
OrganisationVerpflichtung aller Beteiligten auf Vertraulichkeit, Ablauf für Datenschutzverletzungen (Nummer 8 Abs. 5), Archiv der Fassungen von Banner-Text und Zusatzseite (Nummer 8 Abs. 6), Überprüfung der Maßnahmen mindestens einmal im Jahr.
+
+ + diff --git a/public/rechtliches/avv-website-analyse-2026-10-02.pdf b/public/rechtliches/avv-website-analyse-2026-10-02.pdf new file mode 100644 index 0000000000000000000000000000000000000000..de4ae19fab53c06bdc94be7682e0c85db6346e0e GIT binary patch literal 109249 zcma&Nb8u!&6gN0YCKKDX`NX!32`9$Hwr$&dV%xTD8xz~f=KWA#?bg=TR^P5Z_nhCs zz5P%3Io)ImB4Ts^dKPH1`LokqXaFH2p^bq#G!GBMZ!HJ5Fe)smOg_}ja(g_%CX_f!yCeWSl6|066j8*34LM`J=t z5w7p=`7dMufP)DD;G|(>r1*Zmak4f>|KAWkK4@cWqyMIq`TtCZH$be8DxyDO&m=LSvdhre0+osj^BUJ3feXE zLVGe-E``X?sMYI375|8~h~+2zO-pE8ol zDr-MdBVtN=dRfQt;Xv3(Z`xskK_(z^3ZZX4fQ5sJNRx~AI;V)8G7jqeI48&3Is{qvo+_K* z`7~%JQt~{?*0K+Q9);8Awbf3Z-z8vtG;X{YqSP1S8jiaePj;*{llyRtg(pM$HYk~( zhplLoPMC;#G<%p=-U@OSm20{c;Vx6$hAwLx^5#?!Qz#dgH=|FSv6)C#S%T_M!n^&x zQIWm~6It!0obn<(&&m>a4~~)J8vQp`Php<(Tdx; zIOD9V*{ke*gKn~i&V-&4`LKta&Z|AHJ!KU(+eT?#?rHNKVaY)1{_UEycuEBh?ICK} zEbjzE%-%JvWTm8=MBYIF^C~=m4{FlqtGK^f8q{@UaHT(1`7wkDLO0vUs3syz^Rf4Awm0B##K-QMEvR20 zc~5`j_ntC;2Epg!-A%&Rqi*--%hUGf=l)eOL;LBtd_6w=LD?#sJb#IZH>N#RRnoK3 zudAqtR-_k^fEdmrd+%#AZ^SI=U%V>YeS6mLTNQ^qgOXs^uh zqYzhWo}6&k8oSUN12+G(zlQ%}S%n)410Cf1S#aDascs>Ik-R5Bu(2J54<{cywCy2~5CG{FHacW5o*nJojAkQ6A6|uCSMp+eLA1Y=a95mgZ zrKy3Q04%+c%Zv$AB5BYk3Vw-`uNh3Y);B=(tS?;Asf6^-ccLY_yd}B=hDF*emhsvIHwoa6yYqt=yDOQmBfIKo z2#?HGyQZkTm#=YGT(Jb3*R-@8r}@OV7;?N3xGDV24e5O%86Y$PMZ3*LL|ALk?tvt_ zp#jv35?2cm7B_y|I2dZko;F}&>)Os4U^NC{ti55JEPWbPGW+R(Uy^7b+lKn{0%xA@ zA;1X`eR+4PZ01dZeI`UwU)7+0bf;QZkD7kB#m0ms2lNe1L{Wyuy2pSw67_j-*gKXV zJYcFnCNC{j|FaUDF�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 MU@|kysLEpgU;4KlcK`qY literal 0 HcmV?d00001 diff --git a/public/rechtliches/leistungsbeschreibung-website-analyse-2026-10-02.html b/public/rechtliches/leistungsbeschreibung-website-analyse-2026-10-02.html new file mode 100644 index 0000000..51c43e7 --- /dev/null +++ b/public/rechtliches/leistungsbeschreibung-website-analyse-2026-10-02.html @@ -0,0 +1,164 @@ + + + + + + Leistungsbeschreibung Website-Analyse – WEBklar + + + +
+ + +
WEBKLAR
+

Leistungsbeschreibung Website-Analyse

+ +

Fassung 2026-10-02 · Zusatzbedingungen zum Wartungs-Abo

+ +

1. Geltung

+ +

(1) Diese Leistungsbeschreibung regelt die Funktion „Website-Analyse“ im Wartungs-Abo. Sie wird vereinbart, wenn der Kunde die Funktion einschaltet und ihr zusammen mit dem Auftragsverarbeitungsvertrag Website-Analyse („AVV Website-Analyse“) zustimmt. Wie die Zustimmung abläuft, regelt die Vorbemerkung des AVV Website-Analyse.

+ +

(2) Im Übrigen gelten die Abo-Bedingungen. Bei Widersprüchen geht für die Website-Analyse diese Leistungsbeschreibung vor, in Datenschutzfragen der AVV Website-Analyse.

+ +

(3) Leistungsbeschreibung B Nr. 3 der Abo-Bedingungen („Rechtstexte … nicht enthalten“) gilt nicht für die Zusatzseite nach Nr. 2 Abs. 2 und den Hinweis in der Datenschutzerklärung nach Nr. 4 Abs. 4. Beides ist Teil der Website-Analyse.

+ +

2. Leistung

+ +

(1) Die Website-Analyse misst, wie die öffentliche Website des Kunden genutzt wird. Sie ist im Wartungs-Abo ohne Aufpreis enthalten.

+ +

(2) Beim Veröffentlichen der Website fügt WEBklar Folgendes ein:

+ +
    +
  • ein Messskript in jede HTML-Datei der Website,
  • +
  • ein Einwilligungsbanner am unteren Rand mit den gleich gestalteten Schaltflächen „Ablehnen“ und „Annehmen“ in der Akzentfarbe, die der Kunde beim Einschalten wählt (ist sie für weiße Schrift zu hell, nimmt das Banner Schwarz),
  • +
  • eine Schaltfläche „Datenschutz-Einstellungen“ unten rechts, über die Besucher ihre Wahl jederzeit ändern können (hat die Website ein eigenes Element mit dem Attribut data-webklar-consent, übernimmt dieses Element die Aufgabe),
  • +
  • eine Zusatzseite „/datenschutz-analyse.html“ mit den Datenschutzhinweisen zur Messung (Verantwortlicher: der Kunde).
  • +
+ +

(3) Gemessen wird:

+ +
    +
  • solange der Besucher keine Wahl getroffen hat und sein Browser kein Signal nach dem nächsten Spiegelstrich sendet: Seitenaufrufe mit Pfad (ohne Suchparameter), Land (aus der IP-Adresse, die nicht gespeichert wird), Geräteklasse und ein Zähler dafür, dass das Banner angezeigt wurde;
  • +
  • bei den Browser-Signalen „Global Privacy Control“ und „Do Not Track“: nichts, und es erscheint kein Banner;
  • +
  • nach „Ablehnen“: nichts mehr, außer einmal dem Zähler „abgelehnt“;
  • +
  • nach „Annehmen“ zusätzlich: die Domain der Website, von der der Besucher kam, die Größenklasse des Browserfensters, eine täglich wechselnde pseudonyme Besucher-Kennung, Verweildauer, Scrolltiefe, Klickpositionen (Heatmap), die Art von Kontakt-Klicks (Telefon, E-Mail, WhatsApp, Link auf eine andere Website mit deren Domain) und ein Zähler „angenommen“.
  • +
+ +

Die einzelnen Datenarten nennt der AVV Website-Analyse in Nummer 3.

+ +

(4) Es werden keine Cookies gesetzt. Gespeichert wird auf dem Gerät des Besuchers nur seine Banner-Wahl im lokalen Speicher des Browsers, für 183 Tage.

+ +

(5) Die Auswertung steht im Kundenportal zur Verfügung: Kennzahlen und Diagramme für die letzten 7, 30 oder 90 Tage und eine Heatmap je Seite und Ansicht (Handy, Tablet, Computer) aus den bis zu 5.000 jüngsten Klicks der letzten 30 Tage. Die Daten liegen auf dem Server von WEBklar bei der Hetzner Online GmbH in Deutschland; sie werden nicht in Drittländer übermittelt. Einzelne Ereignisse und Klicks werden nach 30 Tagen gelöscht, Tageswerte nach 25 Monaten, alle Daten rund 60 Tage nach dem Ende der Website-Analyse (AVV Website-Analyse Nummer 9).

+ +

(6) Die Zahlen sind Näherungswerte. Besucher mit Blockern, abgeschaltetem JavaScript, Browser-Signal oder Ablehnung werden nur eingeschränkt oder gar nicht erfasst. Besucherzahlen, Herkunftsseiten, Verweildauer, Scrolltiefe, Klicks und Kontakt-Klicks stammen nur von Besuchern, die „Annehmen“ gewählt haben.

+ +

(7) Nicht enthalten sind Sitzungsaufzeichnungen, die Auswertung von Formularinhalten, die Messung von Ladezeiten und Fehlern, Kampagnen- und Trichteranalysen sowie ein Datenexport außer nach Nr. 7 Abs. 3.

+ +

(8) Das Banner fragt nur nach der Einwilligung in die Website-Analyse von WEBklar. Andere einwilligungspflichtige Inhalte der Website, etwa eingebettete Karten, Videos oder Schriften von Drittanbietern, deckt es nicht ab.

+ +

3. Voraussetzungen

+ +

(1) Der Kunde hat ein laufendes Wartungs-Abo. Im Hosting-Abo ist die Website-Analyse nicht enthalten.

+ +

(2) Die Website ist öffentlich erreichbar und wird bei WEBklar gehostet (Adresse unter project.webklar.com oder eigene Domain, die auf den Server von WEBklar zeigt). Nicht öffentliche Websites und Vorschauen, die nur nach einer Anmeldung erreichbar sind, werden nicht gemessen, ebenso wenig Websites, die im Dev-Modus auf einem Entwicklungsserver laufen. Enthält eine öffentliche Website Bereiche, die erst nach einer Anmeldung zugänglich sind (etwa eine Web-Anwendung mit Kundenkonto), werden auch dort Seitenaufrufe gezählt; dafür gilt Nr. 4 Abs. 5.

+ +

(3) Auf der Zusatzseite erscheinen als Verantwortlicher die Firma (sonst der Name), die Anschrift, soweit sie im Kundenkonto hinterlegt ist, und die E-Mail-Adresse aus dem Kundenkonto. Das Portal zeigt diese Angaben vor dem Einschalten an. Der Kunde prüft sie und teilt Änderungen mit. Fehlen Firma und Name oder fehlt eine gültige E-Mail-Adresse, lässt sich die Funktion nicht einschalten.

+ +

(4) Richtet sich die Website auch gezielt an Kinder unter 16 Jahren, schaltet der Kunde die Website-Analyse nicht ein, weil eine Einwilligung über das Banner dann nicht genügt (Art. 8 DSGVO). Lassen Inhalte oder Adressen der Website auf besondere Kategorien personenbezogener Daten schließen, etwa Gesundheit, Religion oder politische Meinung, teilt der Kunde das WEBklar vor dem Einschalten mit. WEBklar darf das Einschalten für eine solche Website ablehnen oder die Website-Analyse dort ausschalten.

+ +

4. Pflichten des Kunden

+ +

(1) Der Kunde ist für die Messung auf seiner Website Verantwortlicher im Sinne der DSGVO.

+ +

(2) Er entfernt, verdeckt oder umgeht das Banner nicht und verändert das Skript nicht. Text und Gestaltung des Banners legt WEBklar fest.

+ +

(3) Er bindet ohne Abstimmung mit WEBklar keine weiteren Mess-, Tracking- oder Marketing-Werkzeuge ein (zum Beispiel Google Analytics oder Meta Pixel), weil sie eine eigene Einwilligung erfordern können.

+ +

(4) Liegt die Datenschutzerklärung in der von WEBklar betreuten Website, fügt WEBklar beim Einschalten dort einen kurzen Hinweis mit Link auf die Zusatzseite ein und entfernt ihn beim Ausschalten wieder; das wird nicht auf das Stundenkontingent angerechnet. Liegt sie woanders, etwa bei einem externen Generator, erhält der Kunde den Hinweis als Textbaustein und fügt ihn selbst ein und entfernt ihn nach dem Ausschalten selbst. Für den übrigen Inhalt seiner Datenschutzerklärung bleibt der Kunde verantwortlich (§ 6 Abs. 3 der Abo-Bedingungen). Fällt WEBklar beim Einfügen ein offensichtlicher Widerspruch auf (etwa „Wir setzen keine Analyse-Werkzeuge ein“), weist WEBklar den Kunden darauf hin; eine Pflicht zur Prüfung der Datenschutzerklärung entsteht daraus nicht.

+ +

(5) Enthalten die Pfade seiner Website personenbezogene Angaben, etwa Namen, Kundennummern oder E-Mail-Adressen, teilt der Kunde das WEBklar vor dem Einschalten mit.

+ +

(6) Er nutzt die Auswertung nur für eigene Zwecke, versucht nicht, einzelne Besucher zu identifizieren, und gibt Heatmap-Links nicht weiter.

+ +

5. Verfügbarkeit und Störungen

+ +

(1) Das Verfügbarkeitsziel nach § 5 der Abo-Bedingungen gilt für die Website, nicht für die Messung. Störungen der Messung beheben wir in angemessener Frist (§ 12 der Abo-Bedingungen). Daten, die während einer Störung nicht erfasst wurden, lassen sich nicht nachträglich erheben.

+ +

(2) Fällt der Messdienst aus, wird die Website weiter ausgeliefert, nur ohne Banner und Messung.

+ +

(3) Die gesetzlichen Rechte des Kunden sowie §§ 12 und 13 der Abo-Bedingungen bleiben unberührt.

+ +

6. Hinweis zur Rechtslage

+ +

Für die Zählung, solange der Besucher keine Wahl getroffen hat (Nr. 2 Abs. 3), übermittelt das Skript nur die Adresse der aufgerufenen Seite und die Angabe, dass das Banner angezeigt wurde. Land und Geräteklasse bestimmt der Messdienst aus den Daten, die jeder Browser bei einer Anfrage ohnehin mitsendet. Ob auch dafür eine Einwilligung nach § 25 TDDDG nötig ist, haben Gerichte und Aufsichtsbehörden nicht entschieden; die Aufsichtsbehörden legen den Begriff des Zugriffs auf das Endgerät eher weit aus. Ändert sich die Rechtslage, passt WEBklar die Messung an (Nr. 8).

+ +

7. Ende der Leistung

+ +

(1) Der Kunde kann die Website-Analyse jederzeit im Kundenportal ausschalten; das Portal bestätigt die Abschaltung. Mit dem Ende des Wartungs-Abos endet die Website-Analyse; WEBklar schaltet sie spätestens am folgenden Tag ab und informiert den Kunden per E-Mail. Das gilt auch bei einem Wechsel ins Hosting-Abo und beim Widerruf eines Wechsels ins Wartungs-Abo.

+ +

(2) Mit dem Ausschalten speichert der Messdienst keine Messdaten mehr, und die Heatmap ist nicht mehr abrufbar. Das Messskript liefert dann kein Banner mehr aus, sobald die Website einmal mit der aktuellen Fassung des Skripts veröffentlicht wurde. Skript, Zusatzseite und, soweit WEBklar ihn eingefügt hat, den Hinweis in der Datenschutzerklärung entfernt WEBklar mit der nächsten Veröffentlichung der Website. WEBklar löst sie in der Regel sofort aus, spätestens innerhalb von fünf Werktagen.

+ +

(3) Die gespeicherten Daten löscht WEBklar nach Nummer 9 des AVV Website-Analyse. Bis zum 46. Tag nach dem Ende kann der Kunde eine Kopie der Tageswerte und der noch vorhandenen Einzelereignisse als CSV-Datei verlangen.

+ +

8. Änderungen und Einstellung

+ +

(1) WEBklar darf die Technik der Website-Analyse verbessern, wenn der Leistungsumfang nicht schlechter wird (§ 3 Abs. 7 der Abo-Bedingungen). Ändert sich dabei, welche Daten erhoben werden, gilt Nummer 12 des AVV Website-Analyse.

+ +

(2) WEBklar darf die Website-Analyse für eine Website mit einer Frist von vier Wochen beenden oder für alle Kunden mit einer Frist von drei Monaten einstellen, wenn

+ +
    +
  • ein Gesetz, eine Gerichtsentscheidung oder eine Vorgabe einer Aufsichtsbehörde den Betrieb in der bisherigen Form unzulässig macht oder nur mit wesentlich anderer Technik erlaubt und der Kunde einer dafür nötigen neuen Fassung nicht zustimmt (AVV Website-Analyse Nummer 12 Abs. 3), oder
  • +
  • eine Sicherheitslücke sich nicht anders beheben lässt.
  • +
+ +

Die Mitteilung erfolgt in Textform und nennt den Grund, die Merkmale der Änderung, den Zeitpunkt und bei Verbrauchern das Recht, den Vertrag nach § 327r Abs. 3 BGB zu beenden, mit seiner Frist.

+ +

(3) Ist der Weiterbetrieb aus einem Grund nach Absatz 2 schon vor Ablauf der Frist nicht zulässig, darf WEBklar die Messung ohne Vorankündigung aussetzen, solange das nötig ist. WEBklar informiert den Kunden darüber unverzüglich in Textform mit dem Grund und nimmt die Messung wieder auf, sobald das zulässig und technisch möglich ist.

+ +

(4) Gegenüber Unternehmern darf WEBklar die Website-Analyse außerdem ohne besonderen Grund mit einer Frist von drei Monaten in Textform für alle Kunden einstellen. Der Kunde kann das Wartungs-Abo dann innerhalb von 30 Tagen nach der Mitteilung zum Zeitpunkt der Einstellung kündigen; die Mindestlaufzeit steht dem nicht entgegen.

+ +

(5) Weil für die Website-Analyse kein Aufpreis berechnet wird, ändert ihre Einstellung den Preis des Wartungs-Abos nicht. Gesetzliche Rechte von Verbrauchern bei Änderungen digitaler Produkte (§ 327r BGB) bleiben unberührt.

+ +

9. Hinweise

+ +

(1) Keine Rechtsberatung. Die Zusatzseite und der Hinweis in der Datenschutzerklärung sind Mustertexte für die Standardkonfiguration. WEBklar sorgt dafür, dass sie die Technik richtig beschreiben, und passt sie an, wenn sich die Technik ändert. Eine Prüfung, ob die Website des Kunden insgesamt datenschutzkonform ist, und eine rechtliche Beratung im Einzelfall schuldet WEBklar nicht. Abstimmungen nach dieser Leistungsbeschreibung betreffen nur die Technik.

+ +

(2) Nachweis der Einwilligung. Ein Protokoll je Besucher wird nicht geführt. Als Nachweis dienen die Dokumentation der Technik und das Archiv der Fassungen von Banner-Text und Zusatzseite (AVV Website-Analyse Nummer 8 Abs. 6).

+ +

(3) Die Länderzuordnung nutzt die Datenbank „IP to Country Lite“ von DB-IP.com (Lizenz CC BY 4.0). Im Kundenportal steht dazu unter der Auswertung der Hinweis „Länderdaten: IP-Geolocation by DB-IP“ mit Link auf db-ip.com.

+
+ + diff --git a/public/rechtliches/leistungsbeschreibung-website-analyse-2026-10-02.pdf b/public/rechtliches/leistungsbeschreibung-website-analyse-2026-10-02.pdf new file mode 100644 index 0000000000000000000000000000000000000000..03dc353b56eceb4a4c75f7238e3d2319b749fbad GIT binary patch literal 94042 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 cqr5@o;_PDX Datenschutz – Reichweitenmessung +

← Zur Startseite

+

Datenschutz bei der Reichweitenmessung

-

Ergänzung zur Datenschutzerklärung dieser Website · Stand: 01.10.2026

+

Ergänzung zur Datenschutzerklärung dieser Website · Stand: 02.10.2026

+

Diese Seite beschreibt nur die Reichweitenmessung. Alle übrigen Datenschutzhinweise findest Du in der Datenschutzerklärung dieser Website; Impressum und Datenschutzerklärung erreichst Du über die Startseite.

Verantwortlicher

{{company}}
{{#address}}{{address}}
{{/address}}E-Mail: {{email}}

+

Falls es einen Datenschutzbeauftragten gibt, findest Du seine Kontaktdaten in der Datenschutzerklärung dieser Website.

Worum es geht

-

Wir möchten verstehen, wie diese Website genutzt wird, um sie zu verbessern: Welche Seiten werden gelesen, woher kommen die Besucher, wo bleiben sie hängen? Es gibt dabei keine Werbung, kein Profiling und keine Weitergabe an Werbenetzwerke. Die Messung setzt keine Cookies und bindet keine Dienste von Google, Meta oder anderen Drittanbietern ein. Die Messung läuft auf Servern in Deutschland.

+

Wir möchten verstehen, wie diese Website genutzt wird, um sie zu verbessern: Welche Seiten werden gelesen, woher kommen die Besucher, wo wird geklickt? Dafür nutzen wir eine eigene Messung ohne Cookies und ohne Dienste von Google, Meta oder anderen Werbenetzwerken. Wir nutzen die Daten nicht für Werbung und bilden keine Profile einzelner Besucher. Die Messung läuft auf einem Server in Deutschland.

+

Damit die Messung arbeiten kann, lädt Dein Browser bei jedem Seitenaufruf ein Skript von einem Server der WEBklar GbR. Dabei erhält dieser Server, wie bei jeder Datei, die eine Website lädt, technisch Deine IP-Adresse und Dein Browser-Kennzeichen (User-Agent). Das gilt auch, wenn Du ablehnst oder „Global Privacy Control“ aktiviert hast. Wir speichern und protokollieren beides nicht.

-

Wenn Du nichts oder „Ablehnen“ auswählst

-

Dann zählen wir nur, dass eine Seite aufgerufen wurde. Dabei werden gespeichert:

+

Solange Du im Banner nichts ausgewählt hast

+

Dann zählen wir den Aufruf der Seite. Das Skript übermittelt dafür nur die Adresse der Seite und die Angabe, dass das Banner angezeigt wurde. Gespeichert werden:

  • der Seitenpfad (ohne Suchbegriffe oder Parameter hinter dem „?“),
  • -
  • die Website, von der Du kommst (nur der Domainname, falls es nicht diese Website selbst ist),
  • -
  • das Land, abgeleitet aus Deiner IP-Adresse,
  • -
  • die Geräteklasse (Handy, Tablet, Computer) aus dem Browser-Kennzeichen und zusätzlich die Größenklasse des Browserfensters, und
  • -
  • anonyme Zähler dafür, ob das Banner angezeigt, angenommen oder abgelehnt wurde.
  • +
  • das Land, das wir aus Deiner IP-Adresse ableiten,
  • +
  • die Geräteklasse (Handy, Tablet oder Computer), die wir aus dem Browser-Kennzeichen ableiten,
  • +
  • der Zeitpunkt, auf die volle Stunde gerundet, und
  • +
  • ein Zähler dafür, dass das Banner angezeigt wurde.
-

Deine IP-Adresse wird nur für den Augenblick der Abfrage verwendet, um das Land zu bestimmen. Sie wird nicht gespeichert, ebenso wenig Dein Browser-Kennzeichen (User-Agent). Ohne Einwilligung gibt es keine Kennung, mit der wir Dich wiedererkennen könnten. Dasselbe gilt, wenn Dein Browser das Signal „Global Privacy Control“ oder „Do Not Track“ sendet: Wir behandeln das wie ein „Ablehnen“ und zeigen das Banner nicht an.

-

Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO. Unser berechtigtes Interesse ist, die Nutzung unserer Website in Zahlen zu kennen und das Banner korrekt zu betreiben. Auf Informationen in Deinem Endgerät greifen wir dafür nach unserer Einschätzung nicht im Sinne von § 25 TDDDG zu.

+

IP-Adresse und Browser-Kennzeichen verwenden wir nur kurz im Arbeitsspeicher: um Land und Geräteklasse zu bestimmen, um automatische Abrufe durch Programme (Bots) auszusortieren und um zu verhindern, dass die Messung durch massenhafte Anfragen verfälscht wird. Für diese Mengenbegrenzung bilden wir aus Deiner IP-Adresse einen Prüfwert (Hash), den wir nur im Arbeitsspeicher halten und nicht speichern. Eine Kennung, mit der wir Dich wiedererkennen könnten, speichern wir ohne Deine Einwilligung nicht.

+

Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO. Unser berechtigtes Interesse ist, die Nutzung unserer Website in Zahlen zu kennen, das Banner zu betreiben und die Messung vor Missbrauch zu schützen.

+ +

Wenn Du „Ablehnen“ wählst

+

Dann zählen wir einmal, dass abgelehnt wurde, und das Skript sendet danach nichts mehr, auch keine Seitenaufrufe. Sendet Dein Browser das Signal „Global Privacy Control“ oder „Do Not Track“, zeigen wir das Banner gar nicht an und zählen nichts.

Wenn Du „Annehmen“ wählst

Dann messen wir zusätzlich:

    -
  • eine Besucher-Kennung, die täglich wechselt (aus IP-Adresse und Browser-Kennzeichen errechnet, nicht zurückrechenbar und nicht über mehrere Tage verknüpfbar; IP-Adresse und Browser-Kennzeichen selbst werden nicht gespeichert),
  • -
  • wie lange Du auf einer Seite bleibst und wie weit Du scrollst,
  • -
  • wo auf der Seite geklickt wird (Klickposition und die Art des angeklickten Elements, für eine „Heatmap“; keine Eingaben in Formulare) und
  • -
  • ob Du auf Telefonnummer, E-Mail-Adresse, WhatsApp-Link oder einen Link zu einer anderen Website klickst.
  • +
  • von welcher Website Du gekommen bist (nur der Domainname),
  • +
  • die Größenklasse Deines Browserfensters,
  • +
  • eine Besucher-Kennung, die täglich wechselt. Wir berechnen sie aus IP-Adresse und Browser-Kennzeichen mit einem Schlüssel, der jeden Tag neu erzeugt und nicht gespeichert wird. Am selben Tag könnten wir die Kennung damit nachrechnen. Nach dem Wechsel des Schlüssels lässt sie sich nicht mehr aus Deiner IP-Adresse berechnen und nicht mit Kennungen anderer Tage verknüpfen,
  • +
  • wie lange Du auf einer Seite bleibst (ab dem Laden der Seite) und wie weit Du scrollst,
  • +
  • wo auf der Seite geklickt wird: die Klickposition und den Aufbau des angeklickten Elements, ohne Texte und ohne Eingaben in Formulare (für eine „Heatmap“),
  • +
  • ob Du auf eine Telefonnummer, eine E-Mail-Adresse, einen WhatsApp-Link oder einen Link zu einer anderen Website klickst (dann mit deren Domainname, nicht mit der Nummer oder Adresse selbst), und
  • +
  • einen Zähler dafür, dass Du „Annehmen“ gewählt hast.
-

Rechtsgrundlage ist Deine Einwilligung nach Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TDDDG. Außerdem speichern wir Deine Auswahl in Deinem Browser (lokaler Speicher, Eintrag „wk-consent“), damit wir Dich nicht bei jedem Besuch erneut fragen müssen. Das ist ohne Einwilligung zulässig (§ 25 Abs. 2 Nr. 2 TDDDG). Die Auswahl gilt sechs Monate, danach fragen wir erneut.

+

Rechtsgrundlage ist Deine Einwilligung nach § 25 Abs. 1 TDDDG und Art. 6 Abs. 1 lit. a DSGVO.

+ +

Was in Deinem Browser gespeichert wird

+

Wir speichern Deine Auswahl („Annehmen“ oder „Ablehnen“) mit Datum und der Fassung des Banner-Textes im lokalen Speicher Deines Browsers (Eintrag „wk-consent“), damit wir Dich nicht bei jedem Seitenaufruf erneut fragen. Das ist ohne Einwilligung zulässig (§ 25 Abs. 2 Nr. 2 TDDDG). Die Auswahl gilt 183 Tage, danach fragen wir erneut. Du kannst den Eintrag jederzeit selbst löschen, indem Du die Website-Daten in Deinem Browser löschst.

Speicherdauer

-

Einzelne Ereignisse und Klickpositionen löschen wir nach 30 Tagen. Danach bleiben nur zusammengefasste Tageswerte ohne Personenbezug, die wir bis zum Ende der Messung und weitere 60 Tage aufbewahren. Danach werden auch sie gelöscht.

+

Einzelne Seitenaufrufe, Ereignisse und Klickpositionen löschen wir nach 30 Tagen. Danach bleiben nur zusammengefasste Tageswerte, also Summen je Tag, etwa Aufrufe je Seite oder je Land, ohne Besucher-Kennung. Wir löschen sie nach 25 Monaten, spätestens rund 60 Tage nach dem Ende der Messung. Unser Dienstleister sichert den Server täglich; gelöschte Daten bleiben dort bis zu sieben Tage erhalten.

Empfänger

-

Die Messung wird für uns von der WEBklar GbR, Am Schwimmbad 10, 67722 Winnweiler, als Auftragsverarbeiter betrieben. WEBklar darf die Daten nur auf unsere Weisung und für unsere Zwecke verwenden. Die Server stehen bei der Hetzner Online GmbH (Rechenzentrum in Deutschland), die als weiterer Auftragsverarbeiter eingesetzt wird. Eine Übermittlung in Länder außerhalb der EU bzw. des EWR findet nicht statt.

+

Die Messung betreibt für uns die WEBklar GbR, Am Schwimmbad 10, 67722 Winnweiler, als Auftragsverarbeiter. WEBklar darf die Daten nur auf unsere Weisung und für unsere Zwecke verwenden. Der Server steht bei der Hetzner Online GmbH in Deutschland, die als weiterer Auftragsverarbeiter eingesetzt wird. Eine Übermittlung in Länder außerhalb der EU bzw. des EWR findet nicht statt.

-

Widerruf

-

Du kannst Deine Entscheidung jederzeit ändern oder Deine Einwilligung widerrufen: Klicke dazu auf den Link „Cookie-Einstellungen“ (in der Regel unten rechts auf jeder Seite oder über das dafür vorgesehene Element der Website) und wähle „Ablehnen“. Der Widerruf gilt ab dann für die Zukunft. Die Rechtmäßigkeit der bis dahin erfolgten Verarbeitung bleibt unberührt.

+

Freiwilligkeit

+

Du bist weder gesetzlich noch vertraglich verpflichtet, uns diese Daten bereitzustellen. Wenn Du ablehnst oder Deine Einwilligung widerrufst, kannst Du die Website trotzdem uneingeschränkt nutzen. Eine automatisierte Entscheidungsfindung findet nicht statt.

+ +

Einwilligung widerrufen

+

Du kannst Deine Einwilligung jederzeit mit Wirkung für die Zukunft widerrufen: Klicke auf „Datenschutz-Einstellungen“ (in der Regel unten rechts auf jeder Seite) und wähle „Ablehnen“. Die Rechtmäßigkeit der Verarbeitung bis zum Widerruf bleibt unberührt.

+ +
+

Widerspruchsrecht

+

Du kannst der Zählung nach Art. 6 Abs. 1 lit. f DSGVO jederzeit aus Gründen widersprechen, die sich aus Deiner besonderen Situation ergeben (Art. 21 DSGVO). Am einfachsten wählst Du im Banner oder über „Datenschutz-Einstellungen“ „Ablehnen“ oder aktivierst in Deinem Browser das Signal „Global Privacy Control“. Dann sendet das Skript keine Daten mehr. Du kannst Deinen Widerspruch auch an die oben genannte E-Mail-Adresse richten.

+

Deine Rechte

-

Du hast das Recht auf Auskunft, Berichtigung, Löschung, Einschränkung der Verarbeitung und Datenübertragbarkeit (Art. 15 bis 18 und 20 DSGVO). Du kannst der Verarbeitung nach Art. 6 Abs. 1 lit. f DSGVO aus Gründen, die sich aus Deiner besonderen Situation ergeben, jederzeit widersprechen (Art. 21 DSGVO). Da wir Dich anhand der gespeicherten Daten nicht wiedererkennen können, können wir Auskunft, Berichtigung oder Löschung zu einzelnen Besuchen in der Regel nicht vornehmen, es sei denn, Du stellst uns zusätzliche Angaben bereit, mit denen wir Dich identifizieren können (Art. 11, Art. 12 Abs. 2 DSGVO). Du hast außerdem das Recht, Dich bei einer Datenschutz-Aufsichtsbehörde zu beschweren. Wende Dich für Deine Anliegen an die oben genannte Adresse.

+

Du hast das Recht auf Auskunft, Berichtigung, Löschung, Einschränkung der Verarbeitung und Datenübertragbarkeit (Art. 15 bis 18 und 20 DSGVO). In den Messdaten speichern wir keine Namen, keine IP-Adressen und keine Kennung, die länger als einen Tag gilt, und wir runden Zeitpunkte auf die volle Stunde. Deshalb können wir gespeicherte Messdaten in der Regel nicht Dir zuordnen (Art. 11 DSGVO). Anders kann es sein, solange die Zugriffsprotokolle des Webservers noch vorhanden sind (14 Tage). Wenn Du uns Datum, ungefähre Uhrzeit, besuchte Seiten und, wenn Du möchtest, Deine IP-Adresse nennst, prüfen wir, ob eine Zuordnung möglich ist. Ist das nicht möglich, teilen wir Dir das mit.

+

Mit Deinen Anliegen kannst Du Dich jederzeit an die oben genannte Adresse wenden. Außerdem hast Du das Recht, Dich bei einer Datenschutz-Aufsichtsbehörde zu beschweren (Art. 77 DSGVO).

diff --git a/runner/test/analytics-inject.test.js b/runner/test/analytics-inject.test.js index 7865d19..1430dde 100644 --- a/runner/test/analytics-inject.test.js +++ b/runner/test/analytics-inject.test.js @@ -81,7 +81,9 @@ test('Datenschutzseite: Platzhalter maskiert, Skript auch dort, Pflichtabschnitt assert.ok(p.includes('A "B" <C>') && p.includes('x'y@z.de')); assert.ok(!p.includes('{{')); assert.equal(count(p, 'data-wk-analytics'), 1); - for (const s of ['Verantwortlicher', 'Zweck', 'Einwilligung', 'Rechtsgrundlage', 'Auftragsverarbeiter', 'Hetzner', 'Speicherdauer', 'Cookie-Einstellungen', 'Rechte']) assert.ok(p.includes(s), s); + for (const s of ['Verantwortlicher', 'Zweck', 'Einwilligung', 'Rechtsgrundlage', 'Auftragsverarbeiter', 'Hetzner', 'Speicherdauer', 'Datenschutz-Einstellungen', 'Rechte']) assert.ok(p.includes(s), s); + assert.ok(p.includes('Stand: 02.10.2026')); + assert.ok(!p.includes('Cookie-Einstellungen')); }); test('ohne analytics: nichts geändert, keine Seite', async () => { diff --git a/scripts/build-legal-pdfs.sh b/scripts/build-legal-pdfs.sh index 16ee4ca..950a8b6 100755 --- a/scripts/build-legal-pdfs.sh +++ b/scripts/build-legal-pdfs.sh @@ -1,7 +1,8 @@ #!/usr/bin/env bash # Erzeugt die Druck-/PDF-Fassungen der Vertragsunterlagen aus den HTML-Quellen. # Laeuft auf dem Host (braucht Chrome/Chromium), die PDFs werden eingecheckt. -# Usage: CHROME=/pfad/zu/chrome scripts/build-legal-pdfs.sh +# Usage: CHROME=/pfad/zu/chrome scripts/build-legal-pdfs.sh [all|analyse] +# analyse = nur AVV und Leistungsbeschreibung der Website-Analyse (Fassung ANALYSE_VERSION), andere PDFs bleiben unveraendert set -euo pipefail cd "$(dirname "$0")/.." CHROME="${CHROME:-$(ls -d ~/.cache/ms-playwright/chromium-*/chrome-linux64/chrome 2>/dev/null | tail -1)}" @@ -13,7 +14,21 @@ pdf() { # $1 = Quelle (HTML), $2 = Ziel (PDF) echo "-> $2" } -pdf docs/leitfaden-empfehlungsgeber.html docs/WEBklar-Leitfaden-Empfehlungsgeber.pdf -# Fassung 3 (public/WEBklar-Wartungs-Abo-Vertragsunterlagen.pdf, Archiv unter public/vertragsunterlagen/v3/) wird nicht neu erzeugt -pdf public/abo-bedingungen.html public/WEBklar-Abo-Vertragsunterlagen.pdf -pdf public/datenschutz.html docs/WEBklar-Datenschutzerklaerung.pdf +MODE="${1:-all}" +ANALYSE_VERSION="${ANALYSE_VERSION:-2026-10-02}" + +case "$MODE" in +analyse) + pdf "public/rechtliches/avv-website-analyse-$ANALYSE_VERSION.html" "public/rechtliches/avv-website-analyse-$ANALYSE_VERSION.pdf" + pdf "public/rechtliches/leistungsbeschreibung-website-analyse-$ANALYSE_VERSION.html" "public/rechtliches/leistungsbeschreibung-website-analyse-$ANALYSE_VERSION.pdf" + ;; +all) + pdf docs/leitfaden-empfehlungsgeber.html docs/WEBklar-Leitfaden-Empfehlungsgeber.pdf + # Fassung 3 (public/WEBklar-Wartungs-Abo-Vertragsunterlagen.pdf, Archiv unter public/vertragsunterlagen/v3/) wird nicht neu erzeugt + pdf public/abo-bedingungen.html public/WEBklar-Abo-Vertragsunterlagen.pdf + pdf public/datenschutz.html docs/WEBklar-Datenschutzerklaerung.pdf + ;; +*) + echo "Usage: $0 [all|analyse]"; exit 1 + ;; +esac diff --git a/server/index.js b/server/index.js index 59dae9e..79a5731 100644 --- a/server/index.js +++ b/server/index.js @@ -36,6 +36,7 @@ import adminPreviewOpenRoutes from './routes/admin/previewOpen.js' import newsRoutes from './routes/news.js' import publicNewsRoutes from './routes/publicNews.js' import adminAnalyseRoutes from './routes/admin/analyse.js' +import { analyseLegalRouter } from './services/analyseLegal.js' import adminSwitchLinkRoutes from './routes/admin/switchLink.js' import adminFinanzenRoutes from './routes/admin/finanzen.js' @@ -110,6 +111,8 @@ app.use('/embed/', (_req, res, next) => { res.set('Access-Control-Allow-Origin', '*') next() }) +// Adressen ohne Fassung: aktuelle geprüfte Fassung der Analyse-Rechtstexte (vor express.static) +app.use('/rechtliches', analyseLegalRouter()) app.use(express.static(publicDir)) app.get('/dashboard.html', (req, res, next) => { diff --git a/server/services/analyseLegal.js b/server/services/analyseLegal.js new file mode 100644 index 0000000..ee23143 --- /dev/null +++ b/server/services/analyseLegal.js @@ -0,0 +1,54 @@ +// Veroeffentlichte Rechtstexte der Website-Analyse (je Fassung feste Dateien unter public/rechtliches/) +import { readFile } from 'node:fs/promises' +import { fileURLToPath } from 'node:url' +import { join } from 'node:path' +import { Router } from 'express' +import { config } from '../config.js' + +const publicDir = fileURLToPath(new URL('../../public/', import.meta.url)) +const VERSION_RE = /^\d{4}-\d{2}-\d{2}$/ + +function checkVersion(version) { + if (!VERSION_RE.test(String(version))) throw new Error('Analyse: ungültige Fassung') + return String(version) +} + +export function legalPaths(version) { + const v = checkVersion(version) + return { + avv: `/rechtliches/avv-website-analyse-${v}.html`, + lb: `/rechtliches/leistungsbeschreibung-website-analyse-${v}.html`, + } +} + +export function legalPdfFiles(version) { + const v = checkVersion(version) + return { + avv: { filename: `AVV-Website-Analyse-${v}.pdf`, path: join(publicDir, 'rechtliches', `avv-website-analyse-${v}.pdf`) }, + lb: { filename: `Leistungsbeschreibung-Website-Analyse-${v}.pdf`, path: join(publicDir, 'rechtliches', `leistungsbeschreibung-website-analyse-${v}.pdf`) }, + } +} + +/** Beide PDFs als Mail-Anhaenge; wirft, wenn eine Datei fehlt oder nicht lesbar ist. */ +export async function legalPdfAttachments(version) { + const files = legalPdfFiles(version) + return Promise.all( + [files.avv, files.lb].map(async (f) => ({ + filename: f.filename, + content: await readFile(f.path), + contentType: 'application/pdf', + })) + ) +} + +/** Adressen ohne Fassung liefern immer die aktuelle geprüfte Fassung (config.analyse.avvVersion). */ +export function analyseLegalRouter() { + const router = Router() + const send = (key) => (_req, res, next) => { + const file = join(publicDir, legalPaths(config.analyse.avvVersion)[key]) + res.sendFile(file, (err) => err && next(err.code === 'ENOENT' ? undefined : err)) + } + router.get('/avv-website-analyse.html', send('avv')) + router.get('/leistungsbeschreibung-website-analyse.html', send('lb')) + return router +} diff --git a/test/analyseLegal.test.js b/test/analyseLegal.test.js new file mode 100644 index 0000000..02a8b8c --- /dev/null +++ b/test/analyseLegal.test.js @@ -0,0 +1,78 @@ +import { test, after } from 'node:test' +import assert from 'node:assert/strict' +import { readFileSync } from 'node:fs' +import { fileURLToPath } from 'node:url' +import express, { Router } from 'express' +import { useTestEnv } from './support/testEnv.js' + +useTestEnv({ appwriteUrl: 'http://127.0.0.1:1', stripeUrl: 'http://127.0.0.1:1' }) +const { config } = await import('../server/config.js') +const { startTestApp } = await import('./support/testApp.js') +const { analyseLegalRouter, legalPaths, legalPdfFiles, legalPdfAttachments } = await import('../server/services/analyseLegal.js') +const core = await import('../analytics/client/core.js') + +const root = (rel) => new URL(`../${rel}`, import.meta.url) +const V = '2026-10-02' +// wie in server/index.js: erst die Router für Adressen ohne Fassung, dann express.static +const rechtliches = Router() +rechtliches.use(analyseLegalRouter()) +rechtliches.use(express.static(fileURLToPath(new URL('../public/rechtliches/', import.meta.url)))) +const app = await startTestApp({ '/rechtliches': rechtliches }) +after(() => app.close()) + +const fetchBytes = async (path) => { + const r = await fetch(app.url + path) + return { status: r.status, body: Buffer.from(await r.arrayBuffer()) } +} + +test('legalPaths und legalPdfFiles nennen feste Adressen und Dateinamen', () => { + assert.deepEqual(legalPaths(V), { + avv: `/rechtliches/avv-website-analyse-${V}.html`, + lb: `/rechtliches/leistungsbeschreibung-website-analyse-${V}.html`, + }) + const f = legalPdfFiles(V) + assert.equal(f.avv.filename, `AVV-Website-Analyse-${V}.pdf`) + assert.equal(f.lb.filename, `Leistungsbeschreibung-Website-Analyse-${V}.pdf`) + assert.throws(() => legalPaths('../x')) +}) + +test('Adressen ohne Fassung liefern die Bytes der Fassung aus config.analyse.avvVersion', async () => { + assert.equal(config.analyse.avvVersion, V) + const a = await fetchBytes('/rechtliches/avv-website-analyse.html') + assert.equal(a.status, 200) + assert.deepEqual(a.body, readFileSync(root(`public/rechtliches/avv-website-analyse-${V}.html`))) + const l = await fetchBytes('/rechtliches/leistungsbeschreibung-website-analyse.html') + assert.equal(l.status, 200) + assert.deepEqual(l.body, readFileSync(root(`public/rechtliches/leistungsbeschreibung-website-analyse-${V}.html`))) +}) + +test('versionierte Adresse 200, unbekannte Fassung 404', async () => { + assert.equal((await fetchBytes(`/rechtliches/avv-website-analyse-${V}.html`)).status, 200) + assert.equal((await fetchBytes(`/rechtliches/leistungsbeschreibung-website-analyse-${V}.html`)).status, 200) + assert.equal((await fetchBytes('/rechtliches/avv-website-analyse-2026-01-01.html')).status, 404) +}) + +test('PDFs: beginnen mit %PDF, > 20 KB, Anhänge mit richtigen Dateinamen', async () => { + const att = await legalPdfAttachments(V) + assert.equal(att.length, 2) + assert.deepEqual(att.map((a) => a.filename), [`AVV-Website-Analyse-${V}.pdf`, `Leistungsbeschreibung-Website-Analyse-${V}.pdf`]) + for (const a of att) { + assert.equal(a.contentType, 'application/pdf') + assert.equal(a.content.subarray(0, 4).toString(), '%PDF') + assert.ok(a.content.length > 20 * 1024) + } + await assert.rejects(legalPdfAttachments('2026-01-01')) +}) + +test('Banner-Archiv: Text und aria-label wortgleich zu core.js, README nennt BANNER_VERSION', () => { + const md = readFileSync(root(`docs/rechtliches/archiv/banner-${V}.md`), 'utf8') + assert.ok(md.includes(core.BANNER_TEXT)) + assert.ok(md.includes(core.BANNER_ARIA)) + assert.equal(core.BANNER_VERSION, V) + assert.ok(md.includes('BANNER_VERSION')) + assert.ok(readFileSync(root('docs/rechtliches/archiv/README.md'), 'utf8').includes('BANNER_VERSION')) + assert.deepEqual( + readFileSync(root(`docs/rechtliches/archiv/datenschutz-analyse-${V}.html`)), + readFileSync(root('runner/src/templates/datenschutz-analyse.html')) + ) +}) diff --git a/test/avvPage.test.js b/test/avvPage.test.js index c6b2757..2290dfc 100644 --- a/test/avvPage.test.js +++ b/test/avvPage.test.js @@ -4,22 +4,31 @@ import { existsSync, readFileSync } from 'node:fs' const root = (rel) => new URL(`../${rel}`, import.meta.url) -test('AVV Website-Analyse: öffentliche Seite existiert, trägt Fassung und Entwurfshinweis, keine internen Kommentare', () => { - const file = root('public/rechtliches/avv-website-analyse.html') - assert.ok(existsSync(file)) - const html = readFileSync(file, 'utf8') - // Die Entwurfsseite nennt noch Fassung 2026-10-01; Task 6 ersetzt sie durch die geprüfte Fassung 2026-10-02 - assert.ok(html.includes('Fassung 2026-10-01')) - assert.match(html, /Entwurf – vor Verwendung anwaltlich prüfen lassen/) - assert.doesNotMatch(html, /