web: Datenschutzerklärung — Abschnitt 5a „Eigene Nutzungsstatistiken ohne Personenbezug", Frist 395 Tage (Roadmap 0.7)

Aufrufe/Teilen je Meldung, Abrufe durch Such-, KI- und Feed-Dienste,
Konversionsschritte: Umfang ohne IP, Zweck, Art. 6 Abs. 1 lit. f, Löschung
nach 395 Tagen in Abschnitt 13. Text vom Betreiber abgenommen (21.09.2026);
gilt für Hub und beide Portale. 0.7 in Roadmap und Protokoll abgehakt.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-09-21 10:40:10 +00:00
parent fc700677ff
commit 2b042d6aa7
4 changed files with 54 additions and 7 deletions

View file

@ -42,7 +42,7 @@ Ohne definierte Konversionspunkte ist keiner der folgenden Blöcke bewertbar. Di
| 0.4 | Herkunftsparameter in allen Mail-Links, gespeichert **auf dem Magic-Link-Token**, nicht in der Session | S | 0.3 |
| 0.5 | Ereignisse an den bestehenden Zustandsänderungen mitschreiben | M | 0.3, 0.4 |
| 0.6 | Auswertung als Artisan-Befehl: Trichter je Quelle und Zeitraum | S | 0.5 |
| 0.7 | Aufbewahrungsfrist für Ereignisdaten festlegen und in der Datenschutzerklärung führen | S | 0.3 |
| ~~0.7~~ | Aufbewahrungsfrist für Ereignisdaten festlegen und in der Datenschutzerklärung führen — **395 Tage seit 01.09.2026; Datenschutz-Abschnitt 5a am 21.09.2026 eingebaut** (gilt für Aufrufe, Crawler- und Feed-Abrufe, Konversionsschritte) | S | 0.3 |
### Konversionsleiter

View file

@ -2143,10 +2143,11 @@ Befunde und was daraus wurde:
**Bleibt offen, bewusst nicht aus dem Code heraus erledigt:**
- 0.7: Absatz zur Ereignistabelle (Zweck, Umfang, 395 Tage, Rechtsgrundlage)
in der Datenschutzerklärung — Rechtstext, Betreiber. Gilt seit dem
21.09.2026 ebenso für das Crawler- und das Feed-Abruf-Protokoll (beide
ohne IP, gleiche Aufbewahrung).
- ~~0.7: Absatz zur Ereignistabelle in der Datenschutzerklärung~~ —
**erledigt 21.09.2026:** Abschnitt „5a. Eigene Nutzungsstatistiken ohne
Personenbezug" (Aufrufe/Teilen, Abrufe durch Such-, KI- und Feed-Dienste,
Konversionsschritte; keine IP, lit. f) plus Frist 395 Tage in Abschnitt 13,
auf Hub und beiden Portalen (eine Datei). Text vom Betreiber abgenommen.
- 0.1: Kohortenwerte „28–55 Tage" vom Live-System (Fenster 01.06.–01.09.)
einmal erheben und ablegen: `php artisan press-releases:view-distribution --from=2026-06-01 --to=2026-09-01 --json > dev/2026-09-01/basiswert-0.1.json`.
- Abbruchbedingungen der Blöcke 1–3 tragen weiter Platzhalter für Zeitraum
@ -2280,6 +2281,6 @@ Cache-Treffer, Report je Reader/Feed, Panel, Bereinigung),
**Deploy:** `migrate` (neue Tabelle, keine Änderung an `press_releases`),
`FEED_FETCHES_RECORDED_SINCE` setzen, `view:cache`/`route:cache`,
`config:cache`. **Offen (0.7, Betreiber):** Datenschutzerklärung — derselbe
Absatz wie für Ereignis- und Crawler-Log (Zweck, Umfang ohne IP, 395 Tage).
`config:cache`. 0.7 (Datenschutzerklärung) ist seit dem 21.09.2026 erledigt,
siehe oben.

View file

@ -143,6 +143,46 @@
Analysedaten an externe Tracking- oder Werbedienstleister findet nicht statt.
</p>
{{-- Roadmap 0.7 (abgestimmt 21.09.2026): Ereignisprotokolle ohne
Personenbezug — press_release_events, press_release_crawler_hits,
feed_fetches, conversion_events. Aufbewahrung 395 Tage (Abschnitt 13). --}}
<h2>5a. Eigene Nutzungsstatistiken ohne Personenbezug</h2>
<p>
Neben Umami führen wir auf unseren eigenen Servern drei einfache Ereignisprotokolle, mit
denen wir die Reichweite veröffentlichter Pressemitteilungen belegen und den Weg von einer
Benachrichtigung zum Kundenkonto nachvollziehen. Diese Protokolle enthalten keine
IP-Adressen, keine Cookies und keine Kennungen, die eine Person oder ein Gerät
wiedererkennbar machen.
</p>
<ul>
<li>
<strong>Aufrufe und Teilen-Klicks je Pressemitteilung.</strong> Gespeichert werden die
Meldung, der Zeitpunkt und bei einem Teilen-Klick der gewählte Kanal. Daraus entstehen
die Aufrufzahlen und Tagesverläufe, die wir dem einreichenden Unternehmen zeigen.
</li>
<li>
<strong>Abrufe durch Such-, KI- und Feed-Dienste.</strong> Ruft ein bekannter Dienst eine
Meldung oder einen RSS-Feed ab, speichern wir den Dienst, die gekürzte Programmkennung
(User-Agent), den Zeitpunkt und die betroffene Meldung beziehungsweise den Feed. Nennt ein
Feed-Dienst in seiner Kennung eine Abonnentenzahl, übernehmen wir diese Zahl. Wer einen
Feed abonniert hat, erfahren wir nicht.
</li>
<li>
<strong>Schritte vom Hinweis zum Konto.</strong> Klickt ein Empfänger einen Link in einer
unserer Benachrichtigungen, nutzt einen Anmeldelink, bearbeitet einen Newsroom, legt ein
Konto an oder bucht erstmals, halten wir den Schritt, den Anlass (zum Beispiel
„Veröffentlichungsmail") und das betroffene Unternehmen fest. Die Person und ihre
E-Mail-Adresse werden dabei nicht gespeichert; die Auswertung zählt Unternehmen, nicht
Menschen.
</li>
</ul>
<p>
Die Verarbeitung erfolgt zur Reichweitenmessung gegenüber unseren Kunden, zur Bewertung
unserer Benachrichtigungen und zur Verbesserung unseres Angebots. Rechtsgrundlage ist
Art. 6 Abs. 1 lit. f DSGVO. Die Protokolle werden nicht an Dritte weitergegeben und nicht
mit anderen Daten zu Nutzerprofilen verbunden.
</p>
<h2>6. Kontaktaufnahme</h2>
<p>
Wenn Sie uns per E-Mail oder über ein Formular kontaktieren, verarbeiten wir die von Ihnen
@ -495,6 +535,7 @@
<ul>
<li>Server-Logs werden grundsätzlich nach 14 Tagen gelöscht, sofern kein sicherheitsrelevanter Vorfall eine längere Aufbewahrung erforderlich macht.</li>
<li>Magic-Link-Token verfallen nach einmaliger Nutzung oder nach Ablauf von {{ $magicLinkTtl }}.</li>
<li>Die Ereignisprotokolle zu Aufrufen, Abrufen durch Dienste und Konversionsschritten (Abschnitt 5a) werden nach 395 Tagen gelöscht.</li>
<li>Meldedaten werden grundsätzlich für drei Jahre nach Abschluss des Vorgangs gespeichert.</li>
<li>Vertrags-, Buchungs- und Rechnungsdaten unterliegen handels- und steuerrechtlichen Aufbewahrungspflichten und werden nach Ablauf dieser Fristen gelöscht.</li>
<li>Veröffentlichte Pressemitteilungen werden im Rahmen der Archivfunktion grundsätzlich dauerhaft gespeichert, soweit keine gesetzlichen Ansprüche auf Entfernung, Sperrung oder Änderung bestehen.</li>

View file

@ -150,6 +150,10 @@ test('the privacy policy renders the real v03 content with host-specific blocks'
->assertSeeText('Hetzner Online GmbH')
->assertSeeText('Medienprivileg')
->assertSeeText('Änderungslinks für Pressekontakte')
// Roadmap 0.7: Ereignisprotokolle ohne Personenbezug, 395 Tage.
->assertSeeText('Eigene Nutzungsstatistiken ohne Personenbezug')
->assertSeeText('Feed abonniert hat, erfahren wir nicht.')
->assertSeeText('werden nach 395 Tagen gelöscht')
->assertDontSeeText('Zahlungsabwicklung mit Stripe')
// Alter Platzhalter (Google Analytics gibt es nicht) ist weg.
->assertDontSeeText('Google Analytics');
@ -158,6 +162,7 @@ test('the privacy policy renders the real v03 content with host-specific blocks'
$this->get('https://pressekonto.test/de/datenschutz')
->assertSuccessful()
->assertSeeText('Kundenkonto und Registrierung auf dem Hub')
->assertSeeText('Eigene Nutzungsstatistiken ohne Personenbezug')
->assertSeeText('Zahlungsabwicklung mit Stripe')
->assertSeeText('gewerblichen oder selbständigen beruflichen Tätigkeit')
->assertDontSeeText('Medienprivileg');