- R-02/K-03: Aufrufaggregation und Merge ändern updated_at nicht mehr; neue Spalte press_releases.content_changed_at (INSTANT), contentModifiedAt() für Sitemap-lastmod, dateModified und article:modified_time - R-03: Sitemap und Legacy-view_url mit /en/ für englische Meldungen - R-04/O01: X-Pk-Ref je Empfänger per HMAC signiert; auf eine Sperre zählt — hart wie weich — nur ein gültig signierter Rückläufer, unsignierte standardmäßig nur zur Sichtung (BOUNCE_UNSIGNED_KIND=policy) - R-05/R-06: Unmerge setzt nur unveränderte Füllwerte zurück (company_merge_moves.merged_value), Canonical-Neubewertung nach Merge und Unmerge, assignAll setzt veraltete Verweise zurück - R-07 bis R-11: Crawler zählen nicht als Aufruf, Mail-Klick gedrosselt und verzögert geschrieben, Claim-Zähler erst nach Versand, email_bounces nach 395 Tagen gelöscht, Canonical-Portal über Kategorie-ID, llms-Cache geleert, Feed-Teaser ohne Doppel-Escaping, Merge-Ketten aufgelöst - N17/N18: kein falsches „gelistet seit", Rollen im Indexbericht wie Sitemap - OPT-1/OPT-2: topFeeds in SQL, purge-events löscht nach Grenz-ID Enthält aus PressRelease.php auch die Card-Bild-Helfer (B-01) und wasEverPublished()/neverPublished() (A-05), weil die Datei ungeteilt committet ist. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
48 lines
2.1 KiB
PHP
48 lines
2.1 KiB
PHP
<?php
|
|
|
|
return [
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Ereignisdaten der Konversionsleiter
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| `conversion_events` hält ausschließlich Ereignistyp, Herkunft sowie
|
|
| Firmen- und Meldungs-ID — keine Personen, keine Klartextadressen, keine
|
|
| IP. Damit bleibt die Tabelle interne Statistik.
|
|
|
|
|
| 395 Tage (13 Monate), derselbe Horizont wie beim Aufruf-Ereignis-Log
|
|
| (config/press_releases.php). Beide Auswertungen sollen über denselben
|
|
| Zeitraum sprechen können; ein Vorjahresmonats-Vergleich bleibt möglich.
|
|
|
|
|
| Der Wert gehört in die Datenschutzerklärung — die Aufbewahrungsfrist wird
|
|
| zusammen mit der Tabelle festgelegt und nicht nachgetragen (Roadmap 0.7).
|
|
|
|
|
*/
|
|
|
|
'events' => [
|
|
'retention_days' => (int) env('CONVERSION_EVENTS_RETENTION_DAYS', 395),
|
|
],
|
|
|
|
/*
|
|
| Stufe 1 (Mail-Link geklickt) — Umsetzungsaudit 29.09.2026, R-08.
|
|
| Derselbe Klick (IP + Meldung) zählt höchstens einmal je
|
|
| `throttle_minutes`; die IP wird dafür nur gehasht im Cache gehalten.
|
|
| Link-Scanner der Mailserver (Sicherheits-Gateways, Vorschau-Dienste)
|
|
| holen Links vorab — erkannt an HEAD oder an diesen Kennungen, gezählt
|
|
| wird dann nichts. Bekannte Such- und KI-Crawler (config/crawlers.php)
|
|
| gelten ebenfalls als kein Klick.
|
|
*/
|
|
|
|
'mail_clicks' => [
|
|
'throttle_minutes' => (int) env('CONVERSION_MAIL_CLICK_THROTTLE_MINUTES', 30),
|
|
'scanner_agents' => [
|
|
'barracuda', 'mimecast', 'proofpoint', 'bingpreview', 'symantec', 'messagelabs',
|
|
'trendmicro', 'trend micro', 'forcepoint', 'sophos', 'zscaler', 'ironport', 'fortiguard',
|
|
'safelinks', 'microsoft office', 'ms-office', 'google-safety', 'headlesschrome',
|
|
'python-requests', 'python-urllib', 'go-http-client', 'curl/', 'wget/', 'okhttp', 'java/',
|
|
'libwww-perl', 'scrapy', 'phantomjs', 'slackbot', 'facebookexternalhit', 'whatsapp',
|
|
],
|
|
],
|
|
|
|
];
|