Live-Domain-Report

berlin-live.de Datenschutz-Check

Scan-ID: 177c03f4-80ea-42d0-be27-7a182b3a31e4 · 2026-06-09 23:56:20.666357+02

Geprüfte Domain-Wurzel: https://berlin-live.de/

Kurz-URL: saferpage.de/berlin-live.de

Kleine Seitenvorschau von berlin-live.de
Screenshot-Vorschau 160x150 · vollständig sichtbar · Headless Chromium · preview_available · page_preview
0 Kritische Hinweise

In 20 Sekunden lesen

Was ist bei berlin-live.de wirklich wichtig?

Nutzen Sie diese Kurzfassung zuerst als Evidence-Checkliste: belegte Signale, Claim-Grenzen und Linkziele stehen im Vordergrund; Betreiberkontext ohne Scan-Beleg wird nur verlinkt.

VerlässlichkeitBelastbares Signal mit manuellen Prüfpunkten
Der Report zeigt relevante Datenschutz-Signale; der Abgleich mit den Website-Flows bleibt Betreiberkontext.
Belegbar4 technische Evidence-Punkte aus dem gespeicherten passiven Lauf.Guide-LinkBetreiber-Checkliste öffnenNicht behaupten3 Claim-Grenzen: keine Rechtsfreigabe, kein Zertifikat, kein abschließendes Seriositätsurteil.Fix-PfadFixpfad öffnenNachweiseMethodik · Evidence-Hub

Betreiberentscheidung

Welche Fakten und Linkziele gibt es für berlin-live.de?

Der Abschnitt trennt technische Evidence von Betreiber-Background. Er enthält kein Rechtsurteil, keine Freigabe, kein pauschales Misstrauenslabel und keine eingebetteten Guide-Inhalte.

normaler Passivlauf
0Score als Priorisierung, nicht als Rechtsfreigabe0Cookie(s) vor Einwilligung gesehen1datenschutzrelevante Drittanbieter-Domains9Formular(e) auf 4 Seite(n)jaImpressum-Link automatisch belegtjaDatenschutz-Hinweis automatisch belegt
Scan-Einordnung

Der Score zeigt erhöhten Prüfbedarf aus technischen Signalen; er ist ein Priorisierungssignal, kein Verbot.

Einordnung lesen
Datenschutz-Fokus

0 Cookie(s) vor Einwilligung, 1 datenschutzrelevante Drittanbieter-Domain(s), 0 Tracking-Script(s) im gespeicherten Lauf.

Datenschutz-Hub öffnen
Google Consent Mode

Google-Tag-Evidence wurde gesehen; die Detailbewertung ist als Link ausgelagert.

Grenzen prüfen

Betreiber-Checkliste öffnen

Nicht behaupten: SaferPage bestätigt keine DSGVO-Konformität, keine Malwarefreiheit, keine rechtssichere Cookie-Einwilligung und keine abschließende Betreibertransparenz. Relevante Änderungen immer erneut scannen und fachlich freigeben.

Aussage-Ampel

Was dieser Report belegt, was zu prüfen ist und was nicht behauptet werden darf

Diese Einordnung schützt vor überzogenen Scanner-Schlüssen: technische Beobachtung, manuelle Betreiberprüfung und klare Claim-Grenzen bleiben getrennt.

Aussage-VerlässlichkeitBelastbares Signal mit manuellen Prüfpunkten · Signal + BetreiberprüfungFür die EinordnungDer Report zeigt relevante Datenschutz-Signale; der Abgleich mit den Website-Flows bleibt Betreiberkontext.BetreiberkontextNicht als Scan-Feststellung im Testresult ausgespielt; Detailprüfung ist verlinkt.

Verlässlichkeitsgrenze: Die sichtbare Evidence ist auswertbar, aber Formulare, Cookies, Drittanbieter, Google-Tags und Rechtsgrundlagen brauchen Betreiberkontext.

Automatisch belegtAus gespeicherter SaferPage-Evidence

Score 0/100 als Priorisierung aus passivem HTTP-, HTML-, Header-, Cookie- und Browserkontakt-Sample.

46 Browser-Request(s), 1 datenschutzrelevante Drittanbieter-Domain(s), 0 Tracking-Script(s) im gespeicherten Lauf.

4 direkt geprüfte Test-URL(s) im Crawl-Abschnitt; die Ziel-Links bleiben im Report nachvollziehbar.

Crawl-Evidenz: 9 Formular(e) auf 4 geprüften Seite(n) sichtbar, statt sie als nicht vorhanden zu verstecken.

Status
belegbar
Nicht behauptenClaim-Grenzen

keine DSGVO-Konformität, keine Rechtsberatung und keine Betreiberfreigabe

kein abschließendes Seriositätsurteil über berlin-live.de

keine Malwarefreiheit, kein Penetrationstest und keine vollständige Prüfung hinter Login, Paywall oder Geoblocking

Status
nicht freigegeben

Betreiber-Checkliste öffnen

Datenschutz-Fokus: Der Report zeigt konkrete Datenschutz-, Consent-, Formular- und Transparenzsignale. Er ist kein Freigabesiegel und braucht bei Website-Änderungen einen neuen technischen Re-Scan.

Prüfumfang & Grenzen

Was SaferPage geprüft hat - und was nicht

Prüfumfang und Grenzen des passiven SaferPage-Kurzchecks: getestet, nicht getestet, manuell zu prüfen und erneut zu scannen.

normaler Passivlauf
4geprüfte Bereiche4nicht geprüfte Grenzen4manuelle Review-Auslöser4Re-Scan-AuslöserneinConsent-/Paywall-GrenzejaGoogle-Consent aus Evidenz
GeprüftAutomatische Evidence aus dem passiven Lauf

Passiver HTTP-/Browser-Sample: 46 Browser-Request(s), 1 datenschutzrelevante Drittanbieter-Domain(s).

Cookies und Consent-Startzustand: 0 Cookie(s) vor Einwilligung im gespeicherten Lauf.

Öffentlich erreichbare Test-URLs: 4 direkt geprüfte Test-URL(s) im Crawl-/Coverage-Abschnitt.

Formular-Evidenz aus öffentlichem Crawl: 9 Formular(e) auf 4 Seite(n) erkannt.

Status
belegt

Methodik-Grenzen öffnen

Betreiber-Checkliste öffnen

Monitoring-Guide öffnen

Claim-Grenze: Der Prüfumfang beschreibt den gespeicherten passiven Kurzcheck. Er ersetzt keine Rechtsberatung, keine Betreiberfreigabe und keinen Deep-Scan hinter Login, Paywall oder Interaktion.

Konsolidierungscheck

Sind typische Fehlalarme für Betreiber eingeordnet?

Diese Kontrolle prüft die Report-Darstellung gegen bekannte Schwachstellen: Formular-Widersprüche, Google-Consent-Fehlalarme, doppelte Maßnahmen, Consent-/Paywall-Grenzen und pauschale Besucherwarnungen.

ok
6/6Kontrollen bestanden0doppelte Scan-HinweisejaGoogle-Consent aus Evidenz erforderlich0Google-Fehlalarme in Scan-Hinweisen9Formulare aus Crawl-CoverageneinConsent-/Paywall-Grenze
Scan-Hinweise dedupliziertok · ok
Gleiche Scan-Hinweise werden nicht doppelt in die Top-Liste geschoben.
Grenze: Deduplizierung fasst gleich benannte Scan-Hinweise zusammen, ersetzt aber keine fachliche Priorisierung.
Prüfkatalog öffnen
Google Consent nur bei Google-Evidenzok · Google-Evidenz prüfen
Google-Tags oder Google-Domains wurden gesehen; Consent-Mode-Einordnung anhand der konkreten Requests prüfen.
Grenze: Ein später eingebauter Google-Tag braucht einen Re-Scan; diese Aussage gilt nur für die gespeicherte Scan-Evidenz.
Consent-Guide öffnen
Formulare konsistent eingeordnetok · Crawl-Evidenz sichtbar
Der Report zeigt 9 Formular(e) auf 4 geprüften Seite(n) statt pauschal keine Dateneingabe zu behaupten.
Grenze: SaferPage sendet keine Formulare ab und bewertet Zweck, Pflichtfelder und Rechtsgrundlagen nicht abschließend.
Formular-Guide öffnen
Consent-/Paywall-Grenze berücksichtigtok · normaler Passivlauf
Keine Publisher-/PUR-/Consent-Wall als dominante Scan-Grenze erkannt.
Grenze: Overlays, Logins, Geoblocking und Paywalls können sichtbare Nachweise verdecken und erfordern Betreiberprüfung.
Methodik öffnen
Betreiber-Wording gesichertok · Grenzen sichtbar
Die Top-Liste bleibt bei Scan-Hinweisen und Linkzielen; sie wird nicht als Zertifikat, Rechtsfreigabe oder abschließendes Seriositätsurteil formuliert.
Grenze: Der Kurzreport ist eine technische Orientierung und keine Rechtsberatung, kein Penetrationstest und kein Freigabesiegel.
Einordnung öffnen
Aussage-Ampel exportiertok · maschinenlesbar
JSON und Markdown enthalten belegte Signale, manuelle Prüfpunkte, Claim-Grenzen und Guide-Links.
Grenze: Der Export dokumentiert die automatische Einordnung, ersetzt aber keine manuelle Betreiber- oder Rechtsfreigabe.
Aussage-Grenzen öffnen

Claim-Grenze: Die Qualitätskontrollen erklären Grenzen der automatisierten Priorisierung. Sie beweisen keine Rechtskonformität und ersetzen keine Betreiberfreigabe.

Zuletzt geprüfte Seiten

Welche Test-URLs wurden wirklich abgerufen?

Der Kurzreport zeigt hier die priorisierten Unterseiten aus dem letzten Crawl mit direktem Link zur geprüften Ziel-URL. Die Screenshot-Vorschau oben ist eine kleine 160x150-Evidence zum geprüften Seitenzustand; die Liste darunter macht sichtbar, ob Datenschutz-, Impressum-, Formular- oder andere wichtige Seiten im Test enthalten waren.

4 abgerufene Unterseite(n) · 12 zusätzlich entdeckte interne Linkziele.

Vollständiges Seiteninventar öffnen · Agentur-DeepScan öffnen

Direkte Test-URLs

/datenschutzdatenschutz · HTTP 200 · Tracking 0 · Cookies 0 · Formulare 2/impressumimpressum · HTTP 200 · Tracking 0 · Cookies 0 · Formulare 2/kontaktkontakt · HTTP 200 · Tracking 0 · Cookies 0 · Formulare 2/newsletternewsletter · HTTP 200 · Tracking 0 · Cookies 0 · Formulare 3

Audit-Ausgabe

PDF-/Druckbericht für Betreiber und Prüfer

Dieser Bericht ist für die Browser-Funktion „Drucken“ beziehungsweise „Als PDF speichern“ optimiert. Rohdaten und auditfähige Nachweise bleiben zusätzlich über JSON, CSV, Excel-Tabellen und ein ZIP-Nachweispaket mit getrennten Cookie-, Drittanbieter-, Consent-, Request- und Aufgaben-Tabellen exportierbar.

Domainberlin-live.de Score0 Scan-ID177c03f4-80ea-42d0-be27-7a182b3a31e4 Erstellt2026-06-09 23:56:20.666357+02 Öffentlicher Linksaferpage.de/berlin-live.de ExportPDF/Druck, JSON, CSV, XLSX, ZIP-Nachweise
DNS erreichbarAdressen: 1
HTTPS-Zertifikat gültigTLS: TLSv1.3
HTTP-Status 200Endziel: https://www.berlin-live.de/

Report richtig einordnen

Passive technische Orientierung, kein abschließendes Urteil

SaferPage bewertet sichtbare Website-Signale für berlin-live.de. Der Score hilft beim Priorisieren, ersetzt aber keine Rechtsberatung, keine Zertifizierung, keinen Penetrationstest und keine Betreiberfreigabe.

Automatisch belegtDNS, HTTPS, HTTP, Header, sichtbares HTML, Cookies und Browserkontakte aus dem passiven Lauf.Scan-Grenzekeine besondere Gate-Grenze erkannt · Passiver Kurzcheck: keine Logins, keine Formularübermittlung, kein vollständiger Rechts- oder Sicherheitstest.Formular-EvidenceCrawl fand 9 Formular(e) auf 4 Seite(n).Google Consent ModeGoogle-Signale wurden gesehen; Consent-Mode- und Tag-Gating-Befunde mit den konkreten Request-/Tag-Nachweisen prüfen.Drittanbieter-Evidence46 Browser-Request(s), 1 datenschutzrelevante Drittanbieter-Domain(s).Nicht behauptenKeine Aussage wie DSGVO-zertifiziert, rechtssicher, malwarefrei garantiert oder abschließend unbedenklich.

Betreiber-Checkliste öffnen

Grenzen der automatischen Bewertung

Welche Grenzen sind aus der Evidence ableitbar?

Diese Konsolidierung zeigt sichtbare technische Beobachtungen getrennt von allgemeinem Betreiber-Background. Nicht belegte Kontexte werden nur als Guide-Link angeboten.

46Browser-Requests im passiven Lauf1datenschutzrelevante Drittanbieter-Domains9Formulare aus Startseite und Crawl-CoveragejaGoogle-Consent-Prüfung erforderlichneinPublisher-/Consent-Gate-Kontextkeine besondere Gate-Grenze erkanntScan-Grenze
ScorePriorisierung
Der Wert ist aus technischen Signalen berechnet und dient der Reihenfolge der sichtbaren Hinweise.
Methodik öffnen
FormulareCrawl-Evidenz vorhanden
Der Check zeigt 9 Formular(e) auf 4 geprüften Seite(n).
Formular-Guide öffnen
Google Consent ModeGoogle-Evidenz prüfen
Google-Tags oder Google-Domains wurden gesehen; Consent Defaults und Tag-Gating anhand der konkreten Requests prüfen.
Consent-Guide öffnen
Consent-/Paywall-Gateskeine besondere Gate-Grenze erkannt
Im gespeicherten Kurzcheck wurde keine besondere Gate-Grenze hervorgehoben.
Grenzen öffnen
Cookies vor Einwilligung0 Cookie(s) gesehen
Der passive Browserlauf speicherte 0 Cookie(s) vor Einwilligung und 1 datenschutzrelevante Drittanbieter-Domain(s).
Cookie-Guide öffnen
Externe Skript-LieferketteSkriptquellen prüfen
Der HTML-Check sah 3 externe Skript(e) von 3 Host(s), davon 3 ohne SRI und 0 Tracking-/Tag-nahe Skript(e).
Skript-Guide öffnen
Robots & SitemapCrawl-Scope-Evidence vorhanden
Der passive Coverage-Check hat robots.txt nicht belastbar geprüft, 5 Sitemap-Quelle(n) gelesen, 5 Sitemap-Kandidat(en) gesehen, 111 Sitemap-URL(s) und 30 interne Linkziele gespeichert.
Crawl-Grenzen öffnen
Indexierungs-Signalenicht belegt
Der passive Abruf hat keine Meta-Robots- oder X-Robots-Tag-Signale als Schwerpunkt gespeichert.
Indexierungs-Grenzen öffnen
KI-/Crawler-PolicyPolicy-Dateien gesehen
Der passive Same-Origin-Check sah 1 von 5 festen Policy-Datei(en), 0 llms/AI/WARD-Datei(en) und 0 explizite KI-Bot-Regel(n) in robots.txt. robots.txt: generic_robots_policy; llms/AI/WARD: not_publicly_verified.
KI-/Crawler-Grenzen öffnen
AdTech-Transparenzdateiennicht belastbar geprüft
Der ads.txt/app-ads.txt/sellers.json-Check wurde nicht belastbar abgeschlossen; daraus folgt keine Aussage zu Werbepartnern, Consent, Fraud-Freiheit oder Inventarqualität.
AdTech-Grenzen öffnen
Security-/Trust-Policynicht belastbar geprüft
Der security.txt-Check wurde nicht belastbar abgeschlossen; daraus folgt keine Aussage zu Security-Reife, Reaktionszeit oder Vulnerability-Disclosure-Prozess.
Security-/Trust-Grenzen öffnen
Ausgeblendeter Inhalt1 Treffer gesehen
Der HTML-/CSS-Check hat ausgeblendeten Text als technisches Signal gespeichert.
Einordnung öffnen
Bewertungs-/Review-Markupnicht belegt
Der passive Lauf hat kein Bewertungs-/Review-Markup als Schwerpunkt gespeichert.
SEO-/Markup-Guide öffnen
Suchmaschinenansichtkeine klare Abweichung
Normaler Abruf und Googlebot-Abruf wurden verglichen: Status – / –, Textähnlichkeit 1.
Cloaking-Guide öffnen
Hreflang-/Sprachalternativennicht belegt
Der passive Lauf hat keine Hreflang-Alternates als Schwerpunkt gespeichert.
Hreflang-Guide öffnen
BetreibertransparenzLink-Evidenz vorhanden
Der passive Lauf hat einen Impressum-Link als Evidence gespeichert.
Transparenz-Guide öffnen

Methodik-Grenzen öffnen

Link-only

Faktenbasierte Linkziele statt Fix-Anleitung

Diese Testresult-Seite zeigt Scan-Fakten zur geprüften Website. Umsetzungsschritte, Betreiber-Guides, Checklisten, Code und allgemeine Empfehlungen stehen auf getrennten Seiten; im Report erscheint nur das Linkziel.

3priorisierte Scan-Hinweise3hoch gewichtete Scan-HinweiseLink-onlykeine Guide-Inhalte im TestresultFaktenReport bleibt bei Evidence und Grenzen
Tracking und Consent zuerst prüfenhoch · Consent

Consent, Tracking oder Drittanbieter wirken im Erstaufruf deutlich nachbesserungsbeduerftig.

Guide-, Checklisten- und Umsetzungstexte sind ausgelagert; hier bleiben Evidence und Linkziel.
Gewicht
88/100
Linkziel
öffnen
Erkannte Anbieter fehlen in der Datenschutzerklärunghoch · DSGVO/Transparenz

Aus diesem Rohfeld wird im Testresult keine zusätzliche Scan-Feststellung abgeleitet; Betreiberkontext und Umsetzungshinweise sind ausgelagert.

Guide-, Checklisten- und Umsetzungstexte sind ausgelagert; hier bleiben Evidence und Linkziel.
Gewicht
82/100
Linkziel
öffnen
Kein sichtbarer Ablehnen-Button im Bannerhoch · TDDDG/ePrivacy

Ablehnen muss in der Browseransicht gleichwertig erreichbar sein.

Guide-, Checklisten- und Umsetzungstexte sind ausgelagert; hier bleiben Evidence und Linkziel.
Gewicht
78/100
Linkziel
öffnen

Betreiber-Fazit

Erhöhter Betreiber-Prüfbedarf

Die Kurzfassung zeigt technische Signale aus dem passiven Lauf. Betreiberkontext ohne Scan-Beleg wird nur als Guide-Link angeboten.

Auffällige SignaleVersteckter Text erkanntKein sichtbarer Ablehnen-Button im BannerCookie-Hinweis ohne klare Ablehnen-Option
Entlastende SignaleBetreiber und Datenschutz sind auffindbarDateneingabe hat KontextNutzbarkeit wirkt solideTechnisches Vertrauenssignal
Datenschutz & Trackingauffällig0 Tracking-Script(s), 0 Cookie(s) vor Einwilligung, 1 datenschutzrelevante Drittanbieter.
DateneingabeprüfenCrawl fand 9 Formular(e) auf 4 geprüften Seite(n), u. a. /datenschutz, /impressum, /kontakt, /newsletter.
BrowserkontaktekritischChromium sah 46 Request(s), 9 Drittanbieter-Domain(s), davon 1 datenschutzrelevant.
DomainhistorieprüfenRDAP liefert kein klares Registrierungsdatum.
Technische BasisunauffälligHTTPS, DNS, Zertifikat, HTTP-Status und wichtige Sicherheitsheader wurden passiv geprüft.
NutzbarkeitunauffälligAntwortzeit, mobile Viewport-Basis und auffällige Browser-Verhaltensmuster wurden eingeordnet.

Betreiber-Checkliste öffnen

Prüfprofil

Für welchen Betreiber-Kontext wurde priorisiert?

Prüfprofil Deutschland -> DACH: Allgemeine Website, Zielgruppe Gemischte Zielgruppe. 3 Schwerpunkt(e) für Betreiber priorisiert.
Das Profil priorisiert technische Prüfpunkte für Betreiber; es ersetzt keine rechtliche Einzelfallprüfung.

Website-Typ: Allgemeine Website · Betreiber: Deutschland · Zielregion: DACH

Schwerpunkte

DSGVO/TDDDGrelevant · hoch · Profil: Betreiber-/ZielregionDDG/Anbieterkennzeichnungrelevant · hoch · Profil: öffentliches WebangebotDrittanbieter und internationale Transfersrelevant · prüfen · Profil: AngebotskomplexitätBFSG/WCAGKontext · mittel · Profil: Website-Typ und WCAG-SignaleSensible DatenKontext · hoch · Profil: Website-Typ/Zielgruppe

Prüfmodule

Welche Bereiche wurden geprüft?

Methodik
Browser-Nachweis36
kritisch

46 Request(s), 9 Drittanbieter-Domain(s), davon 1 datenschutzrelevant, 0 Browser-Cookie(s), Transfer-Prüfbedarf: 1, Referrer-/URL-Leaks: 2, Fingerprinting-/Replay-Hinweise: 1.

Details und Umsetzungshinweise sind ausgelagert; sichtbar bleiben Modulscore, Evidence und Linkziel.Betreiber-Guide öffnen
Datenschutz, Cookies & Consent42
kritisch

Scan-Evidence in diesem Modul vorhanden; Betreiberkontext ist ausgelagert.

Details und Umsetzungshinweise sind ausgelagert; sichtbar bleiben Modulscore, Evidence und Linkziel.Betreiber-Guide öffnen
SEO-Integrität & Cloaking46
kritisch

3 SEO-Spam-Hinweis(e), 0 Cloaking-Hinweis(e).

Details und Umsetzungshinweise sind ausgelagert; sichtbar bleiben Modulscore, Evidence und Linkziel.Betreiber-Guide öffnen
Google-Dienste & Drittanbieter58
auffällig

Google-Tags: ja, 1 Google-nahe Domain(s), Consent-Default: nein, Analytics: nein, Werbung: nein, Fonts: nein.

Details und Umsetzungshinweise sind ausgelagert; sichtbar bleiben Modulscore, Evidence und Linkziel.Betreiber-Guide öffnen
Tracking-Pixel & Beacons62
auffällig

1 Pixel-/Bildtracking-Hinweis(e), 3 Beacon-/Telemetry-Hinweis(e), 0 Link-Ping(s).

Details und Umsetzungshinweise sind ausgelagert; sichtbar bleiben Modulscore, Evidence und Linkziel.Betreiber-Guide öffnen
Referrer & URL-Leaks76
prüfen

2 Drittanbieter-Domain(s) mit Referrer-/URL-Leak-Prüfbedarf, 0 sensible Query-Kontexte.

Details und Umsetzungshinweise sind ausgelagert; sichtbar bleiben Modulscore, Evidence und Linkziel.Betreiber-Guide öffnen
Externe Skripte & SRI82
prüfen

3 externe Skript(e) von 3 Host(s), 3 ohne SRI, 0 Tracking-/Tag-nahe Skript(e).

Details und Umsetzungshinweise sind ausgelagert; sichtbar bleiben Modulscore, Evidence und Linkziel.Betreiber-Guide öffnen
Formulare, Login & Zahlung82
prüfen

Die Seite kann Kontaktformular, Newsletter abfragen.

Details und Umsetzungshinweise sind ausgelagert; sichtbar bleiben Modulscore, Evidence und Linkziel.Betreiber-Guide öffnen

Betreiber-Checkliste öffnen

Ausgelagerten Fixpfad öffnen

Verlinkte Betreiber-Details

Guides und Runbooks sind ausgelagert

Der Report zeigt Fakten zur geprüften Website. Hintergrund, Arbeitspfade und Runbooks liegen auf getrennten Zielseiten; hier stehen nur Links.

Link-only Detailmodule

Detailseiten statt eingebetteter Guides

Diese Testresult-Seite bleibt bei Scan-Fakten zur geprüften Website. Nachweise, Badge-Code, Benchmark, Monitoring, Runbooks und Betreiber-Guides öffnen auf eigenen Seiten; im Testresult stehen nur feste Links, keine Guide-Inhalte.

Nachweise öffnenPrüfbeleg, Exportpaket und Hash-NachweiseMonitoring öffnenScan-Verlauf, Änderungen und WiederholungsscansBenchmark öffnenVergleichswerte auf eigener DetailseiteAlerts öffnenÄnderungs- und RisikohinweiseBadge-Center öffnenBadge-Code und Verifizierung ausgelagertMethodik öffnenGrenzen, Crawl-Verhalten und PrüfprofilPriorisierte Scan-Hinweise als JSON anzeigenMaschinenlesbare Befunde mit Evidence und Linkziel

Monitoring

Was hat sich seit dem letzten Scan verändert?

prüfen
Vergleich mit dem vorherigen gespeicherten Scan: Score +0 Punkte, 1 neue und 2 behobene Hinweis(e).
Neue Hinweise 1 · behoben 2 · neue technische Signale 0 · entfernte technische Signale 0

Scan-Verlauf

Aktuell · 2026-06-09 23:56Score 0 · 25 Hinweis(e)Früher · 2026-06-08 20:27Score 0 · 26 Hinweis(e)

Änderungen

Neue und behobene Hinweise

Score vorher: 0 · jetzt: 0 · Delta: +0

Neu

Behoben

Technik-Delta

Neue Cookies, Drittanbieter und Skriptquellen

0 neue und 0 entfernte technische Datenschutz-Signal(e): Cookies, Drittanbieter und externe Skriptquellen.

Neu erkannt

Keine neuen Cookies. Keine neuen Drittanbieter. Keine neuen Skriptquellen.

Entfallen

Keine entfernten Cookies. Keine entfernten Drittanbieter. Keine entfernten Skriptquellen.

Betreiber-Risiko

Priorisierte Scan-Hinweise aus dem gespeicherten Report

Hoher Betreiber-Handlungsbedarf
Abgeleitet aus dem Datenschutz-Webseiten-Report: Datenschutz, TDDDG/ePrivacy, BSI-Sicherheit, Google-Qualität und Nutzbarkeit werden nach passiven Befunden priorisiert.

DSGVO/Transparenzhoch · 4 Hinweis(e)Guide öffnenTDDDG/ePrivacyhoch · 2 Hinweis(e)Guide öffnenBSI/Security-Headermittel · 3 Hinweis(e)Guide öffnenDrittlandtransferhoch · 2 Hinweis(e)Guide öffnenBeacon-/Telemetry-Trackinghoch · 1 Hinweis(e)Guide öffnenDSGVO/Google-Dienstehoch · 1 Hinweis(e)Guide öffnen

Regelwerks-Scorecard

DSGVOScore 0/100 · hoher Prüfbedarf · 13 Befund(e)Transparenz, Datenflüsse, Empfänger, Speicherdauer und technische Sicherheit personenbezogener Daten.Guide öffnenTDDDG/ePrivacyScore 2/100 · hoher Prüfbedarf · 4 Befund(e)Cookies, Endgerätezugriff, Tracking, Consent-Zustände, GPC und Widerruf.Guide öffnenBFSG/WCAGScore 100/100 · keine priorisierten Hinweise · 0 Befund(e)Barrierefreiheit, Tastatur-/Screenreader-Nutzbarkeit, Formulare, Buttons und mobile Basis.Guide öffnenBSI/SecurityScore 58/100 · prüfen · 3 Befund(e)TLS, Security-Header, CSP, Patchstand, Referrer-Schutz und technische Härtung.Guide öffnenDDG/BetreibervertrauenScore 44/100 · hoher Prüfbedarf · 3 Befund(e)Impressum, Kontakt, Anbieterkennzeichnung und erkennbare Betreiberidentität.Guide öffnen

Regelwerks-Matrix

DSGVO Transparenzhoch · 6 Befund(e) · Score 112Guide öffnenTDDDG/ePrivacyhoch · 4 Befund(e) · Score 98Guide öffnenDSGVO Datenleck/PIIhoch · 3 Befund(e) · Score 70Guide öffnenGoogle-Dienstehoch · 4 Befund(e) · Score 62Guide öffnenBetreibervertrauenhoch · 3 Befund(e) · Score 56Guide öffnenBSI/Sicherheitmittel · 3 Befund(e) · Score 42Guide öffnen

Domainhistorie

Wie lange gibt es die Domain?

RDAP liefert kein klares Registrierungsdatum.

RDAP-Hinweise

Letzte Änderung2024-11-05Statusactive

Datenschutz zuerst

Was sieht ein Nutzer beim ersten Aufruf?

Cookies beim ersten Aufruf: 0 · Tracking-Skripte: 0 · Datenschutzerklärung: ja · Impressum: ja · Ablehnen-Option: nein

Dateneingabe & Zahlung

Welche Daten könnte die Seite abfragen?

Crawl fand 9 Formular(e) auf 4 geprüften Seite(n). Datenschutzkontext: ja · Betreiberkontext: ausgelagert

Erkannte Eingaben

9Formulare insgesamt erkannt9aus gecrawlten Test-URLs4Formular-UnterseitenausgelagertDatenschutzkontextGuide-LinkBetreiberkontext

Formular-Guide öffnen

/datenschutzCrawl · 2 Formular(e)/impressumCrawl · 2 Formular(e)/kontaktCrawl · 2 Formular(e)/newsletterCrawl · 3 Formular(e)Kontaktformular1 Signal(e)Newsletter1 Signal(e)FormularFormular · 0 Feld(er)FormularFormular · 0 Feld(er)FormularFormular · 0 Feld(er)FormularFormular · 0 Feld(er)

PII & Datenlecks

Könnten personenbezogene Werte in URL, Referrer oder Tracking landen?

1 PII-/Datenleck-Hinweis(e) aus URL-, Formular- und Browserkontext. Score: 82 · Hinweise: 1

Betreiber-Guide PII-Datenlecks öffnen

Leckpfade

Aktuelle URLok · Keine sensiblen Query-Parameter erkannt.Link-Parameterok · Keine sensiblen Link-Querys erkannt.GET-Formulareok · Keine personenbezogenen GET-Formulare erkannt.Externe Formularzieleok · Keine externen Formularziele mit personenbezogenen Feldern erkannt.Tracking neben Dateneingabeauffällig · 1 datenschutzrelevante Drittanbieter.

Kurzantwort

Kann man der Website vertrauen?

Der Check bleibt passiv und formuliert die wichtigsten Punkte als Betreiberhinweise. Technische Details bleiben nachvollziehbar im JSON erhalten.

Browser-Sicht

Was lädt die Seite im Chromium-Browser nach?

Requests: 46 · kontaktierte Domains: 10 · Drittanbieter: 9 · Browser-Cookies: 0 · Storage: 0 (0 Tracking-Hinweis(e)) · Banner: Akzeptieren 1 / Ablehnen 0 / Einstellungen 1 · Ablehnen/Akzeptieren: 0 · Reject-Test: nicht gefunden, neue Cookies 0, neue Tracking-Kontakte 0 · Accept-Test: geklickt, neue Cookies 30, neue Tracking-Kontakte 1 · TCF-String: ja, Purposes 0, Vendors 0 · GPC: aktiv, Datenschutz-Domains 1, Drittanbieter-Cookies 0 · CMP: ja · Browser: playwright-chromium

Zwecke

other8 Domain(s)Tag-Manager1 Domain(s)

CMP & Storage

TCF APIBrowserCMP APIBrowserdataLayerBrowserGoogle Tag DataBrowserTCF TC-StringjaTCF Purposes0TCF Vendors0Akzeptieren1Ablehnen0Einstellungen1Ablehnen/Akzeptieren0Reject-TestoffenNeue Cookies nach Ablehnen0Tracking-Storage nach Ablehnen0Neue Tracking-Kontakte0Accept-TestgeklicktNeue Requests nach Akzeptieren107Neue Cookies nach Akzeptieren30Neue Tracking-Kontakte nach Akzeptieren1GPC-SignalaktivGPC Datenschutz-Domains1GPC Drittanbieter-Cookies0GPC Storage-Hinweise0

Drittanbieter

cdn.consentmanager.netSonstige · 6 Request(s) · image, scriptcp.berlin-live.deSonstige · 6 Request(s) · fetch, scriptanonym.data.funkedigital.deSonstige · 1 Request(s) · fetchb.delivery.consentmanager.netSonstige · 1 Request(s) · scriptc.delivery.consentmanager.netSonstige · 1 Request(s) · imageGoogle Tag ManagerTag-Manager · 1 Request(s) · scriptscout.data.funkedigital.deSonstige · 1 Request(s) · scriptsol.berlin-live.deSonstige · 1 Request(s) · scriptspark.cloud.funkedigital.deSonstige · 1 Request(s) · script

Consent-Zustände

Was passiert beim Erstaufruf, nach Ablehnen, nach Akzeptieren und mit GPC?

Consent-State-Evidence: 4 Zustände verglichen, 0 hoch auffällig, 2 mittel auffällig. Score: 80

Betreiber-Guide Consent öffnen

Zustandsnachweis

ErstaufrufCookies 0 · neu 0 · Tracking-Storage 0 · Datenschutz-Domains 1 · mittelNach AblehnenCookies 0 · neu 0 · Tracking-Storage 0 · Datenschutz-Domains 0 · niedrigNach AkzeptierenCookies 30 · neu 30 · Tracking-Storage 3 · Datenschutz-Domains 1 · infoGPC-AufrufCookies 0 · neu 0 · Tracking-Storage 0 · Datenschutz-Domains 1 · mittel

Consent-Journey

Welche Anbieter erscheinen im Erstaufruf, nach Ablehnen, nach Akzeptieren und bei GPC?

Consent-Journey: 0 neue Datenschutz-Domain(s) nach Ablehnen, 0 nach Akzeptieren, 1 im GPC-Aufruf. Score: 92 · Ablehnen neu: 0 · Akzeptieren neu: 0 · GPC: 1

Betreiber-Guide Consent öffnen

Zustandsmatrix

Google Tag ManagerTag-Manager · Erstaufruf 1 · Ablehnen neu 0 · Akzeptieren neu 0 · GPC 1images.taboola.comSonstige · Erstaufruf 0 · Ablehnen neu 0 · Akzeptieren neu 16 · GPC 0static.cleverpush.comSonstige · Erstaufruf 0 · Ablehnen neu 0 · Akzeptieren neu 14 · GPC 0cdn.consentmanager.netSonstige · Erstaufruf 6 · Ablehnen neu 0 · Akzeptieren neu 0 · GPC 6cp.berlin-live.deSonstige · Erstaufruf 6 · Ablehnen neu 0 · Akzeptieren neu 0 · GPC 6orbidder.otto.deSonstige · Erstaufruf 0 · Ablehnen neu 0 · Akzeptieren neu 6 · GPC 0ssb-global.smartadserver.comSonstige · Erstaufruf 0 · Ablehnen neu 0 · Akzeptieren neu 6 · GPC 0c.delivery.consentmanager.netSonstige · Erstaufruf 1 · Ablehnen neu 0 · Akzeptieren neu 2 · GPC 1ib.adnxs.comSonstige · Erstaufruf 0 · Ablehnen neu 0 · Akzeptieren neu 4 · GPC 0am-trc-events.taboola.comSonstige · Erstaufruf 0 · Ablehnen neu 0 · Akzeptieren neu 3 · GPC 0api.permutive.comSonstige · Erstaufruf 0 · Ablehnen neu 0 · Akzeptieren neu 3 · GPC 0ad.yieldlab.netSonstige · Erstaufruf 0 · Ablehnen neu 0 · Akzeptieren neu 2 · GPC 0

Drittanbieter-Kontakte

Wer bekommt beim ersten Aufruf technische Kontaktpunkte?

9 Drittanbieter-Domain(s) beim ersten Browseraufruf, davon 1 datenschutzrelevant. Score: 60 · Requests: 19 · datenschutzrelevant: 1

Betreiber-Guide Drittanbieter öffnen

Kontaktmatrix

Google Tag Managermittel · Tag-Manager · 1 Request(s) · script:1 · googletagmanager.comcdn.consentmanager.netniedrig · Sonstige · 6 Request(s) · image:3, script:2, document:1cp.berlin-live.deniedrig · Sonstige · 6 Request(s) · fetch:3, script:3anonym.data.funkedigital.deniedrig · Sonstige · 1 Request(s) · fetch:1b.delivery.consentmanager.netniedrig · Sonstige · 1 Request(s) · script:1c.delivery.consentmanager.netniedrig · Sonstige · 1 Request(s) · image:1scout.data.funkedigital.deniedrig · Sonstige · 1 Request(s) · script:1sol.berlin-live.deniedrig · Sonstige · 1 Request(s) · script:1spark.cloud.funkedigital.deniedrig · Sonstige · 1 Request(s) · script:1

Betreiber-Verzeichnis

Empfänger- und Auftragsverarbeiter-Signale aus dem Scan

9 Empfänger-/Anbieter-Eintrag/Einträge aus Browserkontakten und Cookie-Inventar, 1 datenschutzrelevant, 4 mit AVV-/Rollenprüfung. Score: 65 · hoher Prüfbedarf: 1 · AVV/Rolle prüfen: 4
Aus diesem Rohfeld wird im Testresult keine zusätzliche Scan-Feststellung abgeleitet; Betreiberkontext und Umsetzungshinweise sind ausgelagert.

Betreiber-Guide Anbieterinventar öffnen

Anbieterinventar

Google Tag Managerhoch · Tag-Manager · Auftragsverarbeiter/Empfänger prüfen · Drittland/USA · 1 Request(s) · 0 Cookie(s) · googletagmanager.comcdn.consentmanager.netmittel · Sonstige · Technischer Empfänger prüfen · Jurisdiktion unklar · 6 Request(s) · 0 Cookie(s)b.delivery.consentmanager.netniedrig · Sonstige · Technischer Empfänger prüfen · Jurisdiktion unklar · 1 Request(s) · 0 Cookie(s)c.delivery.consentmanager.netniedrig · Sonstige · Technischer Empfänger prüfen · Jurisdiktion unklar · 1 Request(s) · 0 Cookie(s)cp.berlin-live.deniedrig · Sonstige · Technischer Empfänger prüfen · EU/EWR · 6 Request(s) · 0 Cookie(s)anonym.data.funkedigital.deniedrig · Sonstige · Technischer Empfänger prüfen · EU/EWR · 1 Request(s) · 0 Cookie(s)scout.data.funkedigital.deniedrig · Sonstige · Technischer Empfänger prüfen · EU/EWR · 1 Request(s) · 0 Cookie(s)sol.berlin-live.deniedrig · Sonstige · Technischer Empfänger prüfen · EU/EWR · 1 Request(s) · 0 Cookie(s)spark.cloud.funkedigital.deniedrig · Sonstige · Technischer Empfänger prüfen · EU/EWR · 1 Request(s) · 0 Cookie(s)

Transfer-Risiko

Drittanbieter mit Transfer- oder Jurisdiktionssignal

9 Drittanbieter für Transfer-/Jurisdiktionsprüfung, 1 mit hohem Prüfbedarf, 3 unklar. Score: 61 · hoher Prüfbedarf: 1 · unklar: 3

Transfer Impact Assessment öffnen

Betreiber-Guide Drittlandtransfer öffnen

Anbieter-Prüfliste

Google Tag Managerhoch · Drittland/USA · US · googletagmanager.comcdn.consentmanager.netmittel · Jurisdiktion unklar · unbekanntcp.berlin-live.deniedrig · EU/EWR · EU/EWRanonym.data.funkedigital.deniedrig · EU/EWR · EU/EWRb.delivery.consentmanager.netmittel · Jurisdiktion unklar · unbekanntc.delivery.consentmanager.netmittel · Jurisdiktion unklar · unbekanntscout.data.funkedigital.deniedrig · EU/EWR · EU/EWRsol.berlin-live.deniedrig · EU/EWR · EU/EWRspark.cloud.funkedigital.deniedrig · EU/EWR · EU/EWR

Externe Inhalte

Laden Videos, Karten, Captchas oder Social-Widgets schon beim Seitenaufruf?

0 externe Embed-/Widget-Dienst(e), 0 davon im ersten Browseraufruf geladen. Score: 100 · vorab geladen: 0 · Captcha: 0

Betreiber-Guide externe Inhalte öffnen

Embed-Prüfliste

Keine Video-, Karten-, Captcha- oder Social-Embeds aus HTML und Browserlauf erkannt.

Referrer & URL-Leaks

Werden Seitenpfade oder Suchparameter an Drittanbieter sichtbar?

2 Drittanbieter-Domain(s) mit Referrer-/URL-Leak-Prüfbedarf, 0 sensible Query-Kontexte. Score: 76 · Domains: 2 · sensible Kontexte: 0

Betreiber-Guide Referrer- und URL-Leaks öffnen

Leak-Prüfliste

b.delivery.consentmanager.netSeiten-URL oder URL-Wert in Drittanbieter-Requestparametern · Query: cdid, h, lc.delivery.consentmanager.netSeiten-URL oder URL-Wert in Drittanbieter-Requestparametern · Query: id, did, cfdid

Tracking-Pixel & Beacons

Sendet die Seite unsichtbare Pixel, Link-Pings oder Beacon-Telemetrie?

1 Pixel-/Bildtracking-Hinweis(e), 3 Beacon-/Telemetry-Hinweis(e), 0 Link-Ping(s). Score: 62 · Pixel: 1 · Beacons/Telemetry: 3 · Link-Pings: 0

Betreiber-Guide Pixel & Beacons öffnen

Signale

Beacon-/Keepalive-APIbeacon_api · Telemetry · beacon · sendBeacon API 0 Aufruf(e), 0 Code-Hinweis(e); keepalive 2 Aufruf(e), 0 Code-Hinweis(e).c.delivery.consentmanager.netbrowser_tracking_request · Sonstige · image · image-Request mit 16 Query-Schlüssel(n).

Fingerprinting & Session-Replay

Liest die Seite Browser-Merkmale oder Interaktionen aus?

1 Fingerprinting-/Session-Replay-Hinweis(e) aus dem Browserlauf. Score: 88 · Hinweise: 1

Betreiber-Guide Fingerprinting öffnen

Browser-API-Check

Canvas-Ausleseok · 0 Pixel-Lesezugriff(e), 0 Export(e).WebGL-Merkmaleok · 0 Parameterzugriff(e), 0 Pixel-Lesezugriff(e).AudioContextok · 0 AudioContext/OfflineAudioContext-Aufruf(e).Session-Replay-Anbieterok · Keine bekannten Anbieter erkannt.Tastatur-/Eingabe-Listenerauffällig · 19 Tastatur-/Input-Listener, 23 Interaktions-Listener, 0 MutationObserver.

Seitenabdeckung

Welche Unterseiten wurden gefunden?

30 interne Linkziele erkannt (111 aus Sitemap), 4 priorisierte Unterseite(n) zusätzlich abgerufen. Score: 95 · wichtige Seiten: datenschutz, impressum, kontakt · Sitemap-URLs: 111 · gelesene Sitemaps: 5 · Unterseiten mit Tracking: 0 · Formularlücken: 0 · Datenschutzerklärung: 93 Punkte, fehlende Bausteine 1 · Aktualität: nicht erkannt · Lesbarkeit: 10.7 Wörter/Satz · Anbieter-Abgleich: 0/1 erwähnt

Priorisierte Seiten

/datenschutzdatenschutz · HTTP 200 · Tracking 0 · Cookies 0 · Formulare 2/impressumimpressum · HTTP 200 · Tracking 0 · Cookies 0 · Formulare 2/kontaktkontakt · HTTP 200 · Tracking 0 · Cookies 0 · Formulare 2/newsletternewsletter · HTTP 200 · Tracking 0 · Cookies 0 · Formulare 3

Datenschutzerklärung

Verantwortlicher / AnbietergefundenKontakt / DatenschutzkontaktgefundenZwecke der VerarbeitunggefundenRechtsgrundlagengefundenBetroffenenrechtegefundenSpeicherfrist / LöschunggefundenEmpfänger / AuftragsverarbeitergefundenCookies / TrackinggefundenWiderruf / Opt-outgefundenBeschwerde bei AufsichtsbehördegefundenDrittlandtransfergefundenStand / Aktualitätsdatumfehlt

Anbieter-Abgleich

Google Tag ManagerTracking-ID · fehlt in Datenschutzerklärung

Google Consent Mode

Sind Google-Tags vor Einwilligung begrenzt?

Google-Tags und Consent-Mode-Signale wurden aus HTML, Browserkontakten und Tracking-IDs abgeleitet. Score: 58

Consent Mode öffnen

Nachweis

Google-TagsjaConsent-DefaultneinConsent-UpdateneinGoogle-Consent-Domains1Google-Service-Domains0

Consent-Audit

Haelt die Seite Tracking bis zur Einwilligung zurueck?

Consent, Tracking oder Drittanbieter wirken im Erstaufruf deutlich nachbesserungsbeduerftig. Score: 42 · Cookies vor Einwilligung: 0 · Tracking-Cookies: 0 · Browser-Ablehnen: 0 · Ablehnen/Akzeptieren: 0 · Reject geklickt: nein · neue Cookies nach Ablehnen: 0 · Accept geklickt: ja · neue Cookies nach Akzeptieren: 30 · neue Tracking-Kontakte nach Akzeptieren: 1 · TCF-String: ja · TCF Purposes: 0 · TCF Vendors: 0 · GPC Datenschutz-Domains: 1 · GPC Drittanbieter-Cookies: 0 · Storage-Hinweise: 0 · CMP: ja · datenschutzrelevante Drittanbieter: 0

Pruefpunkte

Cookie-/Consent-Hinweis sichtbarokAblehnen gleichwertig erreichbarpruefenEinstellungen oder Auswahl vorhandenokAblehnen im sichtbaren BannerpruefenEinstellungen im sichtbaren BannerokAblehnen nicht deutlich schwaecher dargestelltokAblehnen technisch klickbarokKeine neuen Cookies nach AblehnenokKein Tracking-Storage nach AblehnenokKeine neuen Tracking-Kontakte nach Ablehnenok

Consent-Guide-Link

Keine priorisierten Consent-Signale im passiven Check.

Blockierplan-Link

Keine konkreten Pre-Consent-Blockiersignale im passiven Check.

Banner-UX

Wirkt das Consent-Banner fair und gleichwertig bedienbar?

Consent-Banner-UX: 2 auffällige Prüfpunkt(e), davon 1 hoch. Muster: Ablehnen nicht gleichwertig sichtbar. Score: 74 · Akzeptieren: 1 · Ablehnen: 0 · Einstellungen: 1 · Dark-Pattern-Hinweise: 1
Automatisch aus sichtbaren Banner-Controls und Browser-Interaktionen abgeleitet; visuelle Details und Rechtmäßigkeit fachlich prüfen.

Banner-Vorlage öffnen

Consent-Ledger öffnen

Region-Regeln öffnen

Betreiber-Guide Consent-UX öffnen

UX-Prüfpunkte

Ablehnen auf erster Ebene sichtbarauffällig · hoch · Sichtbare Controls: Akzeptieren 1, Ablehnen 0, Einstellungen 1.Einstellungen sichtbar erreichbarok · niedrig · Einstellungs-/Auswahl-Controls im Banner: 1.Ablehnen und Akzeptieren wirken gleichwertigok · niedrig · Größenverhältnis Ablehnen/Akzeptieren: nicht messbar. Accept-Fläche 12385, Reject-Fläche 0.Ablehnen technisch klickbarok · niedrig · Reject-Test: kein Button gefunden. Text:Ablehnen stoppt neue Tracking-Signaleok · niedrig · Nach Ablehnen: 0 neue Cookie(s), 0 Tracking-Storage-Hinweis(e), 0 neue Datenschutz-Domain(s).Akzeptieren-Wirkung nachvollziehbarok · niedrig · Accept-Test: geklickt; neue Cookies 30, neue Datenschutz-Domains 1.GPC-Aufruf ohne neue Tracking-Hinweiseauffällig · mittel · GPC: Datenschutz-Domains 1, Drittanbieter-Cookies 0, Storage-Hinweise 0.Keine Tracking-Cookies vor Einwilligungok · niedrig · 0 Tracking-Cookie(s) im Erstaufruf.

TCF-Decoder

Welche IAB-TCF-Zwecke wirken im Erstaufruf erlaubt?

TCF-Decoder: 0 Zweck(e) mit Consent/LI-Signal, 0 Vendor-Consent(s), 0 Vendor-LI-Signal(e). Score: 100 · TC-String: ja · Purposes Consent: 0 · Purposes LI: 0 · Vendor Consent: 0 · Vendor LI: 0

Betreiber-Guide Consent öffnen

TCF-Zwecke

P1 Informationen auf einem Gerät speichern und/oder abrufennicht_erlaubt · niedrigP2 Einfache Anzeigen auswählennicht_erlaubt · niedrigP3 Personalisiertes Anzeigen-Profil erstellennicht_erlaubt · niedrigP4 Personalisierte Anzeigen auswählennicht_erlaubt · niedrigP5 Personalisiertes Inhalts-Profil erstellennicht_erlaubt · niedrigP6 Personalisierte Inhalte auswählennicht_erlaubt · niedrigP7 Anzeigen-Leistung messennicht_erlaubt · niedrigP8 Inhalte-Leistung messennicht_erlaubt · niedrigP9 Marktforschung zur Generierung von Erkenntnissen nutzennicht_erlaubt · niedrigP10 Produkte entwickeln und verbessernnicht_erlaubt · niedrigP11 Begrenzte Daten zur Anzeigen-Auswahl verwendennicht_erlaubt · niedrig

Quellenmatrix

Welche offiziellen Quellen stützen die Einordnung?

Quellen und Betreiber-Background sind ausgelagert.
Diese Testresult-Seite zeigt dazu nur Zähler und Linkziel; Quellenkommentare sind kein Befund zur geprüften Website.

Quellen: 9 · offizielle Links: 5

Referenzen

Methodik und Quellen öffnen9 Referenzzeile(n) ausgelagert; Quellenkommentare sind kein Befund zur geprüften Website.

DSGVO & TDDDG

Welche Signale mit Rechtsgrundlagen-Bezug wurden gezählt?

Der passive Scan stellt keine Rechtsgrundlage fest.
Er zählt nur beobachtete Cookie-, Storage-, Drittanbieter-, Formular- und Consent-Signale. Die fachliche Rechtsgrundlagenprüfung bleibt Betreiberkontext und ist als Guide ausgelagert.

Einwilligungsbezug: 4 · vor Consent auffällig: 0 · unklar/prüfen: 12 · Drittanbieter: 9 · Storage: 0

Rechtsgrundlagen-Guide-Link

Detailprüfung, Rechtsbewertung und Umsetzungshinweise werden nicht im Testresult ausgespielt.

Rechtsgrundlagen-Guide öffnen

Rechtsgrundlagen-Guide öffnen

Disclosure-Abgleich

Passt die Datenschutzerklärung zur beobachteten Technik?

Disclosure-Abgleich: 1 beobachtete Anbieter, 1 Anbieter ohne klare Erwähnung, 1 fehlende Policy-Bausteine.
Automatischer Textabgleich gegen technische Beobachtungen; Schreibweisen und dynamische Inhalte können manuelle Prüfung erfordern.

Score: 0 · Anbieter erkannt: 1 · Anbieter fehlen: 1 · Policy-Lücken: 1

Lücken

Google Tag Manageranbieter · Tracking-ID · fehltStand / Aktualitätsdatumpflichtbaustein · Datenschutzerklärung · fehlt

Datenschutzhinweis

Welche Disclosure-Signale wurden gesehen?

Disclosure-Signale aus dem Scan.
Der Testresult-Report zeigt hier nur Zähler, beobachtete Signale und Links; redaktionelle Inhalte und Betreiber-Background stehen auf separaten Seiten.

Datenschutzhinweis-Guide öffnen

Scan-Zähler

Datenschutzhinweis-Guide öffnen2 Zwecksignal(e), 2 Datenart(en), 1 Lückenhinweis(e); Entwurfstexte sind ausgelagert.

Cookie-Signale

Keine Cookie-Zeilen für den Entwurf vorhanden.

Drittanbieter-Signale

cdn.consentmanager.netSonstige · Jurisdiktion unklar · mittelcp.berlin-live.deSonstige · EU/EWR · niedriganonym.data.funkedigital.deSonstige · EU/EWR · niedrigb.delivery.consentmanager.netSonstige · Jurisdiktion unklar · mittelc.delivery.consentmanager.netSonstige · Jurisdiktion unklar · mittelGoogle Tag ManagerTag-Manager · Drittland/USA · hoch · datenschutzrelevantscout.data.funkedigital.deSonstige · EU/EWR · niedrigsol.berlin-live.deSonstige · EU/EWR · niedrigspark.cloud.funkedigital.deSonstige · EU/EWR · niedrig

Web-Storage-Signale

Keine Web-Storage-Zeilen für den Entwurf vorhanden.

Cookie-Inventar

Welche Cookies wurden beim ersten Aufruf gesehen?

0 Cookie(s) inventarisiert: 0 Tracking-/Werbe-Cookie(s), 0 Drittanbieter-Cookie(s), 0 langlebige Cookie(s), 0 sehr lange Laufzeit(en). Score: 100 · ohne Secure: 0 · ohne SameSite: 0 · persistent: 0 · langlebiges Tracking: 0 · sehr lang: 0 · Laufzeitrisiko: 0

Betreiber-Guide Cookie-Laufzeiten öffnen

Cookies

Keine Cookies im HTTP- oder Browser-Erstaufruf inventarisiert.

Cookie-Disclosure

Welche Cookie-Signale wurden gesehen?

Cookie-Erklärung mit 0 Eintrag/Einträgen aus Cookies und Web Storage: 0 einwilligungspflichtig, 0 unklassifiziert. Score: 100 · einwilligungspflichtig: 0 · vor Consent: 0 · unklassifiziert: 0
Automatisch aus SaferPage-Cookie- und Web-Storage-Signalen abgeleitet; Kategorien und Zwecke vor Veröffentlichung fachlich prüfen.

Betreiber-Guide Cookie-Erklärung öffnen

Kategorien und Einträge

Keine automatische Cookie-Erklärung aus dem Scan abgeleitet.

Barrierefreiheit & Usability

Sind Basis-Signale für Screenreader und Tastatur erkennbar?

32 Bild(er), 3 Formularfeld(er), 18 Button(s) im passiven HTML-Sample auf Basis-Barrierefreiheit geprüft. Score: 100
0 WCAG-/EAA-Prüfpunkt(e) auffällig, davon 0 mit hoher Auswirkung. Automatisch aus HTML-Signalen abgeleitet; ersetzt keine vollständige manuelle WCAG-/BITV-Prüfung.

Nachweis

Bilder ohne alt0Felder ohne Label0Buttons ohne Namen0HTML langjaH11Viewportja

WCAG/EAA-Prüfpunkte

Alternativtexte für BilderWCAG 1.1.1 Non-text Content · ok · Impact niedrig · 0 von 32 Bild(er) ohne alt-Text im HTML-Sample.Formularfelder beschriftenWCAG 1.3.1 Info and Relationships / 3.3.2 Labels or Instructions · ok · Impact niedrig · 0 von 3 Formularfeld(er) ohne erkennbare Beschriftung.Buttons mit Namen versehenWCAG 4.1.2 Name, Role, Value · ok · Impact niedrig · 0 von 18 Button(s) ohne erkennbaren Namen.Seitensprache auszeichnenWCAG 3.1.1 Language of Page · ok · Impact niedrig · HTML-lang-Attribut gefunden.ÜberschriftenstrukturWCAG 1.3.1 Info and Relationships / 2.4.6 Headings and Labels · ok · Impact niedrig · 1 H1 und 36 Überschrift(en) im HTML-Sample.Mobile Viewport-BasisWCAG 1.4.10 Reflow · ok · Impact niedrig · Viewport-Meta-Tag gefunden.

BFSG/WCAG

Welche Erklärungs-Signale liegen vor?

Barrierefreiheits-Signale aus dem Scan. Status: Vorläufig vollständig konform im automatischen Basischeck
Erklärungstexte und allgemeine Umsetzungshinweise sind ausgelagert.

Betreiber-Guide Barrierefreiheit öffnen

Signale und Link

Barrierefreiheits-Guide öffnen0 bekannte Issue-Signal(e) aus dem Scan.

DSGVO, Cookies & Tracking

Welche Datenschutz-Signale fallen auf?

Consent-Hinweis: nein · Datenschutz-Hinweis: ja · Cookies: 0

Tracking

Keine bekannten Tracking-Scripts erkannt.

Cookies

Keine Set-Cookie-Header erkannt.

Seiteninhalt & Keywords

Worum geht es auf der Seite?

BERLIN LIVE - Nachrichten für Berlin - Berlin-live.de
Aktuelle Nachrichten aus Berlin, Brandenburg, Deutschland und der Welt! Außerdem News über ✓ S-Bahn ✓ BVG ✓ BER ✓ Polizei ► Jetzt mehr erfahren!

berlin15open10dropdown10menu10nachrichten8rock7ring7deutschland5

Technologie-Erkennung

Womit wurde die Seite gebaut?

Server: nginx · Powered-by: WordPress VIP <https://wpvip.com> · Generator: WordPress 6.9.4

Google Tag ManagerAnalyticsWordPress VIP <https://wpvip.com>BackendWordPressCMSjQueryLibrarynginxServer

CVE & Versionsrisiko

Gibt es Hinweise auf bekannte Schwachstellen?

Keine Treffer in der konfigurierten Advisory-Quelle. Erkannte Versionen: 1 · Advisory-Treffer: 0 · Versionsregeln: 0

WordPress6.9.4

Impressum & Betreibertransparenz

Sind rechtliche Hinweise erkennbar?

Impressum: ja · Datenschutz: ja · Ablehnen-Option: nein

Cookie-Hinweis ohne klare Ablehnen-Optionwarning

Performance / PageSpeed-Basis

Wirkt die Seite schnell und mobil nutzbar?

Score: 94 · Antwortzeit: 134 ms · HTML: 0 Bytes · Viewport: ja

Viele potenziell blockierende Assetsinfo

Infrastruktur & TLS-Vertrauen

DNS-, HTTPS- und E-Mail-Schutzsignale aus dem Scan

IPs: 1 · IPv6: nein · Zertifikat: 60 Tage · HSTS: nein · MX/SPF/DMARC: ja/ja/ja

CAA-Record fehltinfo

Security-Header

Welche Browser-Schutzheader sind gesetzt?

8 von 9 wichtigen Security-Headern vorhanden, 8 korrekt bewertet. CSP wirksam mit 1 Direktive(n), 0 Warnung(en), 2 Hinweis(e). Score: 88 · vorhanden: 8 · fehlen: 1 · prüfen: 0

Betreiber-Guide Security-Header öffnen

Header-Evidence

HSTSfehlt · max-age=31536000; includeSubDomainsContent-Security-Policyok · upgrade-insecure-requests;X-Frame-Optionsok · SAMEORIGINX-Content-Type-Optionsok · nosniffReferrer-Policyok · strict-origin-when-cross-originPermissions-Policyok · accelerometer=(), autoplay=(), camera=(), cross-origin-isolated=(), display-capture=(self), encrypted-media=(), fullscreen=*, geolocation=(self), gyroscope=(), keyboard-map=(), magnetometer=(), microphone=(), midi=(), paCross-Origin-Opener-Policyok · unsafe-noneCross-Origin-Resource-Policyok · cross-originCross-Origin-Embedder-Policyok · unsafe-none; report-to='default'

Security-Header-Guide-Link

Security-Header-Guide öffnen8 vorhanden, 1 fehlen, 0 prüfen.

CSP-Qualität

CSP ohne object-srcinfoCSP ohne base-uriinfo

Skript-Lieferkette

Externe Skript-Lieferkette aus dem gespeicherten Scan

3 externe Skript(e) von 3 Host(s), 3 ohne SRI, 0 Tracking-/Tag-nahe Skript(e). Score: 82 · Hosts: 3 · ohne SRI: 3 · Tracking/Tags: 0

Betreiber-Guide externe Skripte öffnen

Skriptquellen

spark.cloud.funkedigital.deSonstige · spark.cloud.funkedigital.de · SRI fehltstatic.cleverpush.comSonstige · static.cleverpush.com · SRI fehltcdn.parsely.comSonstige · cdn.parsely.com · SRI fehlt

Zusammenhänge & Servernetzwerk

Verbindungs- und Servernetz-Signale aus dem Scan

Ad-/Tracking-IDs: 1 · gleiche-IP-Nachbarn: 1 · bekannte eingehende Links: 2 · Servernetze: 1

Signale

Google Tag ManagerGTM-TLFJ5S2derwesten.de192.0.66.149derwesten.de1 Link(s)ausbildung.funkemedien.de1 Link(s)facebook.com3 Link(s)instagram.com3 Link(s)youtube.com3 Link(s)funkemedien.de2 Link(s)

Servernetz

192.0.66.149IPv4192.0.66.0/24sichtbares Netz

SEO, Verhalten & Cloaking

Gibt es manipulative Signale?

SEO-Risiko: high · Browser-Verhalten: low · Cloaking: low

Versteckter Text erkanntwarningCanonical zeigt auf fremde DomainwarningSehr viele externe Links erkanntwarning

Alle Hinweise

Versteckter Text erkannt Wichtig für Nutzer Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Kein sichtbarer Ablehnen-Button im Banner Wichtig für Nutzer Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Cookie-Hinweis ohne klare Ablehnen-Option Wichtig für Nutzer Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Google Consent Mode Default nicht erkannt Wichtig für Nutzer Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Tracking-Pixel oder pixelnahe Requests erkannt Wichtig für Nutzer Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Seiten-URL wird in Drittanbieter-Requests übertragen Wichtig für Nutzer Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Dateneingabe und datenschutzrelevante Drittanbieter im selben Browseraufruf Wichtig für Nutzer Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Canonical zeigt auf fremde Domain Wichtig für Nutzer Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Datenschutzrelevante Kontakte trotz GPC-Signal Wichtig für Nutzer Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Beacon-/Keepalive-Telemetrie erkannt Wichtig für Nutzer Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Erkannte Anbieter fehlen in der Datenschutzerklärung Wichtig für Nutzer Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Sehr viele externe Links erkannt Wichtig für Nutzer Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Consent-Zustand: GPC mit Tracking-Hinweisen Wichtig für Nutzer Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Viele Tastatur-/Eingabe-Listener im Browser erkannt Wichtig für Nutzer Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Stand der Datenschutzerklärung nicht klar erkennbar Wichtig für Nutzer Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Externe Skripte ohne Subresource Integrity Wichtig für Nutzer Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Viele potenziell blockierende Assets Technischer Hinweis Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Drittland-/US-Anbieter im Browseraufruf prüfen Technischer Hinweis Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Consent-Banner mit Dark-Pattern-/UX-Risiko Technischer Hinweis Scan-Hinweis ohne zusätzliche Detail-Evidence.
Datenschutzrelevante Drittanbieter im Browseraufruf Technischer Hinweis Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Viele Drittanbieter-Domains beim Laden Technischer Hinweis Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Anbieter-Jurisdiktion nicht klar ableitbar Technischer Hinweis Scan-Hinweis ohne zusätzliche Detail-Evidence. Betreiber-Guide öffnen
Scan-Fakten als JSON anzeigen
{
    "schema": "https://saferpage.de/schemas/public-scan-facts.v1",
    "claim_boundary": "Öffentliche Rohdaten enthalten nur Scan-Fakten, Statuswerte, Evidence-Grenzen und feste Detail-/Guide-Links. Betreiber-Guides, Planungen, Checklisten, Code und allgemeine Empfehlungen sind ausgelagert.",
    "host": "berlin-live.de",
    "normalized_url": "https://berlin-live.de/",
    "score": 0,
    "verdict": {
        "color": "red",
        "label": "riskant",
        "score": 0
    },
    "scan_id": "177c03f4-80ea-42d0-be27-7a182b3a31e4",
    "created_at": "2026-06-09 23:56:20.666357+02",
    "evidence": {
        "dns": {
            "ok": true,
            "addresses": [
                "192.0.66.149"
            ],
            "duration_ms": 6
        },
        "tls": {
            "ok": true,
            "cipher": "TLS_AES_256_GCM_SHA384",
            "issuer": [
                [
                    [
                        "countryName",
                        "US"
                    ]
                ],
                [
                    [
                        "organizationName",
                        "Let's Encrypt"
                    ]
                ],
                [
                    [
                        "commonName",
                        "E7"
                    ]
                ]
            ],
            "subject": [
                [
                    [
                        "commonName",
                        "berlin-live.de"
                    ]
                ]
            ],
            "version": "TLSv1.3",
            "not_after": "Aug  9 15:55:47 2026 GMT",
            "hostname_matches": true,
            "days_until_expiry": 60,
            "subject_alt_names": [
                "berlin-live.de",
                "www.berlin-live.de"
            ],
            "issuer_common_name": "E7"
        },
        "http": {
            "ok": true,
            "status": 200,
            "headers": {
                "date": "Tue, 09 Jun 2026 21:56:01 GMT",
                "link": "<https://www.berlin-live.de/>; rel=shortlink",
                "vary": "Accept-Encoding",
                "x-rq": "hhn2 182 249 80",
                "server": "nginx",
                "x-cache": "HIT",
                "x-hacker": "If you're reading this, you should visit https://join.a8c.com/viphacker and apply to join the fun, mention this header.",
                "connection": "close",
                "host-header": "a9130478a60e5f9135f765b23f26593b",
                "content-type": "text/html; charset=UTF-8",
                "x-powered-by": "WordPress VIP <https://wpvip.com>",
                "accept-ranges": "bytes",
                "cache-control": "max-age=300, must-revalidate, stale-while-revalidate=691200",
                "x-distributor": "yes",
                "referrer-policy": "strict-origin-when-cross-origin",
                "x-frame-options": "SAMEORIGIN",
                "transfer-encoding": "chunked",
                "permissions-policy": "accelerometer=(), autoplay=(), camera=(), cross-origin-isolated=(), display-capture=(self), encrypted-media=(), fullscreen=*, geolocation=(self), gyroscope=(), keyboard-map=(), magnetometer=(), microphone=(), midi=(), payment=*, picture-in-picture=(), publickey-credentials-get=(), screen-wake-lock=(), sync-xhr=(), usb=(), xr-spatial-tracking=(), gamepad=(), serial=()",
                "x-content-type-options": "nosniff",
                "content-security-policy": "upgrade-insecure-requests;",
                "x-content-security-policy": "default-src 'self'; img-src *; media-src * data:;",
                "cross-origin-opener-policy": "unsafe-none",
                "access-control-allow-headers": "Content-Type, Authorization",
                "access-control-allow-methods": "GET,POST",
                "cross-origin-embedder-policy": "unsafe-none; report-to='default'",
                "cross-origin-resource-policy": "cross-origin",
                "x-permitted-cross-domain-policies": "none",
                "cross-origin-opener-policy-report-only": "unsafe-none; report-to='default'",
                "cross-origin-embedder-policy-report-only": "unsafe-none; report-to='default'"
            },
            "body_size": 165293,
            "final_url": "https://www.berlin-live.de/",
            "duration_ms": 134
        },
        "scanner": {
            "bot_url": "https://saferpage.de/bot",
            "context": "manual",
            "user_agent": "SaferPageBot/0.2 (+https://saferpage.de/bot; passive website safety check; no attack tests)",
            "default_user_agent": "SaferPageBot/0.2 (+https://saferpage.de/bot; passive website safety check; no attack tests)"
        },
        "domain_records": {
            "mx": true,
            "caa": false,
            "spf": true,
            "dmarc": true,
            "dnssec": false
        },
        "googlebot_http": {
            "ok": true,
            "status": 200,
            "headers": {
                "date": "Tue, 09 Jun 2026 21:56:01 GMT",
                "link": "<https://www.berlin-live.de/>; rel=shortlink",
                "vary": "Accept-Encoding",
                "x-rq": "hhn2 182 249 80",
                "server": "nginx",
                "x-cache": "HIT",
                "x-hacker": "If you're reading this, you should visit https://join.a8c.com/viphacker and apply to join the fun, mention this header.",
                "connection": "close",
                "host-header": "a9130478a60e5f9135f765b23f26593b",
                "content-type": "text/html; charset=UTF-8",
                "x-powered-by": "WordPress VIP <https://wpvip.com>",
                "accept-ranges": "bytes",
                "cache-control": "max-age=300, must-revalidate, stale-while-revalidate=691200",
                "x-distributor": "yes",
                "referrer-policy": "strict-origin-when-cross-origin",
                "x-frame-options": "SAMEORIGIN",
                "transfer-encoding": "chunked",
                "permissions-policy": "accelerometer=(), autoplay=(), camera=(), cross-origin-isolated=(), display-capture=(self), encrypted-media=(), fullscreen=*, geolocation=(self), gyroscope=(), keyboard-map=(), magnetometer=(), microphone=(), midi=(), payment=*, picture-in-picture=(), publickey-credentials-get=(), screen-wake-lock=(), sync-xhr=(), usb=(), xr-spatial-tracking=(), gamepad=(), serial=()",
                "x-content-type-options": "nosniff",
                "content-security-policy": "upgrade-insecure-requests;",
                "x-content-security-policy": "default-src 'self'; img-src *; media-src * data:;",
                "cross-origin-opener-policy": "unsafe-none",
                "access-control-allow-headers": "Content-Type, Authorization",
                "access-control-allow-methods": "GET,POST",
                "cross-origin-embedder-policy": "unsafe-none; report-to='default'",
                "cross-origin-resource-policy": "cross-origin",
                "x-permitted-cross-domain-policies": "none",
                "cross-origin-opener-policy-report-only": "unsafe-none; report-to='default'",
                "cross-origin-embedder-policy-report-only": "unsafe-none; report-to='default'"
            },
            "body_size": 165293,
            "final_url": "https://www.berlin-live.de/",
            "duration_ms": 94
        },
        "ai_search_policy_evidence": {
            "files": [
                {
                    "id": "robots_txt",
                    "url": "https://www.berlin-live.de/robots.txt",
                    "label": "robots.txt",
                    "reason": "",
                    "status": "found",
                    "body_size": 3263,
                    "truncated": false,
                    "body_sha256": "c68f5500db9d97c96eebed622221e56bd29f56c1fdc5ca6c45f4d1e62e02257f",
                    "duration_ms": 35,
                    "http_status": 200,
                    "ai_bot_policy": {
                        "bot_directives": [],
                        "explicit_ai_bots": [],
                        "explicit_ai_bot_count": 0,
                        "wildcard_directive_count": 8,
                        "wildcard_directives_sample": [
                            {
                                "value": "/wp-admin/",
                                "directive": "disallow"
                            },
                            {
                                "value": "/wp-includes/",
                                "directive": "disallow"
                            },
                            {
                                "value": "/wp-json/",
                                "directive": "disallow"
                            },
                            {
                                "value": "/?s=*",
                                "directive": "disallow"
                            },
                            {
                                "value": "/search/*",
                                "directive": "disallow"
                            },
                            {
                                "value": "/*.ece",
                                "directive": "disallow"
                            },
                            {
                                "value": "/wp-admin/admin-ajax.php",
                                "directive": "allow"
                            },
                            {
                                "value": "/wp-content/plugins/fd-newspack-extension/public/assets/fonts",
                                "directive": "disallow"
                            }
                        ]
                    },
                    "relevant_lines": [
                        "User-agent: *",
                        "Disallow: /wp-admin/",
                        "Disallow: /wp-includes/",
                        "Disallow: /wp-json/",
                        "Disallow: /?s=*",
                        "Disallow: /search/*",
                        "Disallow: /*.ece",
                        "Allow: /wp-admin/admin-ajax.php",
                        "Disallow: /wp-content/plugins/fd-newspack-extension/public/assets/fonts",
                        "Sitemap: https://www.berlin-live.de/news-sitemap.xml",
                        "Sitemap: https://www.berlin-live.de/author-sitemap.xml",
                        "Sitemap: https://www.berlin-live.de/category-sitemap.xml",
                        "Sitemap: https://www.berlin-live.de/page-sitemap.xml",
                        "Sitemap: https://www.berlin-live.de/post_tag-sitemap.xml",
                        "User-agent: AddSearchBot",
                        "User-agent: AI2Bot"
                    ]
                },
                {
                    "id": "llms_txt",
                    "url": "https://www.berlin-live.de/llms.txt",
                    "label": "llms.txt",
                    "reason": "http_error",
                    "status": "missing",
                    "body_size": 0,
                    "truncated": false,
                    "body_sha256": "",
                    "duration_ms": 215,
                    "http_status": 404,
                    "relevant_lines": []
                },
                {
                    "id": "ai_txt",
                    "url": "https://www.berlin-live.de/.well-known/ai.txt",
                    "label": "AI Policy",
                    "reason": "http_error",
                    "status": "missing",
                    "body_size": 0,
                    "truncated": false,
                    "body_sha256": "",
                    "duration_ms": 226,
                    "http_status": 404,
                    "relevant_lines": []
                },
                {
                    "id": "ai_policy_txt",
                    "url": "https://www.berlin-live.de/.well-known/ai-policy.txt",
                    "label": "AI Policy",
                    "reason": "http_error",
                    "status": "missing",
                    "body_size": 0,
                    "truncated": false,
                    "body_sha256": "",
                    "duration_ms": 309,
                    "http_status": 404,
                    "relevant_lines": []
                },
                {
                    "id": "ward_txt",
                    "url": "https://www.berlin-live.de/.well-known/ward.txt",
                    "label": "WARD Policy",
                    "reason": "http_error",
                    "status": "missing",
                    "body_size": 0,
                    "truncated": false,
                    "body_sha256": "",
                    "duration_ms": 353,
                    "http_status": 404,
                    "relevant_lines": []
                }
            ],
            "origin": "https://www.berlin-live.de",
            "schema": "https://saferpage.de/schemas/ai-search-policy-evidence.v1",
            "status": "checked",
            "metrics": {
                "file_count": 5,
                "found_file_count": 1,
                "policy_file_count": 0,
                "explicit_ai_bot_count": 0
            },
            "summary": "1 von 5 Policy-Datei(en) gefunden; 0 explizite KI-Bot-Regel(n) in robots.txt.",
            "available": true,
            "guardrails": [
                "Nur feste Same-Origin-Policy-Dateien",
                "Keine Off-Host-Redirects",
                "64-KB-Body-Limit",
                "Öffentlich nur Hash, Status und kurze relevante Zeilen"
            ],
            "known_ai_bots": [
                "GPTBot",
                "ChatGPT-User",
                "Google-Extended",
                "ClaudeBot",
                "PerplexityBot",
                "CCBot"
            ],
            "explicit_ai_bots": [],
            "policy_file_count": 0,
            "llms_ward_policy_status": "not_publicly_verified",
            "robots_ai_policy_status": "generic_robots_policy"
        }
    },
    "findings": [
        {
            "id": "hidden_text",
            "title": "Versteckter Text erkannt",
            "public": true,
            "audience": "nutzer",
            "category": "seo",
            "severity": "warning",
            "user_importance": 128,
            "importance_label": "Wichtig für Nutzer"
        },
        {
            "id": "browser_consent_reject_missing",
            "title": "Kein sichtbarer Ablehnen-Button im Banner",
            "public": true,
            "audience": "nutzer",
            "category": "privacy",
            "severity": "warning",
            "user_importance": 122,
            "importance_label": "Wichtig für Nutzer"
        },
        {
            "id": "consent_no_reject_option",
            "title": "Cookie-Hinweis ohne klare Ablehnen-Option",
            "public": true,
            "audience": "nutzer",
            "category": "privacy",
            "severity": "warning",
            "user_importance": 121,
            "importance_label": "Wichtig für Nutzer"
        },
        {
            "id": "google_consent_mode_missing",
            "title": "Google Consent Mode Default nicht erkannt",
            "public": true,
            "audience": "nutzer",
            "category": "privacy",
            "severity": "warning",
            "user_importance": 120,
            "importance_label": "Wichtig für Nutzer"
        },
        {
            "id": "tracking_pixel_detected",
            "count": 1,
            "title": "Tracking-Pixel oder pixelnahe Requests erkannt",
            "public": true,
            "audience": "nutzer",
            "category": "privacy",
            "severity": "info",
            "user_importance": 119,
            "importance_label": "Wichtig für Nutzer"
        },
        {
            "id": "third_party_page_url_parameter",
            "count": 2,
            "title": "Seiten-URL wird in Drittanbieter-Requests übertragen",
            "public": true,
            "audience": "nutzer",
            "category": "privacy",
            "severity": "warning",
            "user_importance": 118,
            "importance_label": "Wichtig für Nutzer"
        },
        {
            "id": "pii_tracking_on_data_entry_page",
            "title": "Dateneingabe und datenschutzrelevante Drittanbieter im selben Browseraufruf",
            "public": true,
            "audience": "nutzer",
            "category": "privacy",
            "severity": "warning",
            "user_importance": 118,
            "importance_label": "Wichtig für Nutzer",
            "third_party_count": 1
        },
        {
            "id": "external_canonical",
            "title": "Canonical zeigt auf fremde Domain",
            "public": true,
            "audience": "nutzer",
            "category": "seo",
            "severity": "warning",
            "canonical_url": "https://www.berlin-live.de/",
            "user_importance": 118,
            "importance_label": "Wichtig für Nutzer"
        },
        {
            "id": "gpc_privacy_domains_present",
            "count": 1,
            "title": "Datenschutzrelevante Kontakte trotz GPC-Signal",
            "public": true,
            "audience": "nutzer",
            "category": "privacy",
            "severity": "info",
            "user_importance": 116,
            "importance_label": "Wichtig für Nutzer"
        },
        {
            "id": "beacon_api_usage",
            "count": 3,
            "title": "Beacon-/Keepalive-Telemetrie erkannt",
            "public": true,
            "audience": "nutzer",
            "category": "privacy",
            "severity": "warning",
            "user_importance": 116,
            "importance_label": "Wichtig für Nutzer"
        },
        {
            "id": "privacy_policy_provider_disclosure_gap",
            "title": "Erkannte Anbieter fehlen in der Datenschutzerklärung",
            "public": true,
            "audience": "nutzer",
            "category": "privacy",
            "severity": "warning",
            "user_importance": 116,
            "importance_label": "Wichtig für Nutzer",
            "missing_providers": [
                "Google Tag Manager"
            ]
        },
        {
            "id": "external_link_spam",
            "title": "Sehr viele externe Links erkannt",
            "public": true,
            "audience": "nutzer",
            "category": "seo",
            "severity": "warning",
            "user_importance": 116,
            "importance_label": "Wichtig für Nutzer"
        },
        {
            "id": "consent_state_gpc_evidence_review",
            "title": "Consent-Zustand: GPC mit Tracking-Hinweisen",
            "public": true,
            "audience": "nutzer",
            "category": "privacy",
            "severity": "info",
            "user_importance": 112,
            "importance_label": "Wichtig für Nutzer"
        },
        {
            "id": "browser_keystroke_listener_signals",
            "count": 19,
            "title": "Viele Tastatur-/Eingabe-Listener im Browser erkannt",
            "public": true,
            "audience": "nutzer",
            "category": "privacy",
            "severity": "info",
            "user_importance": 110,
            "importance_label": "Wichtig für Nutzer"
        },
        {
            "id": "privacy_policy_update_date_missing",
            "title": "Stand der Datenschutzerklärung nicht klar erkennbar",
            "public": true,
            "audience": "nutzer",
            "category": "privacy",
            "severity": "info",
            "user_importance": 94,
            "importance_label": "Wichtig für Nutzer"
        },
        {
            "id": "external_script_without_sri",
            "count": 3,
            "title": "Externe Skripte ohne Subresource Integrity",
            "public": true,
            "audience": "nutzer",
            "category": "security_headers",
            "severity": "info",
            "user_importance": 84,
            "importance_label": "Wichtig für Nutzer"
        },
        {
            "id": "missing_hsts",
            "title": "HSTS fehlt",
            "public": true,
            "audience": "betreiber",
            "category": "security_headers",
            "severity": "warning",
            "user_importance": 78,
            "importance_label": "Technischer Hinweis"
        },
        {
            "id": "csp_missing_object_src",
            "title": "CSP ohne object-src",
            "public": true,
            "audience": "betreiber",
            "category": "security_headers",
            "severity": "info",
            "user_importance": 76,
            "importance_label": "Technischer Hinweis"
        },
        {
            "id": "csp_missing_base_uri",
            "title": "CSP ohne base-uri",
            "public": true,
            "audience": "betreiber",
            "category": "security_headers",
            "severity": "info",
            "user_importance": 74,
            "importance_label": "Technischer Hinweis"
        },
        {
            "id": "too_many_render_blocking_assets",
            "title": "Viele potenziell blockierende Assets",
            "public": true,
            "audience": "betreiber",
            "category": "performance",
            "severity": "info",
            "user_importance": 74,
            "importance_label": "Technischer Hinweis"
        },
        {
            "id": "third_country_transfer_review",
            "title": "Drittland-/US-Anbieter im Browseraufruf prüfen",
            "public": true,
            "audience": "betreiber",
            "category": "privacy",
            "severity": "warning",
            "user_importance": 60,
            "importance_label": "Technischer Hinweis"
        },
        {
            "id": "consent_banner_dark_pattern_risk",
            "count": 1,
            "title": "Consent-Banner mit Dark-Pattern-/UX-Risiko",
            "public": true,
            "audience": "betreiber",
            "category": "privacy",
            "severity": "warning",
            "user_importance": 60,
            "importance_label": "Technischer Hinweis"
        },
        {
            "id": "browser_privacy_relevant_third_parties",
            "title": "Datenschutzrelevante Drittanbieter im Browseraufruf",
            "public": true,
            "audience": "betreiber",
            "category": "privacy",
            "severity": "info",
            "user_importance": 30,
            "importance_label": "Technischer Hinweis"
        },
        {
            "id": "many_browser_third_parties",
            "title": "Viele Drittanbieter-Domains beim Laden",
            "public": true,
            "audience": "betreiber",
            "category": "privacy",
            "severity": "info",
            "user_importance": 30,
            "importance_label": "Technischer Hinweis"
        },
        {
            "id": "unknown_vendor_jurisdiction",
            "title": "Anbieter-Jurisdiktion nicht klar ableitbar",
            "public": true,
            "audience": "betreiber",
            "category": "privacy",
            "severity": "info",
            "user_importance": 30,
            "importance_label": "Technischer Hinweis"
        }
    ],
    "audit_modules": [
        {
            "id": "browser_evidence",
            "color": "red",
            "score": 36,
            "title": "Browser-Nachweis",
            "source": "Headless Chromium mit Screenshot- und Request-Telemetrie",
            "status": "kritisch",
            "evidence": "46 Request(s), 9 Drittanbieter-Domain(s), davon 1 datenschutzrelevant, 0 Browser-Cookie(s), Transfer-Prüfbedarf: 1, Referrer-/URL-Leaks: 2, Fingerprinting-/Replay-Hinweise: 1."
        },
        {
            "id": "privacy_consent",
            "color": "red",
            "score": 42,
            "title": "Datenschutz, Cookies & Consent",
            "source": "Browser, HTTP-Header, HTML und Consent-/Cookie-Heuristik",
            "status": "kritisch",
            "evidence": "0 Tracking-Script(s), 0 Cookie(s) vor Einwilligung, 0 Tracking-Cookie(s), Ablehnen-Option: nein, Consent-Audit: 42."
        },
        {
            "id": "seo_integrity",
            "color": "red",
            "score": 46,
            "title": "SEO-Integrität & Cloaking",
            "source": "HTML-Inhalt, strukturierte Daten, Links und Googlebot-Vergleich",
            "status": "kritisch",
            "evidence": "3 SEO-Spam-Hinweis(e), 0 Cloaking-Hinweis(e)."
        },
        {
            "id": "google_third_parties",
            "color": "orange",
            "score": 58,
            "title": "Google-Dienste & Drittanbieter",
            "source": "Chromium-Requests, Anbieterklassifikation und Google Consent Mode Heuristik",
            "status": "auffällig",
            "evidence": "Google-Tags: ja, 1 Google-nahe Domain(s), Consent-Default: nein, Analytics: nein, Werbung: nein, Fonts: nein."
        },
        {
            "id": "tracking_pixels_beacons",
            "color": "orange",
            "score": 62,
            "title": "Tracking-Pixel & Beacons",
            "source": "HTML-Pixel, Link-Ping-Attribute, Chromium-Requests und Browser-API-Instrumentierung",
            "status": "auffällig",
            "evidence": "1 Pixel-/Bildtracking-Hinweis(e), 3 Beacon-/Telemetry-Hinweis(e), 0 Link-Ping(s)."
        },
        {
            "id": "referrer_url_leaks",
            "color": "yellow",
            "score": 76,
            "title": "Referrer & URL-Leaks",
            "source": "Chromium-Request-Telemetrie ohne gespeicherte Parameterwerte",
            "status": "prüfen",
            "evidence": "2 Drittanbieter-Domain(s) mit Referrer-/URL-Leak-Prüfbedarf, 0 sensible Query-Kontexte."
        },
        {
            "id": "script_supply_chain",
            "color": "yellow",
            "score": 82,
            "title": "Externe Skripte & SRI",
            "source": "HTML-Script-Tags, Anbieterklassifikation und SRI-Attribute",
            "status": "prüfen",
            "evidence": "3 externe Skript(e) von 3 Host(s), 3 ohne SRI, 0 Tracking-/Tag-nahe Skript(e)."
        },
        {
            "id": "forms_payments",
            "color": "yellow",
            "score": 82,
            "title": "Formulare, Login & Zahlung",
            "source": "HTML-Formulare, Eingabefelder, Zahlungsanbieter und Kontextlinks",
            "status": "prüfen",
            "evidence": "Die Seite kann Kontaktformular, Newsletter abfragen."
        },
        {
            "id": "pii_exposure",
            "color": "yellow",
            "score": 82,
            "title": "PII, URL-Parameter & Datenleck-Schutz",
            "source": "URL-Parameter, interne Links, HTML-Formulare, Browser-Drittanbieter und Dateneingabe-Kontext",
            "status": "prüfen",
            "evidence": "1 PII-/Datenleck-Hinweis(e) aus URL-, Formular- und Browserkontext."
        },
        {
            "id": "security_tls",
            "color": "yellow",
            "score": 82,
            "title": "Sicherheit, TLS & Header",
            "source": "DNS, TLS, HTTP-Status, Zertifikat und Security-Header",
            "status": "prüfen",
            "evidence": "1 Infrastruktur-Hinweis(e), Security-Header: 8/9 vorhanden, 1 fehlen, externe Skript-Hosts: 3."
        },
        {
            "id": "consent_journey",
            "color": "green",
            "score": 92,
            "title": "Consent-Journey-Matrix",
            "source": "Chromium-Zustände: Erstaufruf, Reject, Accept und GPC",
            "status": "unauffällig",
            "evidence": "Consent-Journey: 0 neue Datenschutz-Domain(s) nach Ablehnen, 0 nach Akzeptieren, 1 im GPC-Aufruf."
        },
        {
            "id": "performance_mobile",
            "color": "green",
            "score": 94,
            "title": "Performance & mobile Nutzbarkeit",
            "source": "HTTP-Antwort, HTML-Größe, Komprimierung und mobile Basis",
            "status": "unauffällig",
            "evidence": "Performance-Score 94, Antwortzeit 134 ms."
        },
        {
            "id": "site_coverage",
            "color": "green",
            "score": 95,
            "title": "Seitenabdeckung & Crawl",
            "source": "Startseiten-Links, Compliance-Links und begrenzter interner Zusatzabruf",
            "status": "unauffällig",
            "evidence": "30 interne Linkziele erkannt, 4 priorisierte Unterseite(n) abgerufen."
        },
        {
            "id": "accessibility_usability",
            "color": "green",
            "score": 100,
            "title": "Barrierefreiheit & Usability",
            "source": "Passives HTML-Sample: Bilder, Formulare, Buttons, Sprache, Headings und Viewport",
            "status": "unauffällig",
            "evidence": "0 Bild(er) ohne alt, 0 Formularfeld(er) ohne Beschriftung, 0 Button(s) ohne Namen."
        },
        {
            "id": "cookie_inventory",
            "color": "green",
            "score": 100,
            "title": "Cookie-Inventar",
            "source": "HTTP-Set-Cookie und Chromium-Cookies beim ersten Seitenaufruf",
            "status": "unauffällig",
            "evidence": "0 Cookie(s), 0 Tracking-/Werbe-Cookie(s), 0 Drittanbieter-Cookie(s), 0 langlebig, 0 sehr lang."
        },
        {
            "id": "embedded_content",
            "color": "green",
            "score": 100,
            "title": "Externe Inhalte & Widgets",
            "source": "HTML-Embeds und Chromium-Drittanbieter-Requests",
            "status": "unauffällig",
            "evidence": "0 externe Embed-/Widget-Dienst(e), 0 davon im ersten Browseraufruf geladen."
        },
        {
            "id": "operator_transparency",
            "color": "green",
            "score": 100,
            "title": "Impressum, Kontakt & Datenschutzerklärung",
            "source": "Deutschsprachige Betreiber- und Datenschutzhinweis-Erkennung",
            "status": "unauffällig",
            "evidence": "Impressum: ja, Datenschutz: ja, Kontakt: ja."
        }
    ],
    "ai_search_policy_evidence": {
        "files": [
            {
                "id": "robots_txt",
                "url": "https://www.berlin-live.de/robots.txt",
                "label": "robots.txt",
                "reason": "",
                "status": "found",
                "body_size": 3263,
                "truncated": false,
                "body_sha256": "c68f5500db9d97c96eebed622221e56bd29f56c1fdc5ca6c45f4d1e62e02257f",
                "duration_ms": 35,
                "http_status": 200,
                "ai_bot_policy": {
                    "bot_directives": [],
                    "explicit_ai_bots": [],
                    "explicit_ai_bot_count": 0,
                    "wildcard_directive_count": 8,
                    "wildcard_directives_sample": [
                        {
                            "value": "/wp-admin/",
                            "directive": "disallow"
                        },
                        {
                            "value": "/wp-includes/",
                            "directive": "disallow"
                        },
                        {
                            "value": "/wp-json/",
                            "directive": "disallow"
                        },
                        {
                            "value": "/?s=*",
                            "directive": "disallow"
                        },
                        {
                            "value": "/search/*",
                            "directive": "disallow"
                        },
                        {
                            "value": "/*.ece",
                            "directive": "disallow"
                        },
                        {
                            "value": "/wp-admin/admin-ajax.php",
                            "directive": "allow"
                        },
                        {
                            "value": "/wp-content/plugins/fd-newspack-extension/public/assets/fonts",
                            "directive": "disallow"
                        }
                    ]
                },
                "relevant_lines": [
                    "User-agent: *",
                    "Disallow: /wp-admin/",
                    "Disallow: /wp-includes/",
                    "Disallow: /wp-json/",
                    "Disallow: /?s=*",
                    "Disallow: /search/*",
                    "Disallow: /*.ece",
                    "Allow: /wp-admin/admin-ajax.php",
                    "Disallow: /wp-content/plugins/fd-newspack-extension/public/assets/fonts",
                    "Sitemap: https://www.berlin-live.de/news-sitemap.xml",
                    "Sitemap: https://www.berlin-live.de/author-sitemap.xml",
                    "Sitemap: https://www.berlin-live.de/category-sitemap.xml",
                    "Sitemap: https://www.berlin-live.de/page-sitemap.xml",
                    "Sitemap: https://www.berlin-live.de/post_tag-sitemap.xml",
                    "User-agent: AddSearchBot",
                    "User-agent: AI2Bot"
                ]
            },
            {
                "id": "llms_txt",
                "url": "https://www.berlin-live.de/llms.txt",
                "label": "llms.txt",
                "reason": "http_error",
                "status": "missing",
                "body_size": 0,
                "truncated": false,
                "body_sha256": "",
                "duration_ms": 215,
                "http_status": 404,
                "relevant_lines": []
            },
            {
                "id": "ai_txt",
                "url": "https://www.berlin-live.de/.well-known/ai.txt",
                "label": "AI Policy",
                "reason": "http_error",
                "status": "missing",
                "body_size": 0,
                "truncated": false,
                "body_sha256": "",
                "duration_ms": 226,
                "http_status": 404,
                "relevant_lines": []
            },
            {
                "id": "ai_policy_txt",
                "url": "https://www.berlin-live.de/.well-known/ai-policy.txt",
                "label": "AI Policy",
                "reason": "http_error",
                "status": "missing",
                "body_size": 0,
                "truncated": false,
                "body_sha256": "",
                "duration_ms": 309,
                "http_status": 404,
                "relevant_lines": []
            },
            {
                "id": "ward_txt",
                "url": "https://www.berlin-live.de/.well-known/ward.txt",
                "label": "WARD Policy",
                "reason": "http_error",
                "status": "missing",
                "body_size": 0,
                "truncated": false,
                "body_sha256": "",
                "duration_ms": 353,
                "http_status": 404,
                "relevant_lines": []
            }
        ],
        "origin": "https://www.berlin-live.de",
        "schema": "https://saferpage.de/schemas/ai-search-policy-evidence.v1",
        "status": "checked",
        "metrics": {
            "file_count": 5,
            "found_file_count": 1,
            "policy_file_count": 0,
            "explicit_ai_bot_count": 0
        },
        "summary": "1 von 5 Policy-Datei(en) gefunden; 0 explizite KI-Bot-Regel(n) in robots.txt.",
        "available": true,
        "guardrails": [
            "Nur feste Same-Origin-Policy-Dateien",
            "Keine Off-Host-Redirects",
            "64-KB-Body-Limit",
            "Öffentlich nur Hash, Status und kurze relevante Zeilen"
        ],
        "known_ai_bots": [
            "GPTBot",
            "ChatGPT-User",
            "Google-Extended",
            "ClaudeBot",
            "PerplexityBot",
            "CCBot"
        ],
        "explicit_ai_bots": [],
        "policy_file_count": 0,
        "llms_ward_policy_status": "not_publicly_verified",
        "robots_ai_policy_status": "generic_robots_policy"
    },
    "site_coverage_analysis": {
        "color": "green",
        "pages": [
            {
                "url": "https://www.berlin-live.de/datenschutz",
                "path": "/datenschutz",
                "text": "Datenschutzerklärung",
                "source": "homepage_link",
                "category": "datenschutz",
                "priority": 100
            },
            {
                "url": "https://www.berlin-live.de/impressum",
                "path": "/impressum",
                "text": "Impressum",
                "source": "homepage_link",
                "category": "impressum",
                "priority": 96
            },
            {
                "url": "https://www.berlin-live.de/kontakt",
                "path": "/kontakt",
                "text": "Kontakt",
                "source": "homepage_link",
                "category": "kontakt",
                "priority": 90
            },
            {
                "url": "https://www.berlin-live.de/newsletter",
                "path": "/newsletter",
                "text": "Newsletter",
                "source": "homepage_link",
                "category": "newsletter",
                "priority": 64
            },
            {
                "url": "https://www.berlin-live.de/panorama/rock-am-ring-vorverkauf-tickets-preise-id609636.html",
                "path": "/panorama/rock-am-ring-vorverkauf-tickets-preise-id609636.html",
                "text": "",
                "source": "homepage_link",
                "category": "preise",
                "priority": 58
            },
            {
                "url": "https://www.berlin-live.de/",
                "path": "/",
                "text": "",
                "source": "compliance_fetch+sitemap",
                "category": "unterseite",
                "priority": 30
            },
            {
                "url": "https://www.berlin-live.de/autoren/aaron-tanzmann",
                "path": "/autoren/aaron-tanzmann",
                "text": "",
                "source": "sitemap",
                "category": "unterseite",
                "priority": 24
            },
            {
                "url": "https://www.berlin-live.de/autoren/alexander-kessel",
                "path": "/autoren/alexander-kessel",
                "text": "",
                "source": "sitemap",
                "category": "unterseite",
                "priority": 24
            },
            {
                "url": "https://www.berlin-live.de/autoren/alexander-riechelmann",
                "path": "/autoren/alexander-riechelmann",
                "text": "",
                "source": "sitemap",
                "category": "unterseite",
                "priority": 24
            },
            {
                "url": "https://www.berlin-live.de/autoren/alina-brueckner",
                "path": "/autoren/alina-brueckner",
                "text": "",
                "source": "sitemap",
                "category": "unterseite",
                "priority": 24
            },
            {
                "url": "https://www.berlin-live.de/autoren/ann-kathrin-ullrich",
                "path": "/autoren/ann-kathrin-ullrich",
                "text": "",
                "source": "sitemap",
                "category": "unterseite",
                "priority": 24
            },
            {
                "url": "https://www.berlin-live.de/autoren/anouschka-hamp",
                "path": "/autoren/anouschka-hamp",
                "text": "",
                "source": "sitemap",
                "category": "unterseite",
                "priority": 24
            }
        ],
        "score": 95,
        "status": "unauffällig",
        "summary": "30 interne Linkziele erkannt (111 aus Sitemap), 4 priorisierte Unterseite(n) zusätzlich abgerufen.",
        "findings": [
            {
                "id": "privacy_policy_update_date_missing",
                "title": "Stand der Datenschutzerklärung nicht klar erkennbar",
                "public": true,
                "category": "privacy",
                "severity": "info"
            },
            {
                "id": "privacy_policy_provider_disclosure_gap",
                "title": "Erkannte Anbieter fehlen in der Datenschutzerklärung",
                "public": true,
                "category": "privacy",
                "severity": "warning",
                "missing_providers": [
                    "Google Tag Manager"
                ]
            }
        ],
        "categories": {
            "preise": 1,
            "kontakt": 1,
            "impressum": 1,
            "newsletter": 1,
            "unterseite": 25,
            "datenschutz": 1
        },
        "sample_limit": 4,
        "sampled_count": 4,
        "sampled_pages": [
            {
                "ok": true,
                "url": "https://www.berlin-live.de/datenschutz",
                "path": "/datenschutz",
                "audit": {
                    "form_count": 2,
                    "finding_ids": [
                        "consent_no_reject_option"
                    ],
                    "cookie_count": 0,
                    "imprint_found": true,
                    "consent_hint_found": true,
                    "reject_option_found": false,
                    "privacy_policy_found": true,
                    "tracking_script_count": 0,
                    "pre_consent_cookie_count": 0,
                    "pre_consent_tracking_cookie_count": 0
                },
                "forms": 2,
                "title": "Datenschutzerklärung - Alle Informationen | Berlin-live.de",
                "status": 200,
                "category": "datenschutz",
                "duration_ms": 53,
                "privacy_hint": true,
                "privacy_policy_audit": {
                    "url": "https://www.berlin-live.de/datenschutz",
                    "color": "green",
                    "found": [
                        "Verantwortlicher / Anbieter",
                        "Kontakt / Datenschutzkontakt",
                        "Zwecke der Verarbeitung",
                        "Rechtsgrundlagen",
                        "Betroffenenrechte",
                        "Speicherfrist / Löschung",
                        "Empfänger / Auftragsverarbeiter",
                        "Cookies / Tracking",
                        "Widerruf / Opt-out",
                        "Beschwerde bei Aufsichtsbehörde",
                        "Drittlandtransfer",
                        "Datenschutzkontakt / DPO-Hinweis",
                        "Verständliche Satzlänge"
                    ],
                    "score": 93,
                    "checks": [
                        {
                            "id": "controller_identity",
                            "found": true,
                            "label": "Verantwortlicher / Anbieter"
                        },
                        {
                            "id": "contact",
                            "found": true,
                            "label": "Kontakt / Datenschutzkontakt"
                        },
                        {
                            "id": "purposes",
                            "found": true,
                            "label": "Zwecke der Verarbeitung"
                        },
                        {
                            "id": "legal_basis",
                            "found": true,
                            "label": "Rechtsgrundlagen"
                        },
                        {
                            "id": "rights",
                            "found": true,
                            "label": "Betroffenenrechte"
                        },
                        {
                            "id": "retention",
                            "found": true,
                            "label": "Speicherfrist / Löschung"
                        },
                        {
                            "id": "recipients",
                            "found": true,
                            "label": "Empfänger / Auftragsverarbeiter"
                        },
                        {
                            "id": "cookies_tracking",
                            "found": true,
                            "label": "Cookies / Tracking"
                        },
                        {
                            "id": "withdrawal",
                            "found": true,
                            "label": "Widerruf / Opt-out"
                        },
                        {
                            "id": "complaint_authority",
                            "found": true,
                            "label": "Beschwerde bei Aufsichtsbehörde"
                        },
                        {
                            "id": "third_country_transfer",
                            "found": true,
                            "label": "Drittlandtransfer"
                        },
                        {
                            "id": "update_date",
                            "found": false,
                            "label": "Stand / Aktualitätsdatum",
                            "detail": ""
                        },
                        {
                            "id": "dpo_contact",
                            "found": true,
                            "label": "Datenschutzkontakt / DPO-Hinweis"
                        },
                        {
                            "id": "readability",
                            "found": true,
                            "label": "Verständliche Satzlänge",
                            "detail": "10.7 Wörter/Satz"
                        }
                    ],
                    "status": "unauffällig",
                    "missing": [
                        "Stand / Aktualitätsdatum"
                    ],
                    "summary": "13 von 14 zentralen Datenschutz-Bausteinen erkannt.",
                    "findings": [
                        {
                            "id": "privacy_policy_update_date_missing",
                            "title": "Stand der Datenschutzerklärung nicht klar erkennbar",
                            "public": true,
                            "category": "privacy",
                            "severity": "info"
                        }
                    ],
                    "available": true,
                    "freshness": {
                        "stale": false,
                        "age_days": null,
                        "last_updated": "",
                        "update_date_found": false
                    },
                    "word_count": 5616,
                    "readability": {
                        "hard_to_read": false,
                        "sentence_count": 525,
                        "avg_sentence_words": 10.7
                    },
                    "missing_count": 1,
                    "dpo_contact_found": true
                }
            },
            {
                "ok": true,
                "url": "https://www.berlin-live.de/impressum",
                "path": "/impressum",
                "audit": {
                    "form_count": 2,
                    "finding_ids": [
                        "privacy_policy_too_thin"
                    ],
                    "cookie_count": 0,
                    "imprint_found": true,
                    "consent_hint_found": false,
                    "reject_option_found": false,
                    "privacy_policy_found": true,
                    "tracking_script_count": 0,
                    "pre_consent_cookie_count": 0,
                    "pre_consent_tracking_cookie_count": 0
                },
                "forms": 2,
                "title": "Impressum - Alle Informationen | Berlin-Live.de - Berlin-live.de",
                "status": 200,
                "category": "impressum",
                "duration_ms": 59,
                "privacy_hint": true,
                "privacy_policy_audit": []
            },
            {
                "ok": true,
                "url": "https://www.berlin-live.de/kontakt",
                "path": "/kontakt",
                "audit": {
                    "form_count": 2,
                    "finding_ids": [
                        "operator_identity_unclear",
                        "privacy_policy_too_thin"
                    ],
                    "cookie_count": 0,
                    "imprint_found": true,
                    "consent_hint_found": false,
                    "reject_option_found": false,
                    "privacy_policy_found": true,
                    "tracking_script_count": 0,
                    "pre_consent_cookie_count": 0,
                    "pre_consent_tracking_cookie_count": 0
                },
                "forms": 2,
                "title": "Kontakt – Unsere Kontaktdaten | Berlin-live.de",
                "status": 200,
                "category": "kontakt",
                "duration_ms": 49,
                "privacy_hint": true,
                "privacy_policy_audit": []
            },
            {
                "ok": true,
                "url": "https://www.berlin-live.de/newsletter",
                "path": "/newsletter",
                "audit": {
                    "form_count": 3,
                    "finding_ids": [
                        "operator_identity_unclear",
                        "privacy_policy_too_thin"
                    ],
                    "cookie_count": 0,
                    "imprint_found": true,
                    "consent_hint_found": false,
                    "reject_option_found": false,
                    "privacy_policy_found": true,
                    "tracking_script_count": 0,
                    "pre_consent_cookie_count": 0,
                    "pre_consent_tracking_cookie_count": 0
                },
                "forms": 3,
                "title": "Verkehrs.Kompass in deinem Postfach - Berlin-live.de",
                "status": 200,
                "category": "newsletter",
                "duration_ms": 34,
                "privacy_hint": true,
                "privacy_policy_audit": []
            }
        ],
        "sitemap_sources": [
            "https://www.berlin-live.de/news-sitemap.xml",
            "https://www.berlin-live.de/author-sitemap.xml",
            "https://www.berlin-live.de/category-sitemap.xml",
            "https://www.berlin-live.de/page-sitemap.xml",
            "https://www.berlin-live.de/post_tag-sitemap.xml"
        ],
        "sitemap_available": true,
        "sitemap_url_count": 111,
        "homepage_link_count": 147,
        "internal_link_count": 30,
        "privacy_policy_audit": {
            "url": "https://www.berlin-live.de/datenschutz",
            "color": "green",
            "found": [
                "Verantwortlicher / Anbieter",
                "Kontakt / Datenschutzkontakt",
                "Zwecke der Verarbeitung",
                "Rechtsgrundlagen",
                "Betroffenenrechte",
                "Speicherfrist / Löschung",
                "Empfänger / Auftragsverarbeiter",
                "Cookies / Tracking",
                "Widerruf / Opt-out",
                "Beschwerde bei Aufsichtsbehörde",
                "Drittlandtransfer",
                "Datenschutzkontakt / DPO-Hinweis",
                "Verständliche Satzlänge"
            ],
            "score": 93,
            "checks": [
                {
                    "id": "controller_identity",
                    "found": true,
                    "label": "Verantwortlicher / Anbieter"
                },
                {
                    "id": "contact",
                    "found": true,
                    "label": "Kontakt / Datenschutzkontakt"
                },
                {
                    "id": "purposes",
                    "found": true,
                    "label": "Zwecke der Verarbeitung"
                },
                {
                    "id": "legal_basis",
                    "found": true,
                    "label": "Rechtsgrundlagen"
                },
                {
                    "id": "rights",
                    "found": true,
                    "label": "Betroffenenrechte"
                },
                {
                    "id": "retention",
                    "found": true,
                    "label": "Speicherfrist / Löschung"
                },
                {
                    "id": "recipients",
                    "found": true,
                    "label": "Empfänger / Auftragsverarbeiter"
                },
                {
                    "id": "cookies_tracking",
                    "found": true,
                    "label": "Cookies / Tracking"
                },
                {
                    "id": "withdrawal",
                    "found": true,
                    "label": "Widerruf / Opt-out"
                },
                {
                    "id": "complaint_authority",
                    "found": true,
                    "label": "Beschwerde bei Aufsichtsbehörde"
                },
                {
                    "id": "third_country_transfer",
                    "found": true,
                    "label": "Drittlandtransfer"
                },
                {
                    "id": "update_date",
                    "found": false,
                    "label": "Stand / Aktualitätsdatum",
                    "detail": ""
                },
                {
                    "id": "dpo_contact",
                    "found": true,
                    "label": "Datenschutzkontakt / DPO-Hinweis"
                },
                {
                    "id": "readability",
                    "found": true,
                    "label": "Verständliche Satzlänge",
                    "detail": "10.7 Wörter/Satz"
                }
            ],
            "status": "unauffällig",
            "missing": [
                "Stand / Aktualitätsdatum"
            ],
            "summary": "13 von 14 zentralen Datenschutz-Bausteinen erkannt.",
            "findings": [
                {
                    "id": "privacy_policy_update_date_missing",
                    "title": "Stand der Datenschutzerklärung nicht klar erkennbar",
                    "public": true,
                    "category": "privacy",
                    "severity": "info"
                }
            ],
            "available": true,
            "freshness": {
                "stale": false,
                "age_days": null,
                "last_updated": "",
                "update_date_found": false
            },
            "word_count": 5616,
            "readability": {
                "hard_to_read": false,
                "sentence_count": 525,
                "avg_sentence_words": 10.7
            },
            "missing_count": 1,
            "dpo_contact_found": true
        },
        "sitemap_source_count": 5,
        "provider_disclosure_audit": {
            "color": "red",
            "found": [],
            "score": 0,
            "checks": [
                {
                    "id": "tag_manager_google_tag_manager",
                    "found": false,
                    "category": "tag_manager",
                    "evidence": [
                        "GTM-TLFJ5S2",
                        "googletagmanager.com"
                    ],
                    "keywords": [
                        "google tag manager",
                        "tag manager",
                        "googletagmanager",
                        "gtm-"
                    ],
                    "provider": "Google Tag Manager",
                    "category_label": "Tracking-ID"
                }
            ],
            "status": "kritisch",
            "missing": [
                "Google Tag Manager"
            ],
            "summary": "0 von 1 technisch erkannten Anbieter(n) wurden in der Datenschutzerklärung erwähnt.",
            "available": true,
            "missing_count": 1,
            "detected_count": 1,
            "mentioned_count": 0
        },
        "important_categories_found": [
            "datenschutz",
            "impressum",
            "kontakt"
        ],
        "sampled_tracking_page_count": 0,
        "sampled_form_privacy_gap_count": 0
    },
    "page_analysis": {
        "h1": [
            "<a href=\"https://www.berlin-live.de/\" rel=\"home\">Berlin-live.de</a>"
        ],
        "h2": [
            "<a href=\"https://www.berlin-live.de/politik/merz-spd-infrastrukturgesetz-kritik-id609669.html\" rel=\"bookmark\">Koalitionskrach um Milliarden: Merz geht auf SPD los – „Meine Geduld ist am Ende“</a>",
            "<a href=\"https://www.berlin-live.de/panorama/verbraucher/tankrabatt-ende-juni-befristung-id609666.html\" rel=\"bookmark\">Ab Juli wird Tanken wieder teurer: Tankrabatt läuft aus</a>",
            "<a href=\"https://www.berlin-live.de/panorama/klingbeil-fussball-wm-usa-trump-haltung-id609663.html\" rel=\"bookmark\">Vizekanzler Klingbeil will Sieg über Trumps USA – „Das ist eine Haltung“</a>",
            "<a href=\"https://www.berlin-live.de/panorama/borussia-dortmund-bvb-schlotterbeck-real-madrid-clone-id609660.html\" rel=\"bookmark\">Schlotterbeck-Alarm beim BVB! Top-Klub bereitet Angebot vor</a>",
            "<a href=\"/sport\">Sport</a>",
            "<a href=\"https://www.berlin-live.de/sport/fussball/deutschland-wm-2026-turniermannschaft-mythos-id609639.html\" rel=\"bookmark\">Mythos Turniermannschaft: Das steckt wirklich hinter Deutschlands WM-Ruf</a>",
            "<a href=\"https://www.berlin-live.de/sport/fussball/wm-2026-trump-usa-fifa-visum-infantino-id609624.html\" rel=\"bookmark\">Friedenspreisträger Trump? Ausgrenzungs-Show bei WM 2026 führt FIFA-Titel endgültig ad absurdum</a>",
            "<a href=\"https://www.berlin-live.de/sport/fussball/wm-2026-niederlande-timber-verletzung-id609597.html\" rel=\"bookmark\">Traum geplatzt! Oranje-Star verpasst WM verletzungsbedingt</a>",
            "<a href=\"/panorama/verbraucher\">Verbraucher</a>",
            "<a href=\"https://www.berlin-live.de/panorama/verbraucher/edeka-lidl-test-olivenoel-pestizide-id609651.html\" rel=\"bookmark\">Premium-Olivenöle fallen reihenweise durch – Augen auf bei Edeka, Lidl und Co.</a>"
        ],
        "title": "BERLIN LIVE - Nachrichten für Berlin - Berlin-live.de",
        "keywords": [
            [
                "berlin",
                15
            ],
            [
                "open",
                10
            ],
            [
                "dropdown",
                10
            ],
            [
                "menu",
                10
            ],
            [
                "nachrichten",
                8
            ],
            [
                "rock",
                7
            ],
            [
                "ring",
                7
            ],
            [
                "deutschland",
                5
            ],
            [
                "suche",
                5
            ],
            [
                "trump",
                5
            ]
        ],
        "language": "de",
        "description": "Aktuelle Nachrichten aus Berlin, Brandenburg, Deutschland und der Welt! Außerdem News über ✓ S-Bahn ✓ BVG ✓ BER ✓ Polizei ► Jetzt mehr erfahren!",
        "favicon_url": "https://www.berlin-live.de/wp-content/uploads/sites/10/2023/01/cropped-Favicon-Berlin-live-310x310-1.png?w=180",
        "link_counts": {
            "external": 25,
            "internal": 122
        },
        "preview_image": "/cache/screenshots/berlin-live.de-160x150-42d9a49b730cde3554.png",
        "screenshot_url": "/cache/screenshots/berlin-live.de-160x150-42d9a49b730cde3554.png",
        "external_scripts": [
            "https://spark.cloud.funkedigital.de/spark2.js",
            "https://static.cleverpush.com/channel/loader/izRpNsNDmHYTgd5sD.js?ver=1.9.8",
            "https://cdn.parsely.com/keys/berlin-live.de/p.js?ver=3.23.3"
        ],
        "browser_final_url": "https://www.berlin-live.de/",
        "meta_preview_image": "https://www.berlin-live.de/wp-content/uploads/sites/10/2023/07/berlin-live-logo-rgb-300ppi-gradient.png",
        "screenshot_renderer": "playwright-chromium",
        "external_link_targets": [
            {
                "host": "facebook.com",
                "count": 3,
                "examples": [
                    {
                        "href": "https://www.facebook.com/people/BerlinLive/100093479534267",
                        "text": "Facebook Page"
                    },
                    {
                        "href": "https://www.facebook.com/people/BerlinLive/100093479534267",
                        "text": "Facebook Page"
                    },
                    {
                        "href": "https://www.facebook.com/people/BerlinLive/100093479534267",
                        "text": "Facebook Page"
                    }
                ],
                "nofollow": 0,
                "strength": "strong",
                "follow_count": 3
            },
            {
                "host": "instagram.com",
                "count": 3,
                "examples": [
                    {
                        "href": "https://instagram.com/berlinlive.de",
                        "text": "Instagram"
                    },
                    {
                        "href": "https://instagram.com/berlinlive.de",
                        "text": "Instagram"
                    },
                    {
                        "href": "https://instagram.com/berlinlive.de",
                        "text": "Instagram"
                    }
                ],
                "nofollow": 0,
                "strength": "strong",
                "follow_count": 3
            },
            {
                "host": "youtube.com",
                "count": 3,
                "examples": [
                    {
                        "href": "https://www.youtube.com/@BerlinLive030/videos",
                        "text": "Youtube"
                    },
                    {
                        "href": "https://www.youtube.com/@BerlinLive030/videos",
                        "text": "Youtube"
                    },
                    {
                        "href": "https://www.youtube.com/@BerlinLive030/videos",
                        "text": "Youtube"
                    }
                ],
                "nofollow": 0,
                "strength": "strong",
                "follow_count": 3
            },
            {
                "host": "funkemedien.de",
                "count": 2,
                "examples": [
                    {
                        "href": "https://www.funkemedien.de/de/",
                        "text": "FUNKE"
                    },
                    {
                        "href": "https://www.funkemedien.de/de/",
                        "text": ""
                    }
                ],
                "nofollow": 0,
                "strength": "strong",
                "follow_count": 2
            },
            {
                "host": "schlager.de",
                "count": 2,
                "examples": [
                    {
                        "href": "https://www.schlager.de/",
                        "text": "Schlager.de"
                    },
                    {
                        "href": "https://www.schlager.de/",
                        "text": "Schlager.de – Exklusive Schlager-News"
                    }
                ],
                "nofollow": 0,
                "strength": "strong",
                "follow_count": 2
            },
            {
                "host": "4p.de",
                "count": 1,
                "examples": [
                    {
                        "href": "https://www.4p.de",
                        "text": "4P"
                    }
                ],
                "nofollow": 0,
                "strength": "weak",
                "follow_count": 1
            },
            {
                "host": "derwesten.de",
                "count": 1,
                "examples": [
                    {
                        "href": "https://www.derwesten.de/",
                        "text": "DerWesten.de – Nachrichten für den Westen"
                    }
                ],
                "nofollow": 0,
                "strength": "strong",
                "follow_count": 1
            },
            {
                "host": "einfachschoen.me",
                "count": 1,
                "examples": [
                    {
                        "href": "https://www.einfachschoen.me/",
                        "text": "einfachschoen.me"
                    }
                ],
                "nofollow": 0,
                "strength": "strong",
                "follow_count": 1
            },
            {
                "host": "futurezone.de",
                "count": 1,
                "examples": [
                    {
                        "href": "https://www.futurezone.de/",
                        "text": "futurezone.de"
                    }
                ],
                "nofollow": 0,
                "strength": "strong",
                "follow_count": 1
            },
            {
                "host": "genialetricks.de",
                "count": 1,
                "examples": [
                    {
                        "href": "https://www.genialetricks.de/",
                        "text": "genialetricks.de"
                    }
                ],
                "nofollow": 0,
                "strength": "strong",
                "follow_count": 1
            },
            {
                "host": "kennstdueinen.de",
                "count": 1,
                "examples": [
                    {
                        "href": "https://www.kennstdueinen.de/?utm_source=berlin-live.de&utm_medium=footer&utm_campaign=funke_kooperation_2025",
                        "text": "KennstDuEinen – Dienstleister in deiner Nähe"
                    }
                ],
                "nofollow": 0,
                "strength": "strong",
                "follow_count": 1
            },
            {
                "host": "kitchenstories.com",
                "count": 1,
                "examples": [
                    {
                        "href": "https://www.kitchenstories.com/de",
                        "text": "Kitchen Stories"
                    }
                ],
                "nofollow": 0,
                "strength": "strong",
                "follow_count": 1
            },
            {
                "host": "leckerschmecker.me",
                "count": 1,
                "examples": [
                    {
                        "href": "https://www.leckerschmecker.me/",
                        "text": "Leckerschmecker"
                    }
                ],
                "nofollow": 0,
                "strength": "strong",
                "follow_count": 1
            },
            {
                "host": "moin.de",
                "count": 1,
                "examples": [
                    {
                        "href": "https://www.moin.de/",
                        "text": "Moin.de – Nachrichten für Hamburg und den Norden"
                    }
                ],
                "nofollow": 0,
                "strength": "strong",
                "follow_count": 1
            },
            {
                "host": "news38.de",
                "count": 1,
                "examples": [
                    {
                        "href": "https://www.news38.de/",
                        "text": "News38.de – Nachrichten für Niedersachsen"
                    }
                ],
                "nofollow": 0,
                "strength": "strong",
                "follow_count": 1
            },
            {
                "host": "thueringen24.de",
                "count": 1,
                "examples": [
                    {
                        "href": "https://www.thueringen24.de/",
                        "text": "Thüringen24.de – Nachrichten für Thüringen"
                    }
                ],
                "nofollow": 0,
                "strength": "strong",
                "follow_count": 1
            },
            {
                "host": "wmn.de",
                "count": 1,
                "examples": [
                    {
                        "href": "https://www.wmn.de",
                        "text": "wmn.de"
                    }
                ],
                "nofollow": 0,
                "strength": "weak",
                "follow_count": 1
            }
        ]
    },
    "browser_analysis": {
        "cookies": {
            "items": [],
            "total": 0,
            "third_party": 0
        },
        "storage": {
            "total": 0,
            "local_storage_keys": [],
            "tracking_key_hints": [],
            "local_storage_total": 0,
            "session_storage_keys": [],
            "session_storage_total": 0
        },
        "findings": [
            {
                "id": "browser_privacy_relevant_third_parties",
                "title": "Datenschutzrelevante Drittanbieter im Browseraufruf",
                "public": true,
                "category": "privacy",
                "severity": "info"
            },
            {
                "id": "browser_consent_reject_missing",
                "title": "Kein sichtbarer Ablehnen-Button im Banner",
                "public": true,
                "category": "privacy",
                "severity": "warning"
            },
            {
                "id": "gpc_privacy_domains_present",
                "count": 1,
                "title": "Datenschutzrelevante Kontakte trotz GPC-Signal",
                "public": true,
                "category": "privacy",
                "severity": "info"
            },
            {
                "id": "many_browser_third_parties",
                "title": "Viele Drittanbieter-Domains beim Laden",
                "public": true,
                "category": "privacy",
                "severity": "info"
            },
            {
                "id": "third_country_transfer_review",
                "title": "Drittland-/US-Anbieter im Browseraufruf prüfen",
                "public": true,
                "category": "privacy",
                "severity": "warning"
            },
            {
                "id": "unknown_vendor_jurisdiction",
                "title": "Anbieter-Jurisdiktion nicht klar ableitbar",
                "public": true,
                "category": "privacy",
                "severity": "info"
            },
            {
                "id": "third_party_page_url_parameter",
                "count": 2,
                "title": "Seiten-URL wird in Drittanbieter-Requests übertragen",
                "public": true,
                "category": "privacy",
                "severity": "warning"
            },
            {
                "id": "browser_keystroke_listener_signals",
                "count": 19,
                "title": "Viele Tastatur-/Eingabe-Listener im Browser erkannt",
                "public": true,
                "category": "privacy",
                "severity": "info"
            },
            {
                "id": "consent_state_gpc_evidence_review",
                "title": "Consent-Zustand: GPC mit Tracking-Hinweisen",
                "public": true,
                "category": "privacy",
                "severity": "info"
            },
            {
                "id": "tracking_pixel_detected",
                "count": 1,
                "title": "Tracking-Pixel oder pixelnahe Requests erkannt",
                "public": true,
                "category": "privacy",
                "severity": "info"
            },
            {
                "id": "beacon_api_usage",
                "count": 3,
                "title": "Beacon-/Keepalive-Telemetrie erkannt",
                "public": true,
                "category": "privacy",
                "severity": "warning"
            }
        ],
        "renderer": "playwright-chromium",
        "final_url": "https://www.berlin-live.de/",
        "consent_ui": {
            "accept_controls": [
                {
                    "tag": "a",
                    "top": 388,
                    "area": 12385,
                    "left": 134,
                    "text": "Accept all",
                    "color": "rgb(255, 255, 255)",
                    "width": 334,
                    "height": 37,
                    "background": "rgb(0, 0, 0)",
                    "font_weight": "700"
                }
            ],
            "accept_max_area": 12385,
            "reject_controls": [],
            "reject_max_area": 0,
            "settings_controls": [
                {
                    "tag": "a",
                    "top": 689,
                    "area": 3692,
                    "left": 291,
                    "text": "Customize your choice",
                    "color": "rgb(158, 158, 158)",
                    "width": 158,
                    "height": 23,
                    "background": "rgba(0, 0, 0, 0)",
                    "font_weight": "400"
                }
            ],
            "first_layer_summary": "Akzeptieren 1 / Ablehnen 0 / Einstellungen 1",
            "cookie_context_found": true,
            "reject_less_prominent": false,
            "visible_control_count": 24,
            "reject_prominence_ratio": 0
        },
        "gpc_signal": {
            "error": "",
            "enabled": true,
            "storage": {
                "total": 0,
                "tracking_key_hints": [],
                "local_storage_total": 0,
                "session_storage_total": 0
            },
            "cookie_count": 0,
            "request_count": 46,
            "sec_gpc_header": true,
            "navigator_value": true,
            "contacted_domains": [
                {
                    "host": "berlin-live.de",
                    "count": 27,
                    "category": "other",
                    "provider": "berlin-live.de",
                    "third_party": false,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "font": 4,
                        "image": 18,
                        "document": 1,
                        "stylesheet": 4
                    }
                },
                {
                    "host": "cdn.consentmanager.net",
                    "count": 6,
                    "category": "other",
                    "provider": "cdn.consentmanager.net",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "image": 3,
                        "script": 2,
                        "document": 1
                    }
                },
                {
                    "host": "cp.berlin-live.de",
                    "count": 6,
                    "category": "other",
                    "provider": "cp.berlin-live.de",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "fetch": 3,
                        "script": 3
                    }
                },
                {
                    "host": "anonym.data.funkedigital.de",
                    "count": 1,
                    "category": "other",
                    "provider": "anonym.data.funkedigital.de",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "fetch": 1
                    }
                },
                {
                    "host": "b.delivery.consentmanager.net",
                    "count": 1,
                    "category": "other",
                    "provider": "b.delivery.consentmanager.net",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "script": 1
                    }
                },
                {
                    "host": "c.delivery.consentmanager.net",
                    "count": 1,
                    "category": "other",
                    "provider": "c.delivery.consentmanager.net",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "image": 1
                    }
                },
                {
                    "host": "googletagmanager.com",
                    "count": 1,
                    "category": "tag_manager",
                    "provider": "Google Tag Manager",
                    "third_party": true,
                    "category_label": "Tag-Manager",
                    "resource_types": {
                        "script": 1
                    }
                },
                {
                    "host": "scout.data.funkedigital.de",
                    "count": 1,
                    "category": "other",
                    "provider": "scout.data.funkedigital.de",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "script": 1
                    }
                },
                {
                    "host": "sol.berlin-live.de",
                    "count": 1,
                    "category": "other",
                    "provider": "sol.berlin-live.de",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "script": 1
                    }
                },
                {
                    "host": "spark.cloud.funkedigital.de",
                    "count": 1,
                    "category": "other",
                    "provider": "spark.cloud.funkedigital.de",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "script": 1
                    }
                }
            ],
            "contacted_domain_count": 10,
            "privacy_relevant_domains": [
                {
                    "host": "googletagmanager.com",
                    "count": 1,
                    "category": "tag_manager",
                    "provider": "Google Tag Manager",
                    "third_party": true,
                    "category_label": "Tag-Manager",
                    "resource_types": {
                        "script": 1
                    }
                }
            ],
            "third_party_cookie_count": 0,
            "third_party_domain_count": 9,
            "privacy_relevant_domain_count": 1
        },
        "screenshot": {
            "fit": "contain",
            "width": 160,
            "height": 150,
            "source_width": 1024,
            "source_height": 960,
            "source_capture": "full_page",
            "capture_version": "contain-v3-fullpage-to-160x150"
        },
        "consent_apis": {
            "cmpapi": true,
            "tcfapi": true,
            "onetrust": false,
            "cookiebot": false,
            "data_layer": true,
            "cmp_detected": true,
            "usercentrics": false,
            "google_tag_data": true
        },
        "accept_signal": {
            "error": "",
            "enabled": true,
            "storage": {
                "total": 31,
                "tracking_key_hints": [
                    "consent",
                    "consent",
                    "consent"
                ],
                "local_storage_total": 26,
                "session_storage_total": 5
            },
            "clicked_text": "Accept all",
            "accept_clicked": true,
            "accept_available": true,
            "contacted_domains": [
                {
                    "host": "berlin-live.de",
                    "count": 29,
                    "category": "other",
                    "provider": "berlin-live.de",
                    "third_party": false,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "font": 5,
                        "image": 18,
                        "script": 1,
                        "document": 1,
                        "stylesheet": 4
                    }
                },
                {
                    "host": "images.taboola.com",
                    "count": 16,
                    "category": "other",
                    "provider": "images.taboola.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "image": 16
                    }
                },
                {
                    "host": "static.cleverpush.com",
                    "count": 14,
                    "category": "other",
                    "provider": "static.cleverpush.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "script": 14
                    }
                },
                {
                    "host": "cp.berlin-live.de",
                    "count": 7,
                    "category": "other",
                    "provider": "cp.berlin-live.de",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "fetch": 4,
                        "script": 3
                    }
                },
                {
                    "host": "cdn.consentmanager.net",
                    "count": 6,
                    "category": "other",
                    "provider": "cdn.consentmanager.net",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "image": 3,
                        "script": 2,
                        "document": 1
                    }
                },
                {
                    "host": "orbidder.otto.de",
                    "count": 6,
                    "category": "other",
                    "provider": "orbidder.otto.de",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "fetch": 6
                    }
                },
                {
                    "host": "ssb-global.smartadserver.com",
                    "count": 6,
                    "category": "other",
                    "provider": "ssb-global.smartadserver.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "fetch": 6
                    }
                },
                {
                    "host": "ib.adnxs.com",
                    "count": 4,
                    "category": "other",
                    "provider": "ib.adnxs.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "xhr": 1,
                        "fetch": 3
                    }
                },
                {
                    "host": "am-trc-events.taboola.com",
                    "count": 3,
                    "category": "other",
                    "provider": "am-trc-events.taboola.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "ping": 3
                    }
                },
                {
                    "host": "api.permutive.com",
                    "count": 3,
                    "category": "other",
                    "provider": "api.permutive.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "xhr": 3
                    }
                },
                {
                    "host": "c.delivery.consentmanager.net",
                    "count": 3,
                    "category": "other",
                    "provider": "c.delivery.consentmanager.net",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "image": 3
                    }
                },
                {
                    "host": "ad.yieldlab.net",
                    "count": 2,
                    "category": "other",
                    "provider": "ad.yieldlab.net",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "fetch": 2
                    }
                },
                {
                    "host": "c.amazon-adsystem.com",
                    "count": 2,
                    "category": "other",
                    "provider": "c.amazon-adsystem.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "xhr": 1,
                        "script": 1
                    }
                },
                {
                    "host": "cdn.id5-sync.com",
                    "count": 2,
                    "category": "other",
                    "provider": "cdn.id5-sync.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "script": 2
                    }
                },
                {
                    "host": "cdn.taboola.com",
                    "count": 2,
                    "category": "other",
                    "provider": "cdn.taboola.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "image": 1,
                        "script": 1
                    }
                },
                {
                    "host": "cluster7.relevant-digital.com",
                    "count": 2,
                    "category": "other",
                    "provider": "cluster7.relevant-digital.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "fetch": 2
                    }
                },
                {
                    "host": "hbopenbid.pubmatic.com",
                    "count": 2,
                    "category": "other",
                    "provider": "hbopenbid.pubmatic.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "fetch": 2
                    }
                },
                {
                    "host": "oajs.openx.net",
                    "count": 2,
                    "category": "other",
                    "provider": "oajs.openx.net",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "fetch": 2
                    }
                },
                {
                    "host": "rumcdn.geoedge.be",
                    "count": 2,
                    "category": "other",
                    "provider": "rumcdn.geoedge.be",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "script": 2
                    }
                },
                {
                    "host": "securepubads.g.doubleclick.net",
                    "count": 2,
                    "category": "advertising",
                    "provider": "Google DoubleClick",
                    "third_party": true,
                    "category_label": "Werbung",
                    "resource_types": {
                        "script": 2
                    }
                }
            ],
            "contacted_domain_count": 40,
            "new_domains_after_accept": [
                {
                    "host": "images.taboola.com",
                    "count": 16,
                    "category": "other",
                    "provider": "images.taboola.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "image": 16
                    }
                },
                {
                    "host": "static.cleverpush.com",
                    "count": 14,
                    "category": "other",
                    "provider": "static.cleverpush.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "script": 14
                    }
                },
                {
                    "host": "orbidder.otto.de",
                    "count": 6,
                    "category": "other",
                    "provider": "orbidder.otto.de",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "fetch": 6
                    }
                },
                {
                    "host": "ssb-global.smartadserver.com",
                    "count": 6,
                    "category": "other",
                    "provider": "ssb-global.smartadserver.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "fetch": 6
                    }
                },
                {
                    "host": "ib.adnxs.com",
                    "count": 4,
                    "category": "other",
                    "provider": "ib.adnxs.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "xhr": 1,
                        "fetch": 3
                    }
                },
                {
                    "host": "am-trc-events.taboola.com",
                    "count": 3,
                    "category": "other",
                    "provider": "am-trc-events.taboola.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "ping": 3
                    }
                },
                {
                    "host": "api.permutive.com",
                    "count": 3,
                    "category": "other",
                    "provider": "api.permutive.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "xhr": 3
                    }
                },
                {
                    "host": "ad.yieldlab.net",
                    "count": 2,
                    "category": "other",
                    "provider": "ad.yieldlab.net",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "fetch": 2
                    }
                },
                {
                    "host": "berlin-live.de",
                    "count": 2,
                    "category": "other",
                    "provider": "berlin-live.de",
                    "third_party": false,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "font": 5,
                        "image": 18,
                        "script": 1,
                        "document": 1,
                        "stylesheet": 4
                    }
                },
                {
                    "host": "c.amazon-adsystem.com",
                    "count": 2,
                    "category": "other",
                    "provider": "c.amazon-adsystem.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "xhr": 1,
                        "script": 1
                    }
                },
                {
                    "host": "c.delivery.consentmanager.net",
                    "count": 2,
                    "category": "other",
                    "provider": "c.delivery.consentmanager.net",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "image": 3
                    }
                },
                {
                    "host": "cdn.id5-sync.com",
                    "count": 2,
                    "category": "other",
                    "provider": "cdn.id5-sync.com",
                    "third_party": true,
                    "category_label": "Sonstige",
                    "resource_types": {
                        "script": 2
                    }
                }
            ],
            "privacy_relevant_domains": [
                {
                    "host": "securepubads.g.doubleclick.net",
                    "count": 2,
                    "category": "advertising",
                    "provider": "Google DoubleClick",
                    "third_party": true,
                    "category_label": "Werbung",
                    "resource_types": {
                        "script": 2
                    }
                },
                {
                    "host": "googletagmanager.com",
                    "count": 1,
                    "category": "tag_manager",
                    "provider": "Google Tag Manager",
                    "third_party": true,
                    "category_label": "Tag-Manager",
                    "resource_types": {
                        "script": 1
                    }
                }
            ],
            "third_party_domain_count": 39,
            "cookie_count_after_accept": 30,
            "cookie_count_before_accept": 0,
            "request_count_after_accept": 153,
            "storage_count_after_accept": 31,
            "request_count_before_accept": 46,
            "new_cookie_count_after_accept": 30,
            "privacy_relevant_domain_count": 2,
            "new_request_count_after_accept": 107,
            "third_party_cookie_count_after_accept": 18,
            "storage_tracking_hint_count_after_accept": 3,
            "new_privacy_relevant_domains_after_accept": [
                {
                    "host": "securepubads.g.doubleclick.net",
                    "count": 2,
                    "category": "advertising",
                    "provider": "Google DoubleClick",
                    "third_party": true,
                    "category_label": "Werbung",
                    "resource_types": {
                        "script": 2
                    }
                }
            ],
            "new_privacy_relevant_domain_count_after_accept": 1
        },
        "request_count": 46,
        "top_providers": [
            {
                "provider": "cdn.consentmanager.net",
                "request_count": 6
            },
            {
                "provider": "cp.berlin-live.de",
                "request_count": 6
            },
            {
                "provider": "anonym.data.funkedigital.de",
                "request_count": 1
            },
            {
                "provider": "b.delivery.consentmanager.net",
                "request_count": 1
            },
            {
                "provider": "c.delivery.consentmanager.net",
                "request_count": 1
            },
            {
                "provider": "Google Tag Manager",
                "request_count": 1
            },
            {
                "provider": "scout.data.funkedigital.de",
                "request_count": 1
            },
            {
                "provider": "sol.berlin-live.de",
                "request_count": 1
            },
            {
                "provider": "spark.cloud.funkedigital.de",
                "request_count": 1
            }
        ],
        "request_samples": [
            {
                "host": "spark.cloud.funkedigital.de",
                "method": "GET",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": false,
                "path_depth": 1,
                "query_keys": [],
                "third_party": true,
                "resource_type": "script",
                "query_key_count": 0,
                "url_value_param_count": 0,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 0
            },
            {
                "host": "sol.berlin-live.de",
                "method": "GET",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": true,
                "path_depth": 1,
                "query_keys": [
                    "id"
                ],
                "third_party": true,
                "resource_type": "script",
                "query_key_count": 1,
                "url_value_param_count": 0,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 0
            },
            {
                "host": "b.delivery.consentmanager.net",
                "method": "GET",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": true,
                "path_depth": 2,
                "query_keys": [
                    "cdid",
                    "h",
                    "l",
                    "o"
                ],
                "third_party": true,
                "resource_type": "script",
                "query_key_count": 4,
                "url_value_param_count": 1,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 1
            },
            {
                "host": "cdn.consentmanager.net",
                "method": "GET",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": false,
                "path_depth": 3,
                "query_keys": [],
                "third_party": true,
                "resource_type": "script",
                "query_key_count": 0,
                "url_value_param_count": 0,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 0
            },
            {
                "host": "scout.data.funkedigital.de",
                "method": "GET",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": false,
                "path_depth": 1,
                "query_keys": [],
                "third_party": true,
                "resource_type": "script",
                "query_key_count": 0,
                "url_value_param_count": 0,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 0
            },
            {
                "host": "googletagmanager.com",
                "method": "GET",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": true,
                "path_depth": 1,
                "query_keys": [
                    "id",
                    "gtg_health"
                ],
                "third_party": true,
                "resource_type": "script",
                "query_key_count": 2,
                "url_value_param_count": 0,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 0
            },
            {
                "host": "cdn.consentmanager.net",
                "method": "GET",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": false,
                "path_depth": 3,
                "query_keys": [],
                "third_party": true,
                "resource_type": "script",
                "query_key_count": 0,
                "url_value_param_count": 0,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 0
            },
            {
                "host": "cp.berlin-live.de",
                "method": "GET",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": false,
                "path_depth": 1,
                "query_keys": [],
                "third_party": true,
                "resource_type": "script",
                "query_key_count": 0,
                "url_value_param_count": 0,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 0
            },
            {
                "host": "anonym.data.funkedigital.de",
                "method": "POST",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": false,
                "path_depth": 2,
                "query_keys": [],
                "third_party": true,
                "resource_type": "fetch",
                "query_key_count": 0,
                "url_value_param_count": 0,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 0
            },
            {
                "host": "cp.berlin-live.de",
                "method": "GET",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": false,
                "path_depth": 3,
                "query_keys": [],
                "third_party": true,
                "resource_type": "fetch",
                "query_key_count": 0,
                "url_value_param_count": 0,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 0
            },
            {
                "host": "cdn.consentmanager.net",
                "method": "GET",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": false,
                "path_depth": 2,
                "query_keys": [],
                "third_party": true,
                "resource_type": "document",
                "query_key_count": 0,
                "url_value_param_count": 0,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 0
            },
            {
                "host": "cp.berlin-live.de",
                "method": "GET",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": false,
                "path_depth": 2,
                "query_keys": [],
                "third_party": true,
                "resource_type": "script",
                "query_key_count": 0,
                "url_value_param_count": 0,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 0
            },
            {
                "host": "cp.berlin-live.de",
                "method": "GET",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": false,
                "path_depth": 2,
                "query_keys": [],
                "third_party": true,
                "resource_type": "script",
                "query_key_count": 0,
                "url_value_param_count": 0,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 0
            },
            {
                "host": "cp.berlin-live.de",
                "method": "POST",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": false,
                "path_depth": 1,
                "query_keys": [],
                "third_party": true,
                "resource_type": "fetch",
                "query_key_count": 0,
                "url_value_param_count": 0,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 0
            },
            {
                "host": "cdn.consentmanager.net",
                "method": "GET",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": false,
                "path_depth": 3,
                "query_keys": [],
                "third_party": true,
                "resource_type": "image",
                "query_key_count": 0,
                "url_value_param_count": 0,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 0
            },
            {
                "host": "cdn.consentmanager.net",
                "method": "GET",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": false,
                "path_depth": 3,
                "query_keys": [],
                "third_party": true,
                "resource_type": "image",
                "query_key_count": 0,
                "url_value_param_count": 0,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 0
            },
            {
                "host": "c.delivery.consentmanager.net",
                "method": "GET",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": true,
                "path_depth": 2,
                "query_keys": [
                    "id",
                    "did",
                    "cfdid",
                    "t",
                    "h",
                    "o",
                    "l",
                    "lv",
                    "d",
                    "ct",
                    "e",
                    "e2"
                ],
                "third_party": true,
                "resource_type": "image",
                "query_key_count": 16,
                "url_value_param_count": 1,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 1
            },
            {
                "host": "cdn.consentmanager.net",
                "method": "GET",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": false,
                "path_depth": 3,
                "query_keys": [],
                "third_party": true,
                "resource_type": "image",
                "query_key_count": 0,
                "url_value_param_count": 0,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 0
            },
            {
                "host": "cp.berlin-live.de",
                "method": "POST",
                "referrer": {
                    "host": "berlin-live.de",
                    "has_path": false,
                    "has_query": false,
                    "same_site": true,
                    "path_depth": 0,
                    "query_keys": [],
                    "sensitive_query_key_count": 0
                },
                "has_query": false,
                "path_depth": 1,
                "query_keys": [],
                "third_party": true,
                "resource_type": "fetch",
                "query_key_count": 0,
                "url_value_param_count": 0,
                "sensitive_query_key_count": 0,
                "target_url_value_param_count": 0
            }
        ],
        "cmp_consent_state": {
            "tcf": {
                "api_found": true,
                "vendor_li": [],
                "cmp_loaded": true,
                "cmp_status": "loaded",
                "purpose_li": [],
                "event_status": "cmpuishown",
                "gdpr_applies": true,
                "ping_success": true,
                "policy_version": "5",
                "vendor_consents": [],
                "vendor_li_count": 0,
                "purpose_consents": [],
                "purpose_li_count": 0,
                "tc_string_length": 303,
                "tc_string_present": true,
                "vendor_consent_count": 0,
                "purpose_consent_count": 0
            },
            "onetrust": {
                "found": false,
                "active_groups": [],
                "active_group_count": 0
            },
            "cookiebot": {
                "found": false,
                "declined": false,
                "consented": false,
                "has_response": false,
                "consent_marketing": null,
                "consent_statistics": null,
                "consent_preferences": null
            },
            "usercentrics": {
                "found": false,
                "has_response": false,
                "services_count": 0,
                "accepted_services_count": 0
            }
        },
        "contacted_domains": [
            {
                "host": "berlin-live.de",
                "count": 27,
                "category": "other",
                "provider": "berlin-live.de",
                "third_party": false,
                "category_label": "Sonstige",
                "resource_types": {
                    "font": 4,
                    "image": 18,
                    "document": 1,
                    "stylesheet": 4
                }
            },
            {
                "host": "cdn.consentmanager.net",
                "count": 6,
                "category": "other",
                "provider": "cdn.consentmanager.net",
                "third_party": true,
                "category_label": "Sonstige",
                "resource_types": {
                    "image": 3,
                    "script": 2,
                    "document": 1
                }
            },
            {
                "host": "cp.berlin-live.de",
                "count": 6,
                "category": "other",
                "provider": "cp.berlin-live.de",
                "third_party": true,
                "category_label": "Sonstige",
                "resource_types": {
                    "fetch": 3,
                    "script": 3
                }
            },
            {
                "host": "anonym.data.funkedigital.de",
                "count": 1,
                "category": "other",
                "provider": "anonym.data.funkedigital.de",
                "third_party": true,
                "category_label": "Sonstige",
                "resource_types": {
                    "fetch": 1
                }
            },
            {
                "host": "b.delivery.consentmanager.net",
                "count": 1,
                "category": "other",
                "provider": "b.delivery.consentmanager.net",
                "third_party": true,
                "category_label": "Sonstige",
                "resource_types": {
                    "script": 1
                }
            },
            {
                "host": "c.delivery.consentmanager.net",
                "count": 1,
                "category": "other",
                "provider": "c.delivery.consentmanager.net",
                "third_party": true,
                "category_label": "Sonstige",
                "resource_types": {
                    "image": 1
                }
            },
            {
                "host": "googletagmanager.com",
                "count": 1,
                "category": "tag_manager",
                "provider": "Google Tag Manager",
                "third_party": true,
                "category_label": "Tag-Manager",
                "resource_types": {
                    "script": 1
                }
            },
            {
                "host": "scout.data.funkedigital.de",
                "count": 1,
                "category": "other",
                "provider": "scout.data.funkedigital.de",
                "third_party": true,
                "category_label": "Sonstige",
                "resource_types": {
                    "script": 1
                }
            },
            {
                "host": "sol.berlin-live.de",
                "count": 1,
                "category": "other",
                "provider": "sol.berlin-live.de",
                "third_party": true,
                "category_label": "Sonstige",
                "resource_types": {
                    "script": 1
                }
            },
            {
                "host": "spark.cloud.funkedigital.de",
                "count": 1,
                "category": "other",
                "provider": "spark.cloud.funkedigital.de",
                "third_party": true,
                "category_label": "Sonstige",
                "resource_types": {
                    "script": 1
                }
            }
        ],
        "privacy_api_metrics": {
            "api_calls": {
                "fetch_keepalive_count": 2,
                "keyboard_input_listener_count": 19
            },
            "beacon_count": 0,
            "webgl_read_count": 0,
            "canvas_read_count": 0,
            "audio_context_count": 0,
            "canvas_export_count": 0,
            "fetch_keepalive_count": 2,
            "webgl_parameter_count": 0,
            "mutation_observer_count": 0,
            "keyboard_input_listener_count": 19
        },
        "tcf_consent_analysis": {
            "color": "green",
            "score": 100,
            "status": "unauffällig",
            "summary": "TCF-Decoder: 0 Zweck(e) mit Consent/LI-Signal, 0 Vendor-Consent(s), 0 Vendor-LI-Signal(e).",
            "findings": [],
            "api_found": true,
            "available": true,
            "cmp_loaded": true,
            "cmp_status": "loaded",
            "event_status": "cmpuishown",
            "gdpr_applies": true,
            "ping_success": true,
            "purpose_rows": [
                {
                    "id": 1,
                    "label": "Informationen auf einem Gerät speichern und/oder abrufen",
                    "status": "nicht_erlaubt",
                    "risk_level": "niedrig",
                    "consent_granted": false,
                    "legitimate_interest_granted": false
                },
                {
                    "id": 2,
                    "label": "Einfache Anzeigen auswählen",
                    "status": "nicht_erlaubt",
                    "risk_level": "niedrig",
                    "consent_granted": false,
                    "legitimate_interest_granted": false
                },
                {
                    "id": 3,
                    "label": "Personalisiertes Anzeigen-Profil erstellen",
                    "status": "nicht_erlaubt",
                    "risk_level": "niedrig",
                    "consent_granted": false,
                    "legitimate_interest_granted": false
                },
                {
                    "id": 4,
                    "label": "Personalisierte Anzeigen auswählen",
                    "status": "nicht_erlaubt",
                    "risk_level": "niedrig",
                    "consent_granted": false,
                    "legitimate_interest_granted": false
                },
                {
                    "id": 5,
                    "label": "Personalisiertes Inhalts-Profil erstellen",
                    "status": "nicht_erlaubt",
                    "risk_level": "niedrig",
                    "consent_granted": false,
                    "legitimate_interest_granted": false
                },
                {
                    "id": 6,
                    "label": "Personalisierte Inhalte auswählen",
                    "status": "nicht_erlaubt",
                    "risk_level": "niedrig",
                    "consent_granted": false,
                    "legitimate_interest_granted": false
                },
                {
                    "id": 7,
                    "label": "Anzeigen-Leistung messen",
                    "status": "nicht_erlaubt",
                    "risk_level": "niedrig",
                    "consent_granted": false,
                    "legitimate_interest_granted": false
                },
                {
                    "id": 8,
                    "label": "Inhalte-Leistung messen",
                    "status": "nicht_erlaubt",
                    "risk_level": "niedrig",
                    "consent_granted": false,
                    "legitimate_interest_granted": false
                },
                {
                    "id": 9,
                    "label": "Marktforschung zur Generierung von Erkenntnissen nutzen",
                    "status": "nicht_erlaubt",
                    "risk_level": "niedrig",
                    "consent_granted": false,
                    "legitimate_interest_granted": false
                },
                {
                    "id": 10,
                    "label": "Produkte entwickeln und verbessern",
                    "status": "nicht_erlaubt",
                    "risk_level": "niedrig",
                    "consent_granted": false,
                    "legitimate_interest_granted": false
                },
                {
                    "id": 11,
                    "label": "Begrenzte Daten zur Anzeigen-Auswahl verwenden",
                    "status": "nicht_erlaubt",
                    "risk_level": "niedrig",
                    "consent_granted": false,
                    "legitimate_interest_granted": false
                }
            ],
            "vendor_li_ids": [],
            "policy_version": "5",
            "vendor_li_count": 0,
            "purpose_li_count": 0,
            "tc_string_length": 303,
            "tc_string_present": true,
            "vendor_consent_ids": [],
            "granted_purpose_rows": [],
            "vendor_consent_count": 0,
            "purpose_consent_count": 0,
            "high_risk_purpose_count": 0,
            "medium_risk_purpose_count": 0
        },
        "consent_journey_matrix": {
            "color": "green",
            "items": [
                {
                    "host": "googletagmanager.com",
                    "states": {
                        "gpc": 1,
                        "default": 1
                    },
                    "category": "tag_manager",
                    "provider": "Google Tag Manager",
                    "category_label": "Tag-Manager",
                    "privacy_relevant": true,
                    "total_request_count": 2
                },
                {
                    "host": "images.taboola.com",
                    "states": {
                        "accept_new": 16
                    },
                    "category": "other",
                    "provider": "images.taboola.com",
                    "category_label": "Sonstige",
                    "privacy_relevant": false,
                    "total_request_count": 16
                },
                {
                    "host": "static.cleverpush.com",
                    "states": {
                        "accept_new": 14
                    },
                    "category": "other",
                    "provider": "static.cleverpush.com",
                    "category_label": "Sonstige",
                    "privacy_relevant": false,
                    "total_request_count": 14
                },
                {
                    "host": "cdn.consentmanager.net",
                    "states": {
                        "gpc": 6,
                        "default": 6
                    },
                    "category": "other",
                    "provider": "cdn.consentmanager.net",
                    "category_label": "Sonstige",
                    "privacy_relevant": false,
                    "total_request_count": 12
                },
                {
                    "host": "cp.berlin-live.de",
                    "states": {
                        "gpc": 6,
                        "default": 6
                    },
                    "category": "other",
                    "provider": "cp.berlin-live.de",
                    "category_label": "Sonstige",
                    "privacy_relevant": false,
                    "total_request_count": 12
                },
                {
                    "host": "orbidder.otto.de",
                    "states": {
                        "accept_new": 6
                    },
                    "category": "other",
                    "provider": "orbidder.otto.de",
                    "category_label": "Sonstige",
                    "privacy_relevant": false,
                    "total_request_count": 6
                },
                {
                    "host": "ssb-global.smartadserver.com",
                    "states": {
                        "accept_new": 6
                    },
                    "category": "other",
                    "provider": "ssb-global.smartadserver.com",
                    "category_label": "Sonstige",
                    "privacy_relevant": false,
                    "total_request_count": 6
                },
                {
                    "host": "c.delivery.consentmanager.net",
                    "states": {
                        "gpc": 1,
                        "default": 1,
                        "accept_new": 2
                    },
                    "category": "other",
                    "provider": "c.delivery.consentmanager.net",
                    "category_label": "Sonstige",
                    "privacy_relevant": false,
                    "total_request_count": 4
                },
                {
                    "host": "ib.adnxs.com",
                    "states": {
                        "accept_new": 4
                    },
                    "category": "other",
                    "provider": "ib.adnxs.com",
                    "category_label": "Sonstige",
                    "privacy_relevant": false,
                    "total_request_count": 4
                },
                {
                    "host": "am-trc-events.taboola.com",
                    "states": {
                        "accept_new": 3
                    },
                    "category": "other",
                    "provider": "am-trc-events.taboola.com",
                    "category_label": "Sonstige",
                    "privacy_relevant": false,
                    "total_request_count": 3
                },
                {
                    "host": "api.permutive.com",
                    "states": {
                        "accept_new": 3
                    },
                    "category": "other",
                    "provider": "api.permutive.com",
                    "category_label": "Sonstige",
                    "privacy_relevant": false,
                    "total_request_count": 3
                },
                {
                    "host": "ad.yieldlab.net",
                    "states": {
                        "accept_new": 2
                    },
                    "category": "other",
                    "provider": "ad.yieldlab.net",
                    "category_label": "Sonstige",
                    "privacy_relevant": false,
                    "total_request_count": 2
                },
                {
                    "host": "anonym.data.funkedigital.de",
                    "states": {
                        "gpc": 1,
                        "default": 1
                    },
                    "category": "other",
                    "provider": "anonym.data.funkedigital.de",
                    "category_label": "Sonstige",
                    "privacy_relevant": false,
                    "total_request_count": 2
                },
                {
                    "host": "b.delivery.consentmanager.net",
                    "states": {
                        "gpc": 1,
                        "default": 1
                    },
                    "category": "other",
                    "provider": "b.delivery.consentmanager.net",
                    "category_label": "Sonstige",
                    "privacy_relevant": false,
                    "total_request_count": 2
                },
                {
                    "host": "c.amazon-adsystem.com",
                    "states": {
                        "accept_new": 2
                    },
                    "category": "other",
                    "provider": "c.amazon-adsystem.com",
                    "category_label": "Sonstige",
                    "privacy_relevant": false,
                    "total_request_count": 2
                },
                {
                    "host": "cdn.id5-sync.com",
                    "states": {
                        "accept_new": 2
                    },
                    "category": "other",
                    "provider": "cdn.id5-sync.com",
                    "category_label": "Sonstige",
                    "privacy_relevant": false,
                    "total_request_count": 2
                },
                {
                    "host": "scout.data.funkedigital.de",
                    "states": {
                        "gpc": 1,
                        "default": 1
                    },
                    "category": "other",
                    "provider": "scout.data.funkedigital.de",
                    "category_label": "Sonstige",
                    "privacy_relevant": false,
                    "total_request_count": 2
                },
                {
                    "host": "sol.berlin-live.de",
                    "states": {
                        "gpc": 1,
                        "default": 1
                    },
                    "category": "other",
                    "provider": "sol.berlin-live.de",
                    "category_label": "Sonstige",
                    "privacy_relevant": false,
                    "total_request_count": 2
                },
                {
                    "host": "spark.cloud.funkedigital.de",
                    "states": {
                        "gpc": 1,
                        "default": 1
                    },
                    "category": "other",
                    "provider": "spark.cloud.funkedigital.de",
                    "category_label": "Sonstige",
                    "privacy_relevant": false,
                    "total_request_count": 2
                }
            ],
            "score": 92,
            "states": [
                {
                    "id": "default",
                    "label": "Erstaufruf",
                    "description": "Kontakte ohne Nutzeraktion",
                    "domain_count": 9,
                    "request_count": 19,
                    "privacy_relevant_domain_count": 1
                },
                {
                    "id": "reject_new",
                    "label": "Nach Ablehnen neu",
                    "description": "Neue Kontakte nach Ablehnen-Klick",
                    "domain_count": 0,
                    "request_count": 0,
                    "privacy_relevant_domain_count": 0
                },
                {
                    "id": "accept_new",
                    "label": "Nach Akzeptieren neu",
                    "description": "Neue Kontakte nach Akzeptieren-Klick",
                    "domain_count": 11,
                    "request_count": 60,
                    "privacy_relevant_domain_count": 0
                },
                {
                    "id": "gpc",
                    "label": "GPC-Aufruf",
                    "description": "Kontakte bei Global Privacy Control",
                    "domain_count": 9,
                    "request_count": 19,
                    "privacy_relevant_domain_count": 1
                }
            ],
            "status": "unauffällig",
            "summary": "Consent-Journey: 0 neue Datenschutz-Domain(s) nach Ablehnen, 0 nach Akzeptieren, 1 im GPC-Aufruf.",
            "gpc_privacy_relevant_domain_count": 1,
            "accept_privacy_relevant_domain_count": 0,
            "reject_privacy_relevant_domain_count": 0
        },
        "consent_state_evidence": {
            "rows": [
                {
                    "id": "default",
                    "label": "Erstaufruf",
                    "status": "ohne Nutzeraktion",
                    "evidence": "Baseline aus erstem Chromium-Aufruf ohne Banner-Interaktion.",
                    "risk_level": "mittel",
                    "cookie_count": 0,
                    "domain_count": 10,
                    "request_count": 46,
                    "storage_total": 0,
                    "new_cookie_count": 0,
                    "third_party_cookie_count": 0,
                    "storage_tracking_hint_count": 0,
                    "privacy_relevant_domain_count": 1
                },
                {
                    "id": "reject",
                    "label": "Nach Ablehnen",
                    "status": "nicht verfügbar",
                    "evidence": "",
                    "risk_level": "niedrig",
                    "cookie_count": 0,
                    "domain_count": 0,
                    "request_count": 0,
                    "storage_total": 0,
                    "new_cookie_count": 0,
                    "third_party_cookie_count": 0,
                    "storage_tracking_hint_count": 0,
                    "privacy_relevant_domain_count": 0
                },
                {
                    "id": "accept",
                    "label": "Nach Akzeptieren",
                    "status": "geklickt",
                    "evidence": "Accept all",
                    "risk_level": "info",
                    "cookie_count": 30,
                    "domain_count": 40,
                    "request_count": 153,
                    "storage_total": 31,
                    "new_cookie_count": 30,
                    "third_party_cookie_count": 18,
                    "storage_tracking_hint_count": 3,
                    "privacy_relevant_domain_count": 1
                },
                {
                    "id": "gpc",
                    "label": "GPC-Aufruf",
                    "status": "aktiv",
                    "evidence": "Navigator-GPC und Sec-GPC wurden im gesonderten Browserlauf gesetzt.",
                    "risk_level": "mittel",
                    "cookie_count": 0,
                    "domain_count": 10,
                    "request_count": 46,
                    "storage_total": 0,
                    "new_cookie_count": 0,
                    "third_party_cookie_count": 0,
                    "storage_tracking_hint_count": 0,
                    "privacy_relevant_domain_count": 1
                }
            ],
            "color": "yellow",
            "score": 80,
            "status": "prüfen",
            "summary": "Consent-State-Evidence: 4 Zustände verglichen, 0 hoch auffällig, 2 mittel auffällig.",
            "findings": [
                {
                    "id": "consent_state_gpc_evidence_review",
                    "title": "Consent-Zustand: GPC mit Tracking-Hinweisen",
                    "public": true,
                    "category": "privacy",
                    "severity": "info"
                }
            ],
            "available": true,
            "high_count": 0,
            "medium_count": 2
        },
        "contacted_domain_count": 10,
        "fingerprinting_analysis": {
            "color": "yellow",
            "score": 88,
            "checks": [
                {
                    "id": "canvas",
                    "ok": true,
                    "count": 0,
                    "label": "Canvas-Auslese",
                    "detail": "0 Pixel-Lesezugriff(e), 0 Export(e)."
                },
                {
                    "id": "webgl",
                    "ok": true,
                    "count": 0,
                    "label": "WebGL-Merkmale",
                    "detail": "0 Parameterzugriff(e), 0 Pixel-Lesezugriff(e)."
                },
                {
                    "id": "audio",
                    "ok": true,
                    "count": 0,
                    "label": "AudioContext",
                    "detail": "0 AudioContext/OfflineAudioContext-Aufruf(e)."
                },
                {
                    "id": "session_replay",
                    "ok": true,
                    "count": 0,
                    "label": "Session-Replay-Anbieter",
                    "detail": "Keine bekannten Anbieter erkannt."
                },
                {
                    "id": "input_listeners",
                    "ok": false,
                    "count": 19,
                    "label": "Tastatur-/Eingabe-Listener",
                    "detail": "19 Tastatur-/Input-Listener, 23 Interaktions-Listener, 0 MutationObserver."
                }
            ],
            "status": "prüfen",
            "metrics": {
                "webgl_read_count": 0,
                "canvas_read_count": 0,
                "audio_context_count": 0,
                "canvas_export_count": 0,
                "webgl_parameter_count": 0,
                "mutation_observer_count": 0,
                "keyboard_input_listener_count": 19
            },
            "summary": "1 Fingerprinting-/Session-Replay-Hinweis(e) aus dem Browserlauf.",
            "findings": [
                {
                    "id": "browser_keystroke_listener_signals",
                    "count": 19,
                    "title": "Viele Tastatur-/Eingabe-Listener im Browser erkannt",
                    "public": true,
                    "category": "privacy",
                    "severity": "info"
                }
            ],
            "finding_count": 1,
            "session_replay_domains": []
        },
        "privacy_relevant_domains": [
            {
                "host": "googletagmanager.com",
                "count": 1,
                "category": "tag_manager",
                "provider": "Google Tag Manager",
                "third_party": true,
                "category_label": "Tag-Manager",
                "resource_types": {
                    "script": 1
                }
            }
        ],
        "provider_category_counts": {
            "other": 8,
            "tag_manager": 1
        },
        "provider_category_labels": {
            "other": "other",
            "tag_manager": "Tag-Manager"
        },
        "third_party_domain_count": 9,
        "embedded_content_analysis": {
            "color": "green",
            "items": [],
            "score": 100,
            "status": "unauffällig",
            "summary": "0 externe Embed-/Widget-Dienst(e), 0 davon im ersten Browseraufruf geladen.",
            "findings": [],
            "map_count": 0,
            "total_count": 0,
            "video_count": 0,
            "captcha_count": 0,
            "category_counts": [],
            "social_widget_count": 0,
            "loaded_pre_consent_count": 0,
            "request_count_by_provider": []
        },
        "referrer_leakage_analysis": {
            "color": "yellow",
            "items": [
                {
                    "host": "b.delivery.consentmanager.net",
                    "category": "other",
                    "provider": "b.delivery.consentmanager.net",
                    "query_keys": [
                        "cdid",
                        "h",
                        "l",
                        "o"
                    ],
                    "risk_reason": "Seiten-URL oder URL-Wert in Drittanbieter-Requestparametern",
                    "resource_type": "script",
                    "category_label": "Sonstige",
                    "referrer_query_keys": [],
                    "url_value_param_count": 1,
                    "target_url_value_param_count": 1
                },
                {
                    "host": "c.delivery.consentmanager.net",
                    "category": "other",
                    "provider": "c.delivery.consentmanager.net",
                    "query_keys": [
                        "id",
                        "did",
                        "cfdid",
                        "t",
                        "h",
                        "o",
                        "l",
                        "lv"
                    ],
                    "risk_reason": "Seiten-URL oder URL-Wert in Drittanbieter-Requestparametern",
                    "resource_type": "image",
                    "category_label": "Sonstige",
                    "referrer_query_keys": [],
                    "url_value_param_count": 1,
                    "target_url_value_param_count": 1
                }
            ],
            "score": 76,
            "status": "prüfen",
            "summary": "2 Drittanbieter-Domain(s) mit Referrer-/URL-Leak-Prüfbedarf, 0 sensible Query-Kontexte.",
            "findings": [
                {
                    "id": "third_party_page_url_parameter",
                    "count": 2,
                    "title": "Seiten-URL wird in Drittanbieter-Requests übertragen",
                    "public": true,
                    "category": "privacy",
                    "severity": "warning"
                }
            ],
            "sample_count": 19,
            "full_referrer_count": 0,
            "page_url_param_count": 2,
            "affected_domain_count": 2,
            "sensitive_query_count": 0
        },
        "third_party_contact_matrix": {
            "color": "orange",
            "items": [
                {
                    "host": "googletagmanager.com",
                    "region": "US",
                    "status": "dokumentieren",
                    "category": "tag_manager",
                    "provider": "Google Tag Manager",
                    "risk_level": "mittel",
                    "request_count": 1,
                    "transfer_risk": "hoch",
                    "category_label": "Tag-Manager",
                    "resource_types": [
                        {
                            "type": "script",
                            "count": 1
                        }
                    ],
                    "transfer_label": "Drittland/USA",
                    "privacy_relevant": true
                },
                {
                    "host": "cdn.consentmanager.net",
                    "region": "unbekannt",
                    "status": "prüfen",
                    "category": "other",
                    "provider": "cdn.consentmanager.net",
                    "risk_level": "niedrig",
                    "request_count": 6,
                    "transfer_risk": "mittel",
                    "category_label": "Sonstige",
                    "resource_types": [
                        {
                            "type": "image",
                            "count": 3
                        },
                        {
                            "type": "script",
                            "count": 2
                        },
                        {
                            "type": "document",
                            "count": 1
                        }
                    ],
                    "transfer_label": "Jurisdiktion unklar",
                    "privacy_relevant": false
                },
                {
                    "host": "cp.berlin-live.de",
                    "region": "EU/EWR",
                    "status": "prüfen",
                    "category": "other",
                    "provider": "cp.berlin-live.de",
                    "risk_level": "niedrig",
                    "request_count": 6,
                    "transfer_risk": "niedrig",
                    "category_label": "Sonstige",
                    "resource_types": [
                        {
                            "type": "fetch",
                            "count": 3
                        },
                        {
                            "type": "script",
                            "count": 3
                        }
                    ],
                    "transfer_label": "EU/EWR",
                    "privacy_relevant": false
                },
                {
                    "host": "anonym.data.funkedigital.de",
                    "region": "EU/EWR",
                    "status": "prüfen",
                    "category": "other",
                    "provider": "anonym.data.funkedigital.de",
                    "risk_level": "niedrig",
                    "request_count": 1,
                    "transfer_risk": "niedrig",
                    "category_label": "Sonstige",
                    "resource_types": [
                        {
                            "type": "fetch",
                            "count": 1
                        }
                    ],
                    "transfer_label": "EU/EWR",
                    "privacy_relevant": false
                },
                {
                    "host": "b.delivery.consentmanager.net",
                    "region": "unbekannt",
                    "status": "prüfen",
                    "category": "other",
                    "provider": "b.delivery.consentmanager.net",
                    "risk_level": "niedrig",
                    "request_count": 1,
                    "transfer_risk": "mittel",
                    "category_label": "Sonstige",
                    "resource_types": [
                        {
                            "type": "script",
                            "count": 1
                        }
                    ],
                    "transfer_label": "Jurisdiktion unklar",
                    "privacy_relevant": false
                },
                {
                    "host": "c.delivery.consentmanager.net",
                    "region": "unbekannt",
                    "status": "prüfen",
                    "category": "other",
                    "provider": "c.delivery.consentmanager.net",
                    "risk_level": "niedrig",
                    "request_count": 1,
                    "transfer_risk": "mittel",
                    "category_label": "Sonstige",
                    "resource_types": [
                        {
                            "type": "image",
                            "count": 1
                        }
                    ],
                    "transfer_label": "Jurisdiktion unklar",
                    "privacy_relevant": false
                },
                {
                    "host": "scout.data.funkedigital.de",
                    "region": "EU/EWR",
                    "status": "prüfen",
                    "category": "other",
                    "provider": "scout.data.funkedigital.de",
                    "risk_level": "niedrig",
                    "request_count": 1,
                    "transfer_risk": "niedrig",
                    "category_label": "Sonstige",
                    "resource_types": [
                        {
                            "type": "script",
                            "count": 1
                        }
                    ],
                    "transfer_label": "EU/EWR",
                    "privacy_relevant": false
                },
                {
                    "host": "sol.berlin-live.de",
                    "region": "EU/EWR",
                    "status": "prüfen",
                    "category": "other",
                    "provider": "sol.berlin-live.de",
                    "risk_level": "niedrig",
                    "request_count": 1,
                    "transfer_risk": "niedrig",
                    "category_label": "Sonstige",
                    "resource_types": [
                        {
                            "type": "script",
                            "count": 1
                        }
                    ],
                    "transfer_label": "EU/EWR",
                    "privacy_relevant": false
                },
                {
                    "host": "spark.cloud.funkedigital.de",
                    "region": "EU/EWR",
                    "status": "prüfen",
                    "category": "other",
                    "provider": "spark.cloud.funkedigital.de",
                    "risk_level": "niedrig",
                    "request_count": 1,
                    "transfer_risk": "niedrig",
                    "category_label": "Sonstige",
                    "resource_types": [
                        {
                            "type": "script",
                            "count": 1
                        }
                    ],
                    "transfer_label": "EU/EWR",
                    "privacy_relevant": false
                }
            ],
            "score": 60,
            "status": "auffällig",
            "summary": "9 Drittanbieter-Domain(s) beim ersten Browseraufruf, davon 1 datenschutzrelevant.",
            "category_counts": {
                "Sonstige": 8,
                "Tag-Manager": 1
            },
            "total_domain_count": 9,
            "total_request_count": 19,
            "privacy_relevant_count": 1,
            "transfer_risk_analysis": {
                "color": "orange",
                "items": [
                    {
                        "host": "googletagmanager.com",
                        "region": "US",
                        "provider": "Google Tag Manager",
                        "request_count": 1,
                        "transfer_risk": "hoch",
                        "category_label": "Tag-Manager",
                        "transfer_label": "Drittland/USA",
                        "privacy_relevant": true
                    },
                    {
                        "host": "cdn.consentmanager.net",
                        "region": "unbekannt",
                        "provider": "cdn.consentmanager.net",
                        "request_count": 6,
                        "transfer_risk": "mittel",
                        "category_label": "Sonstige",
                        "transfer_label": "Jurisdiktion unklar",
                        "privacy_relevant": false
                    },
                    {
                        "host": "cp.berlin-live.de",
                        "region": "EU/EWR",
                        "provider": "cp.berlin-live.de",
                        "request_count": 6,
                        "transfer_risk": "niedrig",
                        "category_label": "Sonstige",
                        "transfer_label": "EU/EWR",
                        "privacy_relevant": false
                    },
                    {
                        "host": "anonym.data.funkedigital.de",
                        "region": "EU/EWR",
                        "provider": "anonym.data.funkedigital.de",
                        "request_count": 1,
                        "transfer_risk": "niedrig",
                        "category_label": "Sonstige",
                        "transfer_label": "EU/EWR",
                        "privacy_relevant": false
                    },
                    {
                        "host": "b.delivery.consentmanager.net",
                        "region": "unbekannt",
                        "provider": "b.delivery.consentmanager.net",
                        "request_count": 1,
                        "transfer_risk": "mittel",
                        "category_label": "Sonstige",
                        "transfer_label": "Jurisdiktion unklar",
                        "privacy_relevant": false
                    },
                    {
                        "host": "c.delivery.consentmanager.net",
                        "region": "unbekannt",
                        "provider": "c.delivery.consentmanager.net",
                        "request_count": 1,
                        "transfer_risk": "mittel",
                        "category_label": "Sonstige",
                        "transfer_label": "Jurisdiktion unklar",
                        "privacy_relevant": false
                    },
                    {
                        "host": "scout.data.funkedigital.de",
                        "region": "EU/EWR",
                        "provider": "scout.data.funkedigital.de",
                        "request_count": 1,
                        "transfer_risk": "niedrig",
                        "category_label": "Sonstige",
                        "transfer_label": "EU/EWR",
                        "privacy_relevant": false
                    },
                    {
                        "host": "sol.berlin-live.de",
                        "region": "EU/EWR",
                        "provider": "sol.berlin-live.de",
                        "request_count": 1,
                        "transfer_risk": "niedrig",
                        "category_label": "Sonstige",
                        "transfer_label": "EU/EWR",
                        "privacy_relevant": false
                    },
                    {
                        "host": "spark.cloud.funkedigital.de",
                        "region": "EU/EWR",
                        "provider": "spark.cloud.funkedigital.de",
                        "request_count": 1,
                        "transfer_risk": "niedrig",
                        "category_label": "Sonstige",
                        "transfer_label": "EU/EWR",
                        "privacy_relevant": false
                    }
                ],
                "score": 61,
                "status": "auffällig",
                "summary": "9 Drittanbieter für Transfer-/Jurisdiktionsprüfung, 1 mit hohem Prüfbedarf, 3 unklar.",
                "findings": [
                    {
                        "id": "third_country_transfer_review",
                        "title": "Drittland-/US-Anbieter im Browseraufruf prüfen",
                        "public": true,
                        "category": "privacy",
                        "severity": "warning"
                    },
                    {
                        "id": "unknown_vendor_jurisdiction",
                        "title": "Anbieter-Jurisdiktion nicht klar ableitbar",
                        "public": true,
                        "category": "privacy",
                        "severity": "info"
                    }
                ],
                "unknown_count": 3,
                "high_risk_count": 1,
                "total_vendor_count": 9,
                "third_country_count": 1
            }
        },
        "privacy_relevant_domain_count": 1,
        "tracking_pixel_beacon_analysis": {
            "color": "orange",
            "items": [
                {
                    "url": "",
                    "host": "berlin-live.de",
                    "kind": "beacon_api",
                    "reason": "sendBeacon API 0 Aufruf(e), 0 Code-Hinweis(e); keepalive 2 Aufruf(e), 0 Code-Hinweis(e).",
                    "source": "javascript_api",
                    "category": "telemetry",
                    "provider": "Beacon-/Keepalive-API",
                    "third_party": false,
                    "resource_type": "beacon",
                    "category_label": "Telemetry"
                },
                {
                    "url": "",
                    "host": "c.delivery.consentmanager.net",
                    "kind": "browser_tracking_request",
                    "reason": "image-Request mit 16 Query-Schlüssel(n).",
                    "source": "chromium_request",
                    "category": "other",
                    "provider": "c.delivery.consentmanager.net",
                    "query_keys": [
                        "id",
                        "did",
                        "cfdid",
                        "t",
                        "h",
                        "o",
                        "l",
                        "lv"
                    ],
                    "third_party": true,
                    "resource_type": "image",
                    "category_label": "Sonstige"
                }
            ],
            "score": 62,
            "status": "auffällig",
            "summary": "1 Pixel-/Bildtracking-Hinweis(e), 3 Beacon-/Telemetry-Hinweis(e), 0 Link-Ping(s).",
            "findings": [
                {
                    "id": "tracking_pixel_detected",
                    "count": 1,
                    "title": "Tracking-Pixel oder pixelnahe Requests erkannt",
                    "public": true,
                    "category": "privacy",
                    "severity": "info"
                },
                {
                    "id": "beacon_api_usage",
                    "count": 3,
                    "title": "Beacon-/Keepalive-Telemetrie erkannt",
                    "public": true,
                    "category": "privacy",
                    "severity": "warning"
                }
            ],
            "pixel_count": 1,
            "link_ping_count": 0,
            "telemetry_count": 1,
            "beacon_api_count": 0,
            "third_party_count": 1,
            "fetch_keepalive_count": 2,
            "privacy_relevant_count": 0,
            "beacon_code_reference_count": 0,
            "fetch_keepalive_reference_count": 0
        }
    },
    "privacy_analysis": {
        "cookies": {
            "items": [],
            "total": 0,
            "tracking": [],
            "pre_consent": [],
            "missing_secure": [],
            "missing_samesite": [],
            "pre_consent_tracking": [],
            "pre_consent_nonessential": []
        },
        "findings": [],
        "tracking_ids": [
            {
                "type": "google_tag_manager",
                "value": "GTM-TLFJ5S2",
                "provider": "Google Tag Manager"
            }
        ],
        "tracking_scripts": [],
        "consent_hint_found": false,
        "privacy_policy_hint_found": true
    },
    "consent_audit": {
        "color": "red",
        "score": 42,
        "checks": [
            {
                "id": "banner_visible",
                "ok": true,
                "label": "Cookie-/Consent-Hinweis sichtbar",
                "detail": "Ein Hinweis mit Cookie-/Einwilligungsbezug wurde im sichtbaren Text erkannt."
            },
            {
                "id": "reject_visible",
                "ok": false,
                "label": "Ablehnen gleichwertig erreichbar",
                "detail": "Ablehnen oder nur notwendige Cookies wurde im Text oder Browser erkannt. Browser-Buttons: 0."
            },
            {
                "id": "settings_visible",
                "ok": true,
                "label": "Einstellungen oder Auswahl vorhanden",
                "detail": "Eine Einstellungs- oder Auswahlmoeglichkeit wurde im Text oder Browser erkannt. Browser-Buttons: 1."
            },
            {
                "id": "browser_reject_visible",
                "ok": false,
                "label": "Ablehnen im sichtbaren Banner",
                "detail": "Sichtbare Banner-Controls: Akzeptieren 1, Ablehnen 0, Einstellungen 1."
            },
            {
                "id": "browser_settings_visible",
                "ok": true,
                "label": "Einstellungen im sichtbaren Banner",
                "detail": "Sichtbare Banner-Controls: Akzeptieren 1, Ablehnen 0, Einstellungen 1."
            },
            {
                "id": "reject_equally_prominent",
                "ok": true,
                "label": "Ablehnen nicht deutlich schwaecher dargestellt",
                "detail": "Groessen-Verhältnis Ablehnen/Akzeptieren: nicht messbar."
            },
            {
                "id": "reject_button_clickable",
                "ok": true,
                "label": "Ablehnen technisch klickbar",
                "detail": "Wenn ein Ablehnen-Button sichtbar ist, klickt SaferPage ihn im Chromium-Browser einmal an."
            },
            {
                "id": "no_new_cookies_after_reject",
                "ok": true,
                "label": "Keine neuen Cookies nach Ablehnen",
                "detail": "0 neue Cookie(s) nach dem Ablehnen-Klick."
            },
            {
                "id": "no_tracking_storage_after_reject",
                "ok": true,
                "label": "Kein Tracking-Storage nach Ablehnen",
                "detail": "0 Tracking-Hinweis(e) im Web Storage nach Ablehnen."
            },
            {
                "id": "no_privacy_domains_after_reject",
                "ok": true,
                "label": "Keine neuen Tracking-Kontakte nach Ablehnen",
                "detail": "0 neue datenschutzrelevante Domain(s) nach Ablehnen."
            },
            {
                "id": "gpc_signal_respected",
                "ok": false,
                "label": "GPC-Signal ohne Tracking-Hinweise",
                "detail": "GPC-Aufruf: 1 datenschutzrelevante Domain(s), 0 Drittanbieter-Cookie(s), 0 Storage-Hinweis(e)."
            },
            {
                "id": "no_tracking_cookies_before_consent",
                "ok": true,
                "label": "Keine Tracking-Cookies vor Einwilligung",
                "detail": "0 Tracking-Cookie(s) im Erstaufruf."
            },
            {
                "id": "no_nonessential_cookies_before_consent",
                "ok": true,
                "label": "Keine nicht notwendigen Cookies vor Einwilligung",
                "detail": "0 moeglicherweise nicht notwendige Cookie(s) im Erstaufruf."
            },
            {
                "id": "google_default_restrictive",
                "ok": false,
                "label": "Google Consent Default restriktiv",
                "detail": "Google-Tags brauchen vor dem ersten Laden restriktive Consent-Defaults."
            },
            {
                "id": "third_parties_explained",
                "ok": true,
                "label": "Drittanbieter begrenzt und erklaerbar",
                "detail": "0 datenschutzrelevante Drittanbieter-Domain(s), 9 Drittanbieter insgesamt."
            },
            {
                "id": "storage_without_tracking_hints",
                "ok": true,
                "label": "Web Storage ohne Tracking-Hinweise",
                "detail": "0 Storage-Key(s), 0 Tracking-Hinweis(e)."
            },
            {
                "id": "cmp_api_detected_when_needed",
                "ok": true,
                "label": "CMP-/TCF-Signal bei Tracking erkennbar",
                "detail": "Gängige CMP-/TCF-Indikatoren: __tcfapi, __cmp, Cookiebot, OneTrust oder Usercentrics."
            },
            {
                "id": "accept_click_documented",
                "ok": true,
                "label": "Akzeptieren-Klick nachvollziehbar",
                "detail": "Accept-Test: geklickt, neue Requests 107, neue Cookies 30, neue Datenschutz-Domains 1."
            },
            {
                "id": "cmp_state_readable",
                "ok": true,
                "label": "CMP-/TCF-Zustand auslesbar",
                "detail": "TCF TC-String: ja, Cookiebot: nein, OneTrust: nein, Usercentrics: nein."
            },
            {
                "id": "cmp_default_restrictive",
                "ok": true,
                "label": "CMP-Default wirkt restriktiv",
                "detail": "TCF Purposes erlaubt: 0, TCF Vendors erlaubt: 0, Cookiebot Statistik/Marketing: nein."
            }
        ],
        "status": "kritisch",
        "summary": "Consent, Tracking oder Drittanbieter wirken im Erstaufruf deutlich nachbesserungsbeduerftig.",
        "evidence": [
            "0 Cookie(s) beim ersten Aufruf aus HTTP-Headern und Chromium",
            "0 Tracking-Script(s) im HTML",
            "0 datenschutzrelevante Drittanbieter-Domain(s)",
            "0 Storage-Key(s), 0 Tracking-Hinweis(e)",
            "Consent-Banner-Controls: Akzeptieren 1, Ablehnen 0, Einstellungen 1",
            "Ablehnen/Akzeptieren-Prominenz: nicht messbar",
            "Reject-Test: nicht ausgefuehrt, neue Cookies 0, Tracking-Storage 0, neue Datenschutz-Domains 0",
            "Accept-Test: geklickt, neue Requests 107, neue Cookies 30, neue Datenschutz-Domains 1, Drittanbieter-Cookies 18",
            "CMP-State: TCF-String ja, TCF Purposes 0, TCF Vendors 0, Cookiebot nein, OneTrust-Gruppen 0, Usercentrics-Services 0",
            "GPC-Test: aktiv, Datenschutz-Domains 1, Drittanbieter-Cookies 0, Storage-Hinweise 0",
            "CMP-/TCF-Signal: ja",
            "Google Consent Default: nein"
        ],
        "gpc_enabled": true,
        "cmp_detected": true,
        "blocking_plan": {
            "items": [
                {
                    "kind": "google_consent",
                    "level": "hoch",
                    "source": "Google",
                    "target": "Google Consent Defaults",
                    "recipes": [
                        {
                            "tool": "Google Consent Mode v2"
                        },
                        {
                            "tool": "Google Tag Manager"
                        },
                        {
                            "tool": "Cookiebot"
                        },
                        {
                            "tool": "Usercentrics"
                        },
                        {
                            "tool": "OneTrust"
                        }
                    ],
                    "category": "tag_manager",
                    "evidence": "Google-Tags erkannt, aber kein Consent-Default vor dem ersten Tag.",
                    "category_label": "Tag-Manager"
                },
                {
                    "kind": "third_party_request",
                    "level": "hoch",
                    "source": "Google Tag Manager",
                    "target": "googletagmanager.com",
                    "recipes": [
                        {
                            "tool": "Google Tag Manager"
                        },
                        {
                            "tool": "Cookiebot"
                        },
                        {
                            "tool": "Usercentrics"
                        },
                        {
                            "tool": "OneTrust"
                        },
                        {
                            "tool": "Developer-Fallback"
                        }
                    ],
                    "category": "tag_manager",
                    "evidence": "1 Request(s) im Erstaufruf · Tag-Manager",
                    "category_label": "Tag-Manager"
                }
            ],
            "summary": "2 Blockier-/Consent-Maßnahme(n) abgeleitet: 2 hoch, 0 mittel.",
            "available": true,
            "high_count": 2,
            "total_count": 2,
            "type_counts": {
                "google_consent": 1,
                "third_party_request": 1
            },
            "medium_count": 0
        },
        "tcf_api_found": true,
        "cookiebot_found": false,
        "accept_test_enabled": true,
        "browser_cookie_count": 0,
        "accept_button_clicked": true,
        "browser_storage_count": 0,
        "reject_button_clicked": false,
        "reject_less_prominent": false,
        "tcf_tc_string_present": true,
        "tracking_script_count": 0,
        "accept_button_available": true,
        "reject_button_available": false,
        "reject_prominence_ratio": 0,
        "pre_consent_cookie_count": 0,
        "pre_consent_cookie_names": [],
        "tcf_vendor_consent_count": 0,
        "third_party_domain_count": 9,
        "tcf_purpose_consent_count": 0,
        "onetrust_active_group_count": 0,
        "usercentrics_services_count": 0,
        "browser_accept_control_count": 1,
        "browser_cookie_context_found": true,
        "browser_reject_control_count": 0,
        "gpc_third_party_cookie_count": 0,
        "post_accept_new_cookie_count": 30,
        "post_reject_new_cookie_count": 0,
        "post_accept_new_request_count": 107,
        "browser_settings_control_count": 1,
        "gpc_storage_tracking_hint_count": 0,
        "cookiebot_marketing_or_statistics": false,
        "gpc_privacy_relevant_domain_count": 1,
        "pre_consent_tracking_cookie_count": 0,
        "pre_consent_tracking_cookie_names": [],
        "privacy_relevant_third_party_count": 0,
        "browser_storage_tracking_hint_count": 0,
        "post_accept_third_party_cookie_count": 18,
        "pre_consent_nonessential_cookie_count": 0,
        "pre_consent_nonessential_cookie_names": [],
        "post_accept_storage_tracking_hint_count": 3,
        "post_reject_storage_tracking_hint_count": 0,
        "post_accept_privacy_relevant_domain_count": 1,
        "post_reject_privacy_relevant_domain_count": 0
    },
    "cookie_inventory": {
        "color": "green",
        "items": [],
        "score": 100,
        "total": 0,
        "status": "unauffällig",
        "summary": "0 Cookie(s) inventarisiert: 0 Tracking-/Werbe-Cookie(s), 0 Drittanbieter-Cookie(s), 0 langlebige Cookie(s), 0 sehr lange Laufzeit(en).",
        "findings": [],
        "categories": [],
        "tracking_count": 0,
        "category_labels": {
            "consent": "Consent",
            "payment": "Zahlung",
            "unknown": "Unklar",
            "security": "Sicherheit",
            "analytics": "Analytics",
            "necessary": "Notwendig",
            "functional": "Funktional",
            "advertising": "Werbung"
        },
        "long_lived_count": 0,
        "persistent_count": 0,
        "first_party_count": 0,
        "pre_consent_count": 0,
        "retention_classes": [],
        "third_party_count": 0,
        "missing_secure_count": 0,
        "retention_risk_count": 0,
        "retention_risk_items": [],
        "very_long_lived_count": 0,
        "missing_samesite_count": 0,
        "persistent_unknown_count": 0,
        "long_lived_tracking_count": 0
    },
    "security_header_analysis": {
        "color": "yellow",
        "score": 88,
        "checks": [
            {
                "ok": false,
                "note": "Fehlt in der HTTP-Antwort.",
                "label": "HSTS",
                "value": "",
                "header": "strict-transport-security",
                "present": false,
                "purpose": "Erzwingt HTTPS nach dem ersten sicheren Aufruf.",
                "severity": "warning"
            },
            {
                "ok": true,
                "note": "",
                "label": "Content-Security-Policy",
                "value": "upgrade-insecure-requests;",
                "header": "content-security-policy",
                "present": true,
                "purpose": "Begrenzt Skript-, Frame- und Ressourcenquellen im Browser.",
                "severity": "warning"
            },
            {
                "ok": true,
                "note": "",
                "label": "X-Frame-Options",
                "value": "SAMEORIGIN",
                "header": "x-frame-options",
                "present": true,
                "purpose": "Reduziert Clickjacking-Risiken bei älteren Browsern.",
                "severity": "warning"
            },
            {
                "ok": true,
                "note": "",
                "label": "X-Content-Type-Options",
                "value": "nosniff",
                "header": "x-content-type-options",
                "present": true,
                "purpose": "Verhindert MIME-Sniffing bei Skripten und Stylesheets.",
                "severity": "warning"
            },
            {
                "ok": true,
                "note": "",
                "label": "Referrer-Policy",
                "value": "strict-origin-when-cross-origin",
                "header": "referrer-policy",
                "present": true,
                "purpose": "Begrenzt, welche URL-Informationen an Zielseiten weitergegeben werden.",
                "severity": "info"
            },
            {
                "ok": true,
                "note": "",
                "label": "Permissions-Policy",
                "value": "accelerometer=(), autoplay=(), camera=(), cross-origin-isolated=(), display-capture=(self), encrypted-media=(), fullscreen=*, geolocation=(self), gyroscope=(), keyboard-map=(), magnetometer=(), microphone=(), midi=(), pa",
                "header": "permissions-policy",
                "present": true,
                "purpose": "Begrenzt sensible Browser-Funktionen pro Seite.",
                "severity": "info"
            },
            {
                "ok": true,
                "note": "",
                "label": "Cross-Origin-Opener-Policy",
                "value": "unsafe-none",
                "header": "cross-origin-opener-policy",
                "present": true,
                "purpose": "Isoliert Top-Level-Fenster und reduziert Cross-Origin-Seiteneffekte.",
                "severity": "info"
            },
            {
                "ok": true,
                "note": "",
                "label": "Cross-Origin-Resource-Policy",
                "value": "cross-origin",
                "header": "cross-origin-resource-policy",
                "present": true,
                "purpose": "Begrenzt, welche fremden Seiten Ressourcen einbetten dürfen.",
                "severity": "info"
            },
            {
                "ok": true,
                "note": "",
                "label": "Cross-Origin-Embedder-Policy",
                "value": "unsafe-none; report-to='default'",
                "header": "cross-origin-embedder-policy",
                "present": true,
                "purpose": "Erzwingt kontrollierte Cross-Origin-Einbettungen und kann Cross-Origin Isolation ermöglichen.",
                "severity": "info"
            }
        ],
        "status": "prüfen",
        "missing": [
            "HSTS"
        ],
        "summary": "8 von 9 wichtigen Security-Headern vorhanden, 8 korrekt bewertet. CSP wirksam mit 1 Direktive(n), 0 Warnung(en), 2 Hinweis(e).",
        "findings": [
            {
                "id": "csp_missing_object_src",
                "title": "CSP ohne object-src",
                "public": true,
                "category": "security_headers",
                "severity": "info"
            },
            {
                "id": "csp_missing_base_uri",
                "title": "CSP ohne base-uri",
                "public": true,
                "category": "security_headers",
                "severity": "info"
            }
        ],
        "ok_count": 8,
        "weak_count": 0,
        "csp_analysis": {
            "color": "yellow",
            "score": 88,
            "status": "prüfen",
            "summary": "CSP wirksam mit 1 Direktive(n), 0 Warnung(en), 2 Hinweis(e).",
            "enforced": true,
            "findings": [
                {
                    "id": "csp_missing_object_src",
                    "title": "CSP ohne object-src",
                    "public": true,
                    "category": "security_headers",
                    "severity": "info"
                },
                {
                    "id": "csp_missing_base_uri",
                    "title": "CSP ohne base-uri",
                    "public": true,
                    "category": "security_headers",
                    "severity": "info"
                }
            ],
            "available": true,
            "directives": [
                {
                    "name": "upgrade-insecure-requests",
                    "value": "",
                    "values": []
                }
            ],
            "info_count": 2,
            "report_only": false,
            "finding_count": 2,
            "warning_count": 0
        },
        "missing_count": 1,
        "present_count": 8,
        "missing_info_count": 0,
        "missing_warning_count": 1
    },
    "infrastructure_analysis": {
        "signals": {
            "caa": false,
            "dnssec": false,
            "final_https": true,
            "tls_version": "TLSv1.3",
            "hsts_enabled": false,
            "address_count": 1,
            "ipv6_available": false,
            "email_protection": {
                "mx": true,
                "spf": true,
                "dmarc": true
            },
            "certificate_valid": true,
            "certificate_issuer": "E7",
            "certificate_alt_names": [
                "berlin-live.de",
                "www.berlin-live.de"
            ],
            "multiple_ip_addresses": false,
            "certificate_expires_at": "Aug  9 15:55:47 2026 GMT",
            "certificate_days_remaining": 60,
            "certificate_hostname_matches": true
        },
        "findings": [
            {
                "id": "caa_missing",
                "title": "CAA-Record fehlt",
                "public": true,
                "category": "dns",
                "severity": "info"
            }
        ],
        "risk_level": "low",
        "positive_signals": [
            "Moderne TLS-Version aktiv: TLSv1.3.",
            "DMARC ist für die Domain vorhanden."
        ]
    },
    "performance_analysis": {
        "score": 94,
        "signals": {
            "compressed": false,
            "duration_ms": 134,
            "image_count": 32,
            "script_count": 9,
            "cache_control": "max-age=300, must-revalidate, stale-while-revalidate=691200",
            "content_length": 0,
            "viewport_found": true,
            "stylesheet_count": 4
        },
        "findings": [
            {
                "id": "too_many_render_blocking_assets",
                "title": "Viele potenziell blockierende Assets",
                "public": true,
                "category": "performance",
                "severity": "info"
            }
        ],
        "risk_level": "medium"
    },
    "accessibility_analysis": {
        "color": "green",
        "score": 100,
        "status": "unauffällig",
        "signals": {
            "h1_count": 1,
            "image_count": 32,
            "button_count": 18,
            "heading_count": 36,
            "viewport_found": true,
            "html_lang_found": true,
            "form_field_count": 3,
            "image_missing_alt_count": 0,
            "buttons_without_name_count": 0,
            "form_fields_without_label_count": 0
        },
        "summary": "32 Bild(er), 3 Formularfeld(er), 18 Button(s) im passiven HTML-Sample auf Basis-Barrierefreiheit geprüft.",
        "findings": [],
        "wcag_matrix": {
            "rows": [
                {
                    "id": "wcag_non_text_content",
                    "ok": true,
                    "wcag": "WCAG 1.1.1 Non-text Content",
                    "title": "Alternativtexte für Bilder",
                    "impact": "niedrig",
                    "status": "ok",
                    "evidence": "0 von 32 Bild(er) ohne alt-Text im HTML-Sample."
                },
                {
                    "id": "wcag_form_labels",
                    "ok": true,
                    "wcag": "WCAG 1.3.1 Info and Relationships / 3.3.2 Labels or Instructions",
                    "title": "Formularfelder beschriften",
                    "impact": "niedrig",
                    "status": "ok",
                    "evidence": "0 von 3 Formularfeld(er) ohne erkennbare Beschriftung."
                },
                {
                    "id": "wcag_button_names",
                    "ok": true,
                    "wcag": "WCAG 4.1.2 Name, Role, Value",
                    "title": "Buttons mit Namen versehen",
                    "impact": "niedrig",
                    "status": "ok",
                    "evidence": "0 von 18 Button(s) ohne erkennbaren Namen."
                },
                {
                    "id": "wcag_page_language",
                    "ok": true,
                    "wcag": "WCAG 3.1.1 Language of Page",
                    "title": "Seitensprache auszeichnen",
                    "impact": "niedrig",
                    "status": "ok",
                    "evidence": "HTML-lang-Attribut gefunden."
                },
                {
                    "id": "wcag_heading_structure",
                    "ok": true,
                    "wcag": "WCAG 1.3.1 Info and Relationships / 2.4.6 Headings and Labels",
                    "title": "Überschriftenstruktur",
                    "impact": "niedrig",
                    "status": "ok",
                    "evidence": "1 H1 und 36 Überschrift(en) im HTML-Sample."
                },
                {
                    "id": "wcag_mobile_reflow",
                    "ok": true,
                    "wcag": "WCAG 1.4.10 Reflow",
                    "title": "Mobile Viewport-Basis",
                    "impact": "niedrig",
                    "status": "ok",
                    "evidence": "Viewport-Meta-Tag gefunden."
                }
            ],
            "summary": "0 WCAG-/EAA-Prüfpunkt(e) auffällig, davon 0 mit hoher Auswirkung.",
            "standard": "WCAG 2.2 orientierte Basisprüfung",
            "available": true,
            "issue_count": 0,
            "high_impact_count": 0
        }
    },
    "domain_history": {
        "status": [
            "active"
        ],
        "summary": "RDAP liefert kein klares Registrierungsdatum.",
        "age_days": null,
        "findings": [],
        "available": true,
        "registrar": "",
        "expires_at": "",
        "risk_level": "unknown",
        "registered_at": "",
        "expires_in_days": null,
        "last_changed_at": "2024-11-05T13:41:58+00:00"
    },
    "data_entry_analysis": {
        "forms": [
            {
                "purpose": "Formular",
                "field_count": 0,
                "source": "crawl",
                "path": "/datenschutz",
                "url": "https://www.berlin-live.de/datenschutz"
            },
            {
                "purpose": "Formular",
                "field_count": 0,
                "source": "crawl",
                "path": "/impressum",
                "url": "https://www.berlin-live.de/impressum"
            },
            {
                "purpose": "Formular",
                "field_count": 0,
                "source": "crawl",
                "path": "/kontakt",
                "url": "https://www.berlin-live.de/kontakt"
            },
            {
                "purpose": "Formular",
                "field_count": 0,
                "source": "crawl",
                "path": "/newsletter",
                "url": "https://www.berlin-live.de/newsletter"
            }
        ],
        "score": 84,
        "summary": "Crawl fand 9 Formular(e) auf 4 geprüften Seite(n), u. a. /datenschutz, /impressum, /kontakt, /newsletter.",
        "findings": [],
        "form_count": 9,
        "risk_level": "medium",
        "field_count": 2,
        "asks_for_data": true,
        "payment_providers": [],
        "detected_data_types": [
            {
                "id": "contact",
                "count": 1,
                "label": "Kontaktformular"
            },
            {
                "id": "newsletter",
                "count": 1,
                "label": "Newsletter"
            }
        ],
        "privacy_context_found": true,
        "operator_context_found": true,
        "crawl_form_page_count": 4,
        "crawl_form_pages": [
            {
                "url": "https://www.berlin-live.de/datenschutz",
                "path": "/datenschutz",
                "category": "datenschutz",
                "form_count": 2
            },
            {
                "url": "https://www.berlin-live.de/impressum",
                "path": "/impressum",
                "category": "impressum",
                "form_count": 2
            },
            {
                "url": "https://www.berlin-live.de/kontakt",
                "path": "/kontakt",
                "category": "kontakt",
                "form_count": 2
            },
            {
                "url": "https://www.berlin-live.de/newsletter",
                "path": "/newsletter",
                "category": "newsletter",
                "form_count": 3
            }
        ]
    },
    "pii_exposure_analysis": {
        "color": "yellow",
        "score": 82,
        "checks": [
            {
                "id": "current_url",
                "ok": true,
                "count": 0,
                "label": "Aktuelle URL",
                "detail": "Keine sensiblen Query-Parameter erkannt."
            },
            {
                "id": "link_queries",
                "ok": true,
                "count": 0,
                "label": "Link-Parameter",
                "detail": "Keine sensiblen Link-Querys erkannt."
            },
            {
                "id": "get_forms",
                "ok": true,
                "count": 0,
                "label": "GET-Formulare",
                "detail": "Keine personenbezogenen GET-Formulare erkannt."
            },
            {
                "id": "external_forms",
                "ok": true,
                "count": 0,
                "label": "Externe Formularziele",
                "detail": "Keine externen Formularziele mit personenbezogenen Feldern erkannt."
            },
            {
                "id": "tracking_context",
                "ok": false,
                "count": 1,
                "label": "Tracking neben Dateneingabe",
                "detail": "1 datenschutzrelevante Drittanbieter."
            }
        ],
        "status": "prüfen",
        "summary": "1 PII-/Datenleck-Hinweis(e) aus URL-, Formular- und Browserkontext.",
        "findings": [
            {
                "id": "pii_tracking_on_data_entry_page",
                "title": "Dateneingabe und datenschutzrelevante Drittanbieter im selben Browseraufruf",
                "public": true,
                "category": "privacy",
                "severity": "warning",
                "third_party_count": 1
            }
        ],
        "link_hits": [],
        "finding_count": 1,
        "current_url_hits": [],
        "tracking_context": true,
        "sensitive_get_forms": []
    },
    "scan_history_analysis": {
        "available": true,
        "summary": "Vergleich mit dem vorherigen gespeicherten Scan: Score +0 Punkte, 1 neue und 2 behobene Hinweis(e).",
        "trend": "unverändert",
        "score_delta": 0,
        "previous_score": 0,
        "current_score": 0,
        "previous_scan_id": "98c37788-9a65-4dcb-8709-a1328a8511e8",
        "previous_created_at": "2026-06-08 20:27:53.434048+02",
        "new_findings": [
            {
                "id": "browser_consent_reject_missing",
                "title": "Kein sichtbarer Ablehnen-Button im Banner",
                "severity": "warning"
            }
        ],
        "resolved_findings": [
            {
                "id": "browser_consent_accept_only",
                "title": "Consent-Banner wirkt im Browser wie Akzeptieren-only",
                "severity": "warning"
            },
            {
                "id": "browser_consent_settings_missing",
                "title": "Keine sichtbaren Cookie-Einstellungen im Banner",
                "severity": "info"
            }
        ],
        "technical_changes": {
            "available": true,
            "summary": "0 neue und 0 entfernte technische Datenschutz-Signal(e): Cookies, Drittanbieter und externe Skriptquellen.",
            "new_cookie_count": 0,
            "removed_cookie_count": 0,
            "new_third_party_count": 0,
            "removed_third_party_count": 0,
            "new_script_source_count": 0,
            "removed_script_source_count": 0,
            "new_cookies": [],
            "removed_cookies": [],
            "new_third_parties": [],
            "removed_third_parties": [],
            "new_script_sources": [],
            "removed_script_sources": []
        },
        "history": [
            {
                "scan_id": "177c03f4-80ea-42d0-be27-7a182b3a31e4",
                "created_at": "2026-06-09 23:56:20.666357+02",
                "score": 0,
                "verdict": "riskant",
                "finding_count": 25,
                "integrity_root_hash": "1c329f485c790f17e05d20e2b72490967aa52b86581528602eedcd287be5db73",
                "integrity_available_hash_count": 9,
                "current": true
            },
            {
                "scan_id": "98c37788-9a65-4dcb-8709-a1328a8511e8",
                "created_at": "2026-06-08 20:27:53.434048+02",
                "score": 0,
                "verdict": "riskant",
                "finding_count": 26,
                "integrity_root_hash": "c56a5e2d8d16b9e9797ed50c6f6206aa9fe759d3e31a439a3205ce31fef66c58",
                "integrity_available_hash_count": 9,
                "current": false
            }
        ]
    },
    "benchmark_analysis": {
        "host": "berlin-live.de",
        "rank": 1,
        "score": 0,
        "status": "im_mittelfeld",
        "summary": "berlin-live.de liegt mit 0 Punkten ungefähr im gespeicherten Vergleichsfeld. Weil viele gespeicherte Checks bei 0 Punkten liegen, zeigt die Detailansicht zusätzlich aktive Peers mit Durchschnitt 17.1.",
        "available": true,
        "peer_count": 1325,
        "percentile": 0,
        "distribution": {
            "0_39": 1321,
            "40_59": 3,
            "60_79": 1,
            "80_100": 0
        },
        "median_score": 0,
        "average_score": 1.1,
        "comparison_basis": "Neuester gespeicherter SaferPage-Scan je Domain; überwiegend deutschsprachige gespeicherte Checks.",
        "same_score_count": 0,
        "better_than_count": 0,
        "qualified_peer_count": 82,
        "zero_score_count": 1243,
        "top_quartile_score": 0,
        "top_decile_score": 0,
        "qualified_average_score": 17.1,
        "qualified_median_score": 16,
        "qualified_top_quartile_score": 24,
        "qualified_top_decile_score": 32,
        "thresholds": [
            {
                "id": "critical",
                "label": "Kritisch",
                "range": "0-39",
                "met": true
            },
            {
                "id": "basic",
                "label": "Basis stabilisieren",
                "range": "40-59",
                "met": false
            },
            {
                "id": "managed",
                "label": "Gesteuert",
                "range": "60-79",
                "met": false
            },
            {
                "id": "strong",
                "label": "Stark",
                "range": "80-100",
                "met": false
            }
        ],
        "risk_tier": "kritisch",
        "target_score": 40,
        "aspirational_target_score": 60,
        "gap_to_target": 40,
        "gap_to_top_quartile": 24,
        "gap_to_strong": 80,
        "query_mode": "php_ttl_cache_refresh",
        "cache_ttl_seconds": 300
    },
    "audit_receipt": {
        "url": "https://berlin-live.de/",
        "host": "berlin-live.de",
        "status": "verfügbar",
        "bot_url": "https://saferpage.de/bot",
        "summary": "Prüfbeleg für berlin-live.de: kontrollierter HTTP-/Browser-Kurzcheck mit 46 Request(s), 4 Consent-Zustand/Zuständen und 6 Artefakt(en).",
        "renderer": "playwright-chromium",
        "artifacts": [
            {
                "label": "Öffentlicher Kurzreport",
                "detail": "https://saferpage.de/berlin-live.de",
                "status": "verfügbar"
            },
            {
                "label": "JSON-Export",
                "detail": "Maschinenlesbarer Report mit Modulen, Nachweisen und Tabellen.",
                "status": "verfügbar"
            },
            {
                "label": "CSV-Export",
                "detail": "Tabellarische Prüfzeilen für Betreiber, Datenschutz und Technik.",
                "status": "verfügbar"
            },
            {
                "label": "160x150 Seitenvorschau",
                "detail": "/cache/screenshots/berlin-live.de-160x150-42d9a49b730cde3554.png",
                "status": "verfügbar"
            },
            {
                "label": "Empfänger-/Anbieterinventar",
                "detail": "9 Anbieterzeile(n), 4 AVV-/Rollenprüfung(en).",
                "status": "auffällig"
            },
            {
                "label": "Barrierefreiheitserklärung-Entwurf",
                "detail": "0 bekannte Barrierefreiheits-Punkt(e).",
                "status": "Vorläufig vollständig konform im automatischen Basischeck"
            }
        ],
        "available": true,
        "final_url": "https://www.berlin-live.de/",
        "checked_at": "2026-06-09T21:56:20+00:00",
        "share_text": "SaferPage Prüfbeleg berlin-live.de: 46 Browser-Request(s), 9 Drittanbieter, 0 Cookie-/Storage-Einträge, geprüft am 2026-06-09T21:56:20.",
        "user_agent": "SaferPageBot/0.2 (+https://saferpage.de/bot; passive website safety check; no attack tests)",
        "limitations": [
            "Öffentliche Nachweise enthalten keine Cookie-Werte und keine vollständigen Request-URLs.",
            "Der Scan ist ein passiver Browser- und HTTP-Kurzcheck; rechtliche Bewertung bleibt Betreiberaufgabe.",
            "Dynamische Inhalte können sich je nach Region, Zeit, Gerät und Consent-Auswahl ändern."
        ],
        "scan_context": "manual",
        "coverage_items": [
            {
                "label": "HTTP/DNS/TLS",
                "value": "HTTP 200 · DNS ok · TLS ok"
            },
            {
                "label": "Browserlauf",
                "value": "46 Request(s), 9 Drittanbieter-Domain(s), 0 Browser-Cookie(s)."
            },
            {
                "label": "Consent-Zustände",
                "value": "4 Zustand/Zustände: Default, Ablehnen, Akzeptieren und GPC soweit verfügbar."
            },
            {
                "label": "Seitenabdeckung",
                "value": "8 priorisierte Unterseite(n) im Nachweispack."
            },
            {
                "label": "Drittanbieter-Auszug",
                "value": "9 Anbieterzeile(n) im öffentlichen Nachweis."
            },
            {
                "label": "Cookie-Auszug",
                "value": "0 Cookie-Zeile(n) im öffentlichen Nachweis."
            }
        ],
        "confidence_score": 70,
        "browser_final_url": "https://www.berlin-live.de/"
    },
    "evidence_integrity_manifest": {
        "host": "berlin-live.de",
        "status": "verfügbar",
        "summary": "Integritätsmanifest für berlin-live.de: 9/9 Nachweisbereich(e) mit SHA-256-Hash dokumentiert.",
        "sections": [
            {
                "id": "audit_receipt",
                "hash": "8fdd9df4fd786026ae5cc08f922604c8eab4a3f95e1654d73f10efd429165817",
                "count": 18,
                "label": "Prüfbeleg",
                "detail": "Kanonischer JSON-Hash des kompakten Prüfbelegs.",
                "status": "verfügbar"
            },
            {
                "id": "protocol",
                "hash": "2a05bae61a98e9f8c6007f7601206ed7c98f6ff01d92166e0cd28d9eafcc01f8",
                "count": 15,
                "label": "Scan-Protokoll",
                "detail": "URL, Endziel, User-Agent, Zeitstempel, HTTP/DNS/TLS und Renderer.",
                "status": "verfügbar"
            },
            {
                "id": "checkpoints",
                "hash": "56e8859c95d75f42ec49abdb97e7f1448ed904d26dc9b05434679d42b5c8f7f3",
                "count": 6,
                "label": "Prüfschritte",
                "detail": "Kanonischer JSON-Hash der dokumentierten Prüfstationen.",
                "status": "verfügbar"
            },
            {
                "id": "consent_states",
                "hash": "677915fe814dc1977525b76dabd99555819c7e34da454a24dd0a3c3bd4a4842f",
                "count": 4,
                "label": "Consent-Zustände",
                "detail": "Default-, Ablehnen-, Akzeptieren- und GPC-Nachweise soweit verfügbar.",
                "status": "verfügbar"
            },
            {
                "id": "third_party_evidence",
                "hash": "1c87b898c9e283d77d42ce52c4fb84212f3fad14e35ea4a7d7ab89de9ce7f4f5",
                "count": 9,
                "label": "Drittanbieter-Auszug",
                "detail": "Sanitisierte Anbieter-, Kategorie-, Transfer- und Request-Zählwerte.",
                "status": "verfügbar"
            },
            {
                "id": "cookie_evidence",
                "hash": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                "count": 0,
                "label": "Cookie-Auszug",
                "detail": "Sanitisierte Cookie-Metadaten ohne Cookie-Werte.",
                "status": "leer"
            },
            {
                "id": "request_samples",
                "hash": "8b9d2c8b349c175fe09a66d502fcfbf7943b3b1a71edc9173d8af7ac79680571",
                "count": 10,
                "label": "Request-Samples",
                "detail": "Sanitisierte Drittanbieter-Samples ohne vollständige Request-URLs.",
                "status": "verfügbar"
            },
            {
                "id": "checked_pages",
                "hash": "5b84209bd32ddbf46a455df1dd4a410c05629144c598a1b73fa57084ec95641a",
                "count": 8,
                "label": "Geprüfte Unterseiten",
                "detail": "Priorisierte Pfade aus Sitemap, Pflichtseiten und interner Linkstruktur.",
                "status": "verfügbar"
            },
            {
                "id": "screenshot_file",
                "hash": "a64e8a5338ee483d14229ab6da151002b637467b52d359509f9353605d3fe2a8",
                "count": 4939,
                "label": "160x150 Seitenvorschau-Datei",
                "detail": "/cache/screenshots/berlin-live.de-160x150-42d9a49b730cde3554.png",
                "status": "verfügbar"
            }
        ],
        "algorithm": "sha256",
        "available": true,
        "root_hash": "1c329f485c790f17e05d20e2b72490967aa52b86581528602eedcd287be5db73",
        "checked_at": "2026-06-09T21:56:20+00:00",
        "limitations": [
            "Das Manifest schützt die im Report veröffentlichten/sanitisierten Nachweise, nicht verdeckte Cookie-Werte oder vollständige Request-URLs.",
            "Ohne externe qualifizierte Zeitstempelung beweist der Hash Integrität des exportierten Artefakts, aber keine amtliche Zustellung."
        ],
        "section_count": 9,
        "canonicalization": "JSON UTF-8, sort_keys=true, kompakte Separatoren; Screenshot als rohe Datei-Bytes.",
        "available_hash_count": 9
    },
    "audit_evidence_pack": {
        "status": "verfügbar",
        "summary": "Nachweisprotokoll mit 46 Browser-Request(s), 0 Cookie-Nachweis(en), 9 Drittanbieter-Auszug/auszügen und 4 Consent-Zustand/Zuständen.",
        "protocol": {
            "host": "berlin-live.de",
            "dns_ok": true,
            "tls_ok": true,
            "bot_url": "https://saferpage.de/bot",
            "renderer": "playwright-chromium",
            "final_url": "https://www.berlin-live.de/",
            "input_url": "https://berlin-live.de/",
            "checked_at": "2026-06-09T21:56:20+00:00",
            "user_agent": "SaferPageBot/0.2 (+https://saferpage.de/bot; passive website safety check; no attack tests)",
            "http_status": 200,
            "scan_context": "manual",
            "screenshot_url": "/cache/screenshots/berlin-live.de-160x150-42d9a49b730cde3554.png",
            "googlebot_status": 200,
            "browser_final_url": "https://www.berlin-live.de/",
            "dns_address_count": 1
        },
        "checkpoints": [
            {
                "label": "DNS",
                "detail": "1 Adresse(n) aufgelöst.",
                "status": "ok"
            },
            {
                "label": "TLS/HTTPS",
                "detail": "TLSv1.3",
                "status": "ok"
            },
            {
                "label": "HTTP-Abruf",
                "detail": "Status 200, Endziel https://www.berlin-live.de/.",
                "status": "ok"
            },
            {
                "label": "Browserlauf",
                "detail": "46 Request(s), 9 Drittanbieter-Domain(s).",
                "status": "ok"
            },
            {
                "label": "Consent-Zustände",
                "detail": "Default, Ablehnen, Akzeptieren und GPC werden soweit möglich gegenübergestellt.",
                "status": "unauffällig"
            },
            {
                "label": "Exports",
                "detail": "PDF/Druck, JSON und CSV enthalten die wesentlichen Prüfnachweise.",
                "status": "verfügbar"
            }
        ],
        "limitations": [
            "Öffentliche Nachweise enthalten keine Cookie-Werte und keine vollständigen Request-URLs.",
            "Der Scan ist ein passiver Browser- und HTTP-Kurzcheck; rechtliche Bewertung bleibt Betreiberaufgabe.",
            "Dynamische Inhalte können sich je nach Region, Zeit, Gerät und Consent-Auswahl ändern."
        ],
        "checked_pages": [
            {
                "path": "/datenschutz",
                "source": "homepage_link",
                "status": 0,
                "category": "datenschutz"
            },
            {
                "path": "/impressum",
                "source": "homepage_link",
                "status": 0,
                "category": "impressum"
            },
            {
                "path": "/kontakt",
                "source": "homepage_link",
                "status": 0,
                "category": "kontakt"
            },
            {
                "path": "/newsletter",
                "source": "homepage_link",
                "status": 0,
                "category": "newsletter"
            },
            {
                "path": "/panorama/rock-am-ring-vorverkauf-tickets-preise-id609636.html",
                "source": "homepage_link",
                "status": 0,
                "category": "preise"
            },
            {
                "path": "/",
                "source": "compliance_fetch+sitemap",
                "status": 0,
                "category": "unterseite"
            },
            {
                "path": "/autoren/aaron-tanzmann",
                "source": "sitemap",
                "status": 0,
                "category": "unterseite"
            },
            {
                "path": "/autoren/alexander-kessel",
                "source": "sitemap",
                "status": 0,
                "category": "unterseite"
            }
        ],
        "cookie_evidence": [],
        "browser_evidence": {
            "gpc_enabled": true,
            "request_count": 46,
            "storage_total": 0,
            "accept_clicked": true,
            "reject_clicked": false,
            "browser_cookie_count": 0,
            "contacted_domain_count": 10,
            "third_party_domain_count": 9,
            "storage_tracking_hint_count": 0,
            "privacy_relevant_domain_count": 1
        },
        "storage_evidence": {
            "tracking_key_hints": [],
            "local_storage_total": 0,
            "session_storage_total": 0
        },
        "third_party_evidence": [
            {
                "host": "googletagmanager.com",
                "category": "Tag-Manager",
                "provider": "Google Tag Manager",
                "transfer": "Drittland/USA",
                "risk_level": "mittel",
                "request_count": 1,
                "resource_types": [
                    "script"
                ],
                "privacy_relevant": true
            },
            {
                "host": "cdn.consentmanager.net",
                "category": "Sonstige",
                "provider": "cdn.consentmanager.net",
                "transfer": "Jurisdiktion unklar",
                "risk_level": "niedrig",
                "request_count": 6,
                "resource_types": [
                    "image",
                    "script",
                    "document"
                ],
                "privacy_relevant": false
            },
            {
                "host": "cp.berlin-live.de",
                "category": "Sonstige",
                "provider": "cp.berlin-live.de",
                "transfer": "EU/EWR",
                "risk_level": "niedrig",
                "request_count": 6,
                "resource_types": [
                    "fetch",
                    "script"
                ],
                "privacy_relevant": false
            },
            {
                "host": "anonym.data.funkedigital.de",
                "category": "Sonstige",
                "provider": "anonym.data.funkedigital.de",
                "transfer": "EU/EWR",
                "risk_level": "niedrig",
                "request_count": 1,
                "resource_types": [
                    "fetch"
                ],
                "privacy_relevant": false
            },
            {
                "host": "b.delivery.consentmanager.net",
                "category": "Sonstige",
                "provider": "b.delivery.consentmanager.net",
                "transfer": "Jurisdiktion unklar",
                "risk_level": "niedrig",
                "request_count": 1,
                "resource_types": [
                    "script"
                ],
                "privacy_relevant": false
            },
            {
                "host": "c.delivery.consentmanager.net",
                "category": "Sonstige",
                "provider": "c.delivery.consentmanager.net",
                "transfer": "Jurisdiktion unklar",
                "risk_level": "niedrig",
                "request_count": 1,
                "resource_types": [
                    "image"
                ],
                "privacy_relevant": false
            },
            {
                "host": "scout.data.funkedigital.de",
                "category": "Sonstige",
                "provider": "scout.data.funkedigital.de",
                "transfer": "EU/EWR",
                "risk_level": "niedrig",
                "request_count": 1,
                "resource_types": [
                    "script"
                ],
                "privacy_relevant": false
            },
            {
                "host": "sol.berlin-live.de",
                "category": "Sonstige",
                "provider": "sol.berlin-live.de",
                "transfer": "EU/EWR",
                "risk_level": "niedrig",
                "request_count": 1,
                "resource_types": [
                    "script"
                ],
                "privacy_relevant": false
            },
            {
                "host": "spark.cloud.funkedigital.de",
                "category": "Sonstige",
                "provider": "spark.cloud.funkedigital.de",
                "transfer": "EU/EWR",
                "risk_level": "niedrig",
                "request_count": 1,
                "resource_types": [
                    "script"
                ],
                "privacy_relevant": false
            }
        ],
        "external_script_count": 3,
        "consent_state_evidence": [
            {
                "label": "Erstaufruf",
                "cookie_count": 0,
                "domain_count": 9,
                "request_count": 19,
                "storage_tracking_hint_count": 0,
                "privacy_relevant_domain_count": 1
            },
            {
                "label": "Nach Ablehnen neu",
                "cookie_count": 0,
                "domain_count": 0,
                "request_count": 0,
                "storage_tracking_hint_count": 0,
                "privacy_relevant_domain_count": 0
            },
            {
                "label": "Nach Akzeptieren neu",
                "cookie_count": 0,
                "domain_count": 11,
                "request_count": 60,
                "storage_tracking_hint_count": 0,
                "privacy_relevant_domain_count": 0
            },
            {
                "label": "GPC-Aufruf",
                "cookie_count": 0,
                "domain_count": 9,
                "request_count": 19,
                "storage_tracking_hint_count": 0,
                "privacy_relevant_domain_count": 1
            }
        ],
        "request_sample_evidence": [
            {
                "host": "spark.cloud.funkedigital.de",
                "query_keys": [],
                "resource_type": "script",
                "query_key_count": 0,
                "referrer_has_path": false,
                "referrer_has_query": false,
                "sensitive_query_key_count": 0
            },
            {
                "host": "sol.berlin-live.de",
                "query_keys": [
                    "id"
                ],
                "resource_type": "script",
                "query_key_count": 1,
                "referrer_has_path": false,
                "referrer_has_query": false,
                "sensitive_query_key_count": 0
            },
            {
                "host": "b.delivery.consentmanager.net",
                "query_keys": [
                    "cdid",
                    "h",
                    "l",
                    "o"
                ],
                "resource_type": "script",
                "query_key_count": 4,
                "referrer_has_path": false,
                "referrer_has_query": false,
                "sensitive_query_key_count": 0
            },
            {
                "host": "cdn.consentmanager.net",
                "query_keys": [],
                "resource_type": "script",
                "query_key_count": 0,
                "referrer_has_path": false,
                "referrer_has_query": false,
                "sensitive_query_key_count": 0
            },
            {
                "host": "scout.data.funkedigital.de",
                "query_keys": [],
                "resource_type": "script",
                "query_key_count": 0,
                "referrer_has_path": false,
                "referrer_has_query": false,
                "sensitive_query_key_count": 0
            },
            {
                "host": "googletagmanager.com",
                "query_keys": [
                    "id",
                    "gtg_health"
                ],
                "resource_type": "script",
                "query_key_count": 2,
                "referrer_has_path": false,
                "referrer_has_query": false,
                "sensitive_query_key_count": 0
            },
            {
                "host": "cdn.consentmanager.net",
                "query_keys": [],
                "resource_type": "script",
                "query_key_count": 0,
                "referrer_has_path": false,
                "referrer_has_query": false,
                "sensitive_query_key_count": 0
            },
            {
                "host": "cp.berlin-live.de",
                "query_keys": [],
                "resource_type": "script",
                "query_key_count": 0,
                "referrer_has_path": false,
                "referrer_has_query": false,
                "sensitive_query_key_count": 0
            },
            {
                "host": "anonym.data.funkedigital.de",
                "query_keys": [],
                "resource_type": "fetch",
                "query_key_count": 0,
                "referrer_has_path": false,
                "referrer_has_query": false,
                "sensitive_query_key_count": 0
            },
            {
                "host": "cp.berlin-live.de",
                "query_keys": [],
                "resource_type": "fetch",
                "query_key_count": 0,
                "referrer_has_path": false,
                "referrer_has_query": false,
                "sensitive_query_key_count": 0
            }
        ]
    },
    "adtech_transparency_evidence": {
        "schema": "https://saferpage.de/schemas/adtech-transparency-evidence.v1",
        "available": false,
        "status": "not_in_stored_report",
        "summary": "Dieser gespeicherte Scan enthält keine AdTech-Transparenzdatei-Evidence. Daraus wird keine Aussage zu Werbeinventarqualität, Fraud-Freiheit, Consent-Konformität oder Anbieterberechtigung abgeleitet.",
        "guardrails": [
            "Nur als Boundary exportiert",
            "Keine Nachbewertung alter Scans",
            "Keine Betreiber-Empfehlung im Testresult-JSON"
        ]
    },
    "security_trust_policy_evidence": {
        "schema": "https://saferpage.de/schemas/security-trust-policy-evidence.v1",
        "available": false,
        "status": "not_in_stored_report",
        "summary": "Dieser gespeicherte Scan enthält keine security.txt-Evidence. Daraus wird keine Aussage zu Security-Reife, Reaktionszeit oder Disclosure-Prozess abgeleitet.",
        "guardrails": [
            "Nur als Boundary exportiert",
            "Keine Nachbewertung alter Scans",
            "Keine Betreiber-Empfehlung im Testresult-JSON"
        ]
    }
}