Deutsche Bahn — Germany's largest transport operator. 411 requests, 8 domains. All external domains are either DB's own infrastructure or declared services. The at.bahn.de/1x1.gif tracking pixel fires with no consent recorded. Optimizely and Verint initiate requests that end up blocked by the browser.
Request timeline
Declared versus actual
Transfer timings
DB's own analytics endpoint. /ccrm → 302.
1x1.gif tracking pixel. Tealium/Adobe Analytics.
Optimizely A/B datafile. Initiated by JS before being blocked.
Verint SDK next-bahn-de. EU endpoint. Initiated before being blocked.
Detected trackers
- DB Analytics / Tealium (at.bahn.de/ccrm, cdn-at.bahn.de/1x1.gif)
- Optimizely A/B testing (cdn.optimizely.com — status 0, blocked)
- Verint Systems (ucm-eu.verint-cdn.com — status 0, blocked)
Indicators of GDPR non-compliance
- GDPR Art. 6(1), Art. 7; TDDDG § 25at.bahn.de/ccrm (+3811 ms) and cdn-at.bahn.de/1x1.gif (+4070 ms) load with no cookie banner recorded in the HAR and no SET-Cookie headers in the responses. 1x1.gif is a classic Tealium/Adobe Analytics tracking pixel. initTracking-DFtVjSRH.js and onConsentProvidedOrEdited-GrrqcBQr.js load as part of the main JS bundle, yet the tracking pixel fires before explicit user consent is recorded in the HAR.
- TDDDG § 25 — Optimizely and Verint initiated before consentOptimizely (cdn.optimizely.com, +4588 ms) and Verint (ucm-eu.verint-cdn.com, +4980 ms) initiate network requests — both with status 0 (blocked by the audit browser's content blocker, not by any consent mechanism). The fact that the request was initiated means the JS code driving these requests had already executed before it was blocked. The policy declares Optimizely A/B testing and Verint data collection as requiring consent under § 25 Abs. 1 TDDDG.
Context
Deutsche Bahn AG is Germany’s federal railway company, responsible for passenger and freight transport. Ticket sales, bookings, account management. HAR: 411 requests, 8 domains. 390 requests to www.bahn.de, 9 to assets.static-bahn.de, 7 to cms.static-bahn.de — and 5 to external domains, two of which belong to DB itself (at.bahn.de, cdn-at.bahn.de).
Proprietary analytics infrastructure
DB uses at.bahn.de as its own analytics domain — a bahn.de subdomain, meaning it is technically first-party. Through /ccrm (+3811 ms), a redirect fires to cdn-at.bahn.de/1x1.gif (+4070 ms). The “redirect to a 1x1 pixel” pattern is a classic implementation of Tealium iQ Tag Management with an Adobe Analytics beacon. The policy confirms that Tealium and Adobe Analytics are used for analytics, with IP addresses anonymized where required.
There is no cookie banner and no SET-Cookie in the HAR. This means either that consent was carried over from a previous session (though the Cookies in the requests are also empty), or that tracking fires with no explicit user consent. The file names initTracking-DFtVjSRH.js and onConsentProvidedOrEdited-GrrqcBQr.js indicate the presence of consent logic — but its activation is not recorded in the HAR.
Optimizely and Verint — status 0
Both services are declared in the policy, and both initiate requests in the HAR — Optimizely (+4588 ms) and Verint (+4980 ms). Status 0 means the requests were blocked at the network level (uBlock Origin or a similar content blocker in the audit browser). This does not mean DB’s consent mechanism blocked them — on the contrary, the very fact that a network request to an external domain was initiated means the JS code had already executed. The browser-level blocker intercepted the request after it was initiated.
Documentation: detailed and correct
bahn.de’s privacy policy names all the providers involved by name: Tealium, Adobe Analytics, Optimizely, Qualtrics, m-pathy, Verint. For each, an address, legal basis, and description of the processing are given. For Optimizely, the stated legal basis is explicit: § 25 Abs. 1 TDDDG (consent). For Verint: Art. 6(1)(b) DSGVO (contract). This level of disclosure is unmatched by most sites in the Irish series.
Conclusion
bahn.de shows correct documentation and, apparently, the presence of a consent mechanism — but the HAR records neither a banner nor cookies, and the tracking pixel fires anyway. Two external services (Optimizely, Verint) initiate requests before being blocked by the browser. A full compliance assessment would require testing in a browser with no blockers, while observing the banner’s actual behavior.
How to verify: download the file and compute its checksum — sha256sum file.har (Linux, macOS) or certutil -hashfile file.har SHA256 (Windows); it must match the one shown. The conclusions apply to the scope of this measurement — see the limitations of the method.
4ae4bea877ba3a6226cf7a23bed2cdb7d198fb0da69677584bfdee8aa056f2f0Want a response from the company about this audit? → Open the tool
Fill in once — it will be inserted into every letter below:
All fields are required to print the document — this is a formal requirement of the letter itself (the particulars of an official submission), not data collection: nothing is sent or saved anywhere, it all stays in your browser and disappears when you close the page. See the methodology for details.
RIA DigiDoc — phone · Smart-ID / Mobile-ID
Send this letter directly to the company first — before contacting the regulator it has the right to respond (GDPR Art. 12(3) — 30 days).
Тема: Запрос доступа к персональным данным (ст. 15 GDPR) — bahn.de Кому: [укажите адрес компании — DPO / поддержка / юридический отдел] От: [Ваше имя], [контактный email] Прошу предоставить доступ к моим персональным данным, обрабатываемым в связи с использованием сайта bahn.de. 1. Категории данных и цели обработки (ст. 15(1)(a)-(c)) На основании независимого технического анализа сайта прошу подтвердить и подробно раскрыть следующие категории обработки: 1) at.bahn.de/ccrm (+3811 мс) и cdn-at.bahn.de/1x1.gif (+4070 мс) загружаются без зафиксированного в HAR cookie-баннера и без SET-Cookie в ответах. 1x1.gif — классический трекинговый пиксель Tealium/Adobe Analytics. initTracking-DFtVjSRH.js и onConsentProvidedOrEdited-GrrqcBQr.js загружаются в составе основного JS-бандла, однако трекинговый пиксель срабатывает до фиксации явного согласия пользователя в HAR. 2) Optimizely (cdn.optimizely.com, +4588 мс) и Verint (ucm-eu.verint-cdn.com, +4980 мс) инициируют сетевые запросы — оба со статусом 0 (заблокированы контент-блокировщиком браузера, а не механизмом согласия). Факт инициации запроса означает, что JS-код, управляющий этими запросами, выполнился до блокировки. Политика декларирует A/B-тестирование Optimizely и сбор данных Verint как требующие согласия по § 25 Abs. 1 TDDDG. 2. Получатели, сроки хранения и передача за пределы ЕЭЗ (ст. 15(1)(c)-(d), 46) Прошу также указать полный список третьих лиц-получателей, применимые сроки хранения по каждой категории и правовые основания передачи данных за пределы ЕЭЗ, если таковая происходит. Полный технический разбор с доказательствами (сохранённый сетевой журнал, контрольная сумма SHA-256) опубликован по адресу: https://gdpru.eu/en/audits/de-bahn-de/ 3. Автоматизированная обработка и профилирование (ст. 15(1)(h)) Прошу сообщить, применяется ли в отношении меня автоматизированное принятие решений или профилирование, и если да — раскрыть логику такой обработки. С уважением, [Ваше имя] [контактный email] [Страна] [Дата]
Subject: Data access request (GDPR Art. 15) — bahn.de To: [insert the company's address — DPO / support / legal department] From: [Your name], [contact email] I request access to my personal data processed in connection with the website bahn.de. 1. Categories of data and purposes of processing (Art. 15(1)(a)-(c)) Based on an independent technical analysis of the site, I request confirmation and detailed disclosure of the following categories of processing: 1) at.bahn.de/ccrm (+3811 ms) and cdn-at.bahn.de/1x1.gif (+4070 ms) load with no cookie banner recorded in the HAR and no SET-Cookie headers in the responses. 1x1.gif is a classic Tealium/Adobe Analytics tracking pixel. initTracking-DFtVjSRH.js and onConsentProvidedOrEdited-GrrqcBQr.js load as part of the main JS bundle, yet the tracking pixel fires before explicit user consent is recorded in the HAR. 2) Optimizely (cdn.optimizely.com, +4588 ms) and Verint (ucm-eu.verint-cdn.com, +4980 ms) initiate network requests — both with status 0 (blocked by the audit browser's content blocker, not by any consent mechanism). The fact that the request was initiated means the JS code driving these requests had already executed before it was blocked. The policy declares Optimizely A/B testing and Verint data collection as requiring consent under § 25 Abs. 1 TDDDG. 2. Recipients, retention periods, and transfers outside the EEA (Art. 15(1)(c)-(d), 46) I also request the full list of third-party recipients, the applicable retention period for each category, and the legal basis for any transfer of data outside the EEA. The full technical audit with evidence (saved network log, SHA-256 checksum) is published at: https://gdpru.eu/en/audits/de-bahn-de/ 3. Automated processing and profiling (Art. 15(1)(h)) Please state whether I am subject to automated decision-making or profiling, and if so, disclose the logic involved. Sincerely, [Your name] [contact email] [Country] [Date]
RIA DigiDoc — phone · Smart-ID / Mobile-ID
Where to file: Federal Commissioner for Data Protection (BfDI) — file a complaint online →
The regulator reviews complaints in its national language. There is an officially translated template from the European Data Protection Board (EDPB) — you can use it instead of or alongside this letter: Official EDPB complaint form (PDF, your language)
Тема: Жалоба на обработку персональных данных — bahn.de 1. Предмет жалобы Я подаю жалобу в отношении обработки моих персональных данных сайтом bahn.de. 2. Обстоятельства Я посетил сайт bahn.de и обнаружил признаки несоответствия обработки моих персональных данных требованиям GDPR. Технический разбор, опубликованный на gdpru.eu 29.05.2026 (открытая методология, воспроизводимые измерения), документирует следующие признаки: 1) at.bahn.de/ccrm (+3811 мс) и cdn-at.bahn.de/1x1.gif (+4070 мс) загружаются без зафиксированного в HAR cookie-баннера и без SET-Cookie в ответах. 1x1.gif — классический трекинговый пиксель Tealium/Adobe Analytics. initTracking-DFtVjSRH.js и onConsentProvidedOrEdited-GrrqcBQr.js загружаются в составе основного JS-бандла, однако трекинговый пиксель срабатывает до фиксации явного согласия пользователя в HAR. 2) Optimizely (cdn.optimizely.com, +4588 мс) и Verint (ucm-eu.verint-cdn.com, +4980 мс) инициируют сетевые запросы — оба со статусом 0 (заблокированы контент-блокировщиком браузера, а не механизмом согласия). Факт инициации запроса означает, что JS-код, управляющий этими запросами, выполнился до блокировки. Политика декларирует A/B-тестирование Optimizely и сбор данных Verint как требующие согласия по § 25 Abs. 1 TDDDG. Полная техническая документация опубликована по адресу: https://gdpru.eu/en/audits/de-bahn-de/ 3. Положения GDPR, соблюдение которых прошу проверить GDPR Art. 6(1), Art. 7; TDDDG § 25; TDDDG § 25 — Optimizely и Verint инициированы до согласия 4. Требование Прошу проверить изложенные обстоятельства и, если несоответствие подтвердится, принять меры, предусмотренные статьёй 58(2) GDPR. 5. Приложения Полная доказательная база — HAR-файл, контрольная сумма SHA-256 и цитата из политики конфиденциальности сайта, документирующая указанное противоречие — опубликована и проверяема по ссылке в пункте 2 выше. С уважением, [Ваше имя] [контактный email] [Страна] [Дата]
Subject: Complaint regarding personal data processing — bahn.de 1. Subject of the complaint I am filing a complaint regarding the processing of my personal data by the website bahn.de. 2. Circumstances I visited the website bahn.de and found indications that the processing of my personal data does not comply with the GDPR. The technical analysis published on gdpru.eu on 29 May 2026 (open methodology, reproducible measurements) documents the following indications: 1) at.bahn.de/ccrm (+3811 ms) and cdn-at.bahn.de/1x1.gif (+4070 ms) load with no cookie banner recorded in the HAR and no SET-Cookie headers in the responses. 1x1.gif is a classic Tealium/Adobe Analytics tracking pixel. initTracking-DFtVjSRH.js and onConsentProvidedOrEdited-GrrqcBQr.js load as part of the main JS bundle, yet the tracking pixel fires before explicit user consent is recorded in the HAR. 2) Optimizely (cdn.optimizely.com, +4588 ms) and Verint (ucm-eu.verint-cdn.com, +4980 ms) initiate network requests — both with status 0 (blocked by the audit browser's content blocker, not by any consent mechanism). The fact that the request was initiated means the JS code driving these requests had already executed before it was blocked. The policy declares Optimizely A/B testing and Verint data collection as requiring consent under § 25 Abs. 1 TDDDG. Full technical documentation is published at: https://gdpru.eu/en/audits/de-bahn-de/ 3. GDPR provisions I ask you to examine GDPR Art. 6(1), Art. 7; TDDDG § 25; TDDDG § 25 — Optimizely and Verint initiated before consent 4. Request I request that you examine the circumstances described and, if non-compliance is confirmed, apply the measures provided for in Article 58(2) GDPR. 5. Attachments The full evidence base — the HAR file, its SHA-256 checksum and the quotation from the site's privacy policy documenting the stated contradiction — is published and verifiable at the link in point 2 above. Sincerely, [Your name] [contact email] [Country] [Date]