A bus operator's website — a single capture of the homepage, 143 requests, 12 nodes, about five minutes. The Cookiebot consent management platform is in place, and the user explicitly declines consent (action=decline). Google analytics matches this choice: the GA4 events and Google Ads carry the status 'denied', cookieless. But the Microsoft Clarity session recording does not respect the refusal: the stream of the visitor's behavioural data goes to Microsoft for the whole session — both before the refusal and after it. The Exponea customer data platform, meanwhile, only loads its SDK and sends no events. The security headers are weak.
Request timeline
Declared versus actual
Transfer timings
Microsoft Clarity, project qutgpux0eg. The start of the /collect stream.
GA4 page_view, G-GXFF79XC5T, gcs=G100.
Google Ads ccm/collect, page_view, gcs=G100.
logconsent.ashx?action=decline, method strict.
The /collect stream continues after the refusal, despite the choice.
Detected trackers
- Cookiebot (consent.cookiebot.com, consentcdn.cookiebot.com) — consent management platform; the recording captures the user's choice action=decline (refusal, method strict). It does not hold the Clarity session recording
- Microsoft Clarity (www.clarity.ms, scripts.clarity.ms, i.clarity.ms; project qutgpux0eg) — session recording and heatmaps; the stream of POST requests i.clarity.ms/collect runs from +3135 ms to +313262 ms — 21 requests over five-plus minutes, including after the refusal. Disclosed in the cookie declaration as Microsoft (clarity.ms)
- Google Analytics 4 (region1.google-analytics.com, G-GXFF79XC5T) — analytics; page_view and scroll with the status gcs=G100 (both storages denied), the pings cookieless — the denial is honoured
- Google Ads (pagead2.googlesyndication.com) — ccm/collect requests with a page_view event, gcs=G100 (the denial honoured)
- Exponea / Bloomreach (api.exponea.com) — customer data platform; in the recording only the SDK loads (exponea.min.js at +1739 ms), no track event is observed
- Google Tag Manager (www.googletagmanager.com) — tag container
- First party: luxexpress.eu, luxexpress.fra1.cdn.digitaloceanspaces.com (resource CDN)
Indicators of GDPR non-compliance
- ePrivacy — Directive 2002/58/EC, Art. 5(3) (in conjunction with GDPR Art. 6(1)(a)) — session recording despite the refusalThe site has the Cookiebot consent management platform installed, and in the recording the user explicitly declined consent: the consent.cookiebot.com/logconsent.ashx request carries action=decline (at +295898 ms, method strict, country EE). Google analytics matches this choice — the GA4 events (G-GXFF79XC5T) and the Google Ads requests carry the status gcs=G100 (both storages denied), the pings cookieless. But the Microsoft Clarity session recording (project qutgpux0eg) does not respect the refusal. The stream of POST requests i.clarity.ms/collect begins at +3135 ms and continues throughout the session — 21 requests from +3135 ms to +313262 ms, that is, also after the refusal recorded at +295898 ms. Clarity records the session both before the choice and after the explicit 'no'. The Cookiebot platform does not gate this service: Google analytics honours the denial, but the session recording does not.
- GDPR Art. 32 — security of processing, weak headersThe site's main document is served via Cloudflare and, of the protective headers, sets only Strict-Transport-Security. Content-Security-Policy, Referrer-Policy, Permissions-Policy, X-Frame-Options and X-Content-Type-Options are absent. This on a carrier's site, where a visitor buys tickets and leaves contact and payment data. For a platform with this composition of data, the absence of a basic set of protective headers is a standalone security-of-processing defect.
Context
luxexpress.eu is the website of the bus operator Lux Express. The controller is stated in the ‘Policy and cookies’ document. Consent is managed by the Cookiebot platform. The site is served via Cloudflare and, of the protective headers, sets only Strict-Transport-Security; Content-Security-Policy, Referrer-Policy, Permissions-Policy, X-Frame-Options and X-Content-Type-Options are absent.
The capture is a single recording of the homepage: 143 requests, 12 nodes, about five minutes, recorded on 9 September 2026. Over the course of the session the user declines consent in the banner. Processing is described by the cookie declaration on the Cookiebot engine.
Who receives data directly
Microsoft (Clarity, session recording — before and after the refusal). Google analytics (Analytics, Ads) goes cookielessly, honouring the denial. The Exponea customer data platform loads its SDK but sends no events.
Declared vs. actual
The discrepancy here is selective: the consent platform holds one part of the stack, but not the other.
Google analytics honours the denial. Cookiebot is configured for Google’s consent mode, and after the refusal the GA4 events (G-GXFF79XC5T) and the Google Ads requests carry the status gcs=G100 — both storages denied, the pings cookieless. This is correct behaviour, and it is worth recording to the site’s credit.
But the session recording does not respect the refusal. In the recording the user explicitly declined consent — the logconsent.ashx request carries action=decline at +295898 ms, method strict. Nevertheless, the Microsoft Clarity session recording (project qutgpux0eg) runs independently of that choice: the stream of i.clarity.ms/collect requests begins at +3135 ms and continues throughout the session — 21 requests — including after the refusal, up to +313262 ms. Clarity records both before the choice and after the explicit ’no’. The Cookiebot platform does not hold this service.
Exponea is silent for now. The Exponea (Bloomreach) customer data platform, in this capture, only loads its SDK (exponea.min.js); no track event is observed in the recording. This is noted as the presence of the service, not as a transfer.
The security headers are weak. Of the protective headers the site sets only HSTS — neither Content-Security-Policy, nor Referrer-Policy, nor Permissions-Policy, nor X-Frame-Options, nor nosniff — on a platform where tickets are bought and payment data is left.
Consent: what is proven and what is not
Proven: the user declined consent. The consent.cookiebot.com/logconsent.ashx request carries action=decline, method strict, country EE.
Proven: Google analytics honours the denial. The GA4 events and the Google Ads requests carry gcs=G100 and are cookieless.
Proven: Clarity records the session before and after the refusal. The i.clarity.ms/collect stream runs from +3135 ms, continues throughout the session and includes a request after the refusal — at +313262 ms.
Proven: Exponea sends no events. Only the loading of exponea.min.js is present in the recording; no request transmitting an event is recorded.
Not proven, and not reproduced: the content of the recorded sessions. What exactly the Clarity recording captured is not reproduced in the audit; the conclusion rests on the fact of the session-recording request stream before and after the refusal.
Observation boundaries
The capture covers the homepage and records browser behaviour, not the services’ internal workings: server-side processing, the configuration of the tag container and contracts with recipients are not verified by a browser-level capture. The session-recording tool is identified by the Clarity domains and the character of the /collect stream; the type of decision (action=decline) is read from the Cookiebot request. Cookie values in the published file were removed during redaction.
The file is published redacted of personal data. Response headers, statuses, the load order, initiators, the Clarity request stream and the moment of the refusal are verified directly against the published file.
The legal assessment is made by the competent authority — Andmekaitse Inspektsioon.
Conclusion
The bus operator’s website keeps the Cookiebot consent management platform, and it holds Google analytics correctly: after the refusal the GA4 events and Google Ads carry the status ‘denied’, cookieless. But the Microsoft Clarity session recording does not respect that refusal: the stream of the visitor’s behavioural data goes to Microsoft for the whole session — both before the explicit refusal and after it. One component of the stack is honestly conditioned on consent, the other is not.
Microsoft Clarity is present in the cookie declaration as a Microsoft cookie, but session recording as a separate processing operation is not described in the document, and — most importantly — it continues despite a direct refusal. Added to this is the weakness of the security headers on a platform where tickets are bought.
Remediation: condition the Microsoft Clarity session recording on actual consent, so that under a refusal (action=decline) no recording is performed and the /collect stream stops; describe session recording in the policy as a separate processing operation with the purpose and legal basis stated; verify that the Exponea customer data platform is also conditioned on consent before it begins sending events; and set the basic set of protective headers — Content-Security-Policy, Referrer-Policy, Permissions-Policy, X-Frame-Options and X-Content-Type-Options.
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.
389e5dd22d3e940dedd9c5055971921eaa7b34ae1e8b528d7c3921ce97574174Want 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) — luxexpress.eu Кому: [укажите адрес компании — DPO / поддержка / юридический отдел] От: [Ваше имя], [контактный email] Прошу предоставить доступ к моим персональным данным, обрабатываемым в связи с использованием сайта luxexpress.eu. 1. Категории данных и цели обработки (ст. 15(1)(a)-(c)) На основании независимого технического анализа сайта прошу подтвердить и подробно раскрыть следующие категории обработки: 1) На сайте установлена платформа управления согласием Cookiebot, и пользователь в записи явно отклонил согласие: обращение consent.cookiebot.com/logconsent.ashx несёт action=decline (на +295898 мс, метод strict, страна EE). Аналитика Google этому выбору соответствует — события GA4 (G-GXFF79XC5T) и обращения Google Ads идут со статусом gcs=G100 (оба хранилища запрещены), пинги бескуковые. Но запись сессий Microsoft Clarity (проект qutgpux0eg) отказ не соблюдает. Поток POST-обращений i.clarity.ms/collect начинается на +3135 мс и продолжается на протяжении всего сеанса — 21 обращение с +3135 мс до +313262 мс, то есть и после отказа, зафиксированного на +295898 мс. Clarity ведёт запись сессии до выбора и после явного «нет». Платформа Cookiebot этот сервис не гейтит: аналитика Google запрет соблюдает, а запись сессии — нет. 2) Основной документ сайта отдаётся через Cloudflare и из защитных заголовков выставляет только Strict-Transport-Security. Отсутствуют Content-Security-Policy, Referrer-Policy, Permissions-Policy, X-Frame-Options и X-Content-Type-Options. Это происходит на сайте перевозчика, где посетитель покупает билеты и оставляет контактные и платёжные данные. Для площадки с таким составом данных отсутствие базового набора защитных заголовков — самостоятельный дефект безопасности обработки. 2. Получатели, сроки хранения и передача за пределы ЕЭЗ (ст. 15(1)(c)-(d), 46) Прошу также указать полный список третьих лиц-получателей, применимые сроки хранения по каждой категории и правовые основания передачи данных за пределы ЕЭЗ, если таковая происходит. Полный технический разбор с доказательствами (сохранённый сетевой журнал, контрольная сумма SHA-256) опубликован по адресу: https://gdpru.eu/en/audits/ee-luxexpress-eu/ 3. Автоматизированная обработка и профилирование (ст. 15(1)(h)) Прошу сообщить, применяется ли в отношении меня автоматизированное принятие решений или профилирование, и если да — раскрыть логику такой обработки. С уважением, [Ваше имя] [контактный email] [Страна] [Дата]
Subject: Data access request (GDPR Art. 15) — luxexpress.eu 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 luxexpress.eu. 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) The site has the Cookiebot consent management platform installed, and in the recording the user explicitly declined consent: the consent.cookiebot.com/logconsent.ashx request carries action=decline (at +295898 ms, method strict, country EE). Google analytics matches this choice — the GA4 events (G-GXFF79XC5T) and the Google Ads requests carry the status gcs=G100 (both storages denied), the pings cookieless. But the Microsoft Clarity session recording (project qutgpux0eg) does not respect the refusal. The stream of POST requests i.clarity.ms/collect begins at +3135 ms and continues throughout the session — 21 requests from +3135 ms to +313262 ms, that is, also after the refusal recorded at +295898 ms. Clarity records the session both before the choice and after the explicit 'no'. The Cookiebot platform does not gate this service: Google analytics honours the denial, but the session recording does not. 2) The site's main document is served via Cloudflare and, of the protective headers, sets only Strict-Transport-Security. Content-Security-Policy, Referrer-Policy, Permissions-Policy, X-Frame-Options and X-Content-Type-Options are absent. This on a carrier's site, where a visitor buys tickets and leaves contact and payment data. For a platform with this composition of data, the absence of a basic set of protective headers is a standalone security-of-processing defect. 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/ee-luxexpress-eu/ 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]
Teema: Isikuandmetele juurdepääsu taotlus (IKÜM art 15) — luxexpress.eu Kellele: [märkige ettevõtte aadress — DPO / tugi / juriidiline osakond] Kellelt: [Teie nimi], [kontakt-e-post] Palun anda mulle juurdepääs minu isikuandmetele, mida töödeldakse seoses veebisaidi luxexpress.eu kasutamisega. 1. Andmekategooriad ja töötlemise eesmärgid (IKÜM art 15(1)(a)-(c)) Sõltumatu tehnilise analüüsi põhjal palun kinnitada ja üksikasjalikult avaldada järgmised töötlemiskategooriad: 1) Saidil on nõusoleku haldamise platvorm Cookiebot ja kasutaja kirjes lükkas nõusoleku selgesõnaliselt tagasi: taotlus consent.cookiebot.com/logconsent .ashx kannab action=decline (+295898 ms, range meetod, riik EE). Google Analytics vastab sellele valikule - GA4 sündmused (G-GXFF79XC5T) ja Google Adsi apellatsioonid on staatusega gcs=G100 (mõlemad salvestused on keelatud), küpsisteta pingid. Kuid Microsoft Clarity'i seansside (projekt qutgpux0eg) salvestamine ei vasta keeldumisele. i.clarity.ms/collect POST-voog algab +3135 ms-st ja jätkub kogu seansi jooksul - 21 kõnet +3135 ms-lt +313262 ms-le, st pärast +295898 ms-l salvestatud tõrget. Selgus salvestab seansi enne valimist ja pärast selgesõnalist „ei. Cookieboti platvorm ei ole lüüsiteenus: Google Analytics keelab ja seansi salvestamine mitte. 2) Saidi põhidokument on antud läbi Cloudflare'i ja kuvab kaitserubriikidest ainult range transpordi-turvalisuse. Sisu-turvalisus-poliitika, suunaja-poliitika, load-poliitika, X-raami valikud ja X-sisu-tüüpi valikud. See juhtub vedaja veebisaidil, kus külastaja ostab pileteid ja jätab kontakti- ja makseandmed. Sellise andmekoosseisuga saidi puhul on turvapäiste põhikomplekti puudumine töötlemise turvalisuse sõltumatu puudus. 2. Vastuvõtjad, säilitustähtajad ja edastamine väljapoole EMP-d (IKÜM art 15(1)(c)-(d), 46) Palun samuti esitada täielik loetelu kolmandatest isikutest vastuvõtjatest, iga kategooria puhul kohaldatavad säilitustähtajad ning andmete EMP-välisele edastamisele kohaldatav õiguslik alus, kui selline edastamine toimub. Täielik tehniline analüüs koos tõenditega (salvestatud võrgulogi, SHA-256 kontrollsumma) on avaldatud aadressil: https://gdpru.eu/en/audits/ee-luxexpress-eu/ 3. Automatiseeritud töötlemine ja profiilianalüüs (IKÜM art 15(1)(h)) Palun teatada, kas minu suhtes kohaldatakse automatiseeritud otsuste tegemist või profiilianalüüsi, ning kui jah, siis avaldada selle loogika. Lugupidamisega, [Teie nimi] [kontakt-e-post] [Riik] [Kuupäev]
RIA DigiDoc — phone · Smart-ID / Mobile-ID
Where to file: Estonian Data Protection Inspectorate (AKI) — write to info@aki.ee
Important: AKI only handles submissions in Estonian. Translate the letter before sending.
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)
Тема: Жалоба на обработку персональных данных — luxexpress.eu 1. Предмет жалобы Я подаю жалобу в отношении обработки моих персональных данных сайтом luxexpress.eu. 2. Обстоятельства Я посетил сайт luxexpress.eu и обнаружил признаки несоответствия обработки моих персональных данных требованиям GDPR. Технический разбор, опубликованный на gdpru.eu 09.09.2026 (открытая методология, воспроизводимые измерения), документирует следующие признаки: 1) На сайте установлена платформа управления согласием Cookiebot, и пользователь в записи явно отклонил согласие: обращение consent.cookiebot.com/logconsent.ashx несёт action=decline (на +295898 мс, метод strict, страна EE). Аналитика Google этому выбору соответствует — события GA4 (G-GXFF79XC5T) и обращения Google Ads идут со статусом gcs=G100 (оба хранилища запрещены), пинги бескуковые. Но запись сессий Microsoft Clarity (проект qutgpux0eg) отказ не соблюдает. Поток POST-обращений i.clarity.ms/collect начинается на +3135 мс и продолжается на протяжении всего сеанса — 21 обращение с +3135 мс до +313262 мс, то есть и после отказа, зафиксированного на +295898 мс. Clarity ведёт запись сессии до выбора и после явного «нет». Платформа Cookiebot этот сервис не гейтит: аналитика Google запрет соблюдает, а запись сессии — нет. 2) Основной документ сайта отдаётся через Cloudflare и из защитных заголовков выставляет только Strict-Transport-Security. Отсутствуют Content-Security-Policy, Referrer-Policy, Permissions-Policy, X-Frame-Options и X-Content-Type-Options. Это происходит на сайте перевозчика, где посетитель покупает билеты и оставляет контактные и платёжные данные. Для площадки с таким составом данных отсутствие базового набора защитных заголовков — самостоятельный дефект безопасности обработки. Полная техническая документация опубликована по адресу: https://gdpru.eu/en/audits/ee-luxexpress-eu/ 3. Положения GDPR, соблюдение которых прошу проверить ePrivacy — Директива 2002/58/EC, ст. 5(3) (в связке с GDPR Art. 6(1)(a)) — запись сессий вопреки отказу; GDPR Art. 32 — безопасность обработки, слабые заголовки 4. Требование Прошу проверить изложенные обстоятельства и, если несоответствие подтвердится, принять меры, предусмотренные статьёй 58(2) GDPR. 5. Приложения Полная доказательная база — HAR-файл, контрольная сумма SHA-256 и цитата из политики конфиденциальности сайта, документирующая указанное противоречие — опубликована и проверяема по ссылке в пункте 2 выше. С уважением, [Ваше имя] [контактный email] [Страна] [Дата]
Subject: Complaint regarding personal data processing — luxexpress.eu 1. Subject of the complaint I am filing a complaint regarding the processing of my personal data by the website luxexpress.eu. 2. Circumstances I visited the website luxexpress.eu and found indications that the processing of my personal data does not comply with the GDPR. The technical analysis published on gdpru.eu on 9 September 2026 (open methodology, reproducible measurements) documents the following indications: 1) The site has the Cookiebot consent management platform installed, and in the recording the user explicitly declined consent: the consent.cookiebot.com/logconsent.ashx request carries action=decline (at +295898 ms, method strict, country EE). Google analytics matches this choice — the GA4 events (G-GXFF79XC5T) and the Google Ads requests carry the status gcs=G100 (both storages denied), the pings cookieless. But the Microsoft Clarity session recording (project qutgpux0eg) does not respect the refusal. The stream of POST requests i.clarity.ms/collect begins at +3135 ms and continues throughout the session — 21 requests from +3135 ms to +313262 ms, that is, also after the refusal recorded at +295898 ms. Clarity records the session both before the choice and after the explicit 'no'. The Cookiebot platform does not gate this service: Google analytics honours the denial, but the session recording does not. 2) The site's main document is served via Cloudflare and, of the protective headers, sets only Strict-Transport-Security. Content-Security-Policy, Referrer-Policy, Permissions-Policy, X-Frame-Options and X-Content-Type-Options are absent. This on a carrier's site, where a visitor buys tickets and leaves contact and payment data. For a platform with this composition of data, the absence of a basic set of protective headers is a standalone security-of-processing defect. Full technical documentation is published at: https://gdpru.eu/en/audits/ee-luxexpress-eu/ 3. GDPR provisions I ask you to examine ePrivacy — Directive 2002/58/EC, Art. 5(3) (in conjunction with GDPR Art. 6(1)(a)) — session recording despite the refusal; GDPR Art. 32 — security of processing, weak headers 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]
1. Kaebuse ese Esitan kaebuse seoses minu isikuandmete töötlemisega veebisaidil luxexpress.eu. 2. Asjaolud Külastasin veebisaiti luxexpress.eu ja tuvastasin märke sellest, et minu isikuandmete töötlemine ei vasta isikuandmete kaitse üldmääruse (IKÜM) nõuetele. Tehniline analüüs, mis on avaldatud aadressil gdpru.eu 09.09.2026 (avatud metoodika, korratavad mõõtmised), dokumenteerib järgmist: 1) Saidil on nõusoleku haldamise platvorm Cookiebot ja kasutaja kirjes lükkas nõusoleku selgesõnaliselt tagasi: taotlus consent.cookiebot.com/logconsent .ashx kannab action=decline (+295898 ms, range meetod, riik EE). Google Analytics vastab sellele valikule - GA4 sündmused (G-GXFF79XC5T) ja Google Adsi apellatsioonid on staatusega gcs=G100 (mõlemad salvestused on keelatud), küpsisteta pingid. Kuid Microsoft Clarity'i seansside (projekt qutgpux0eg) salvestamine ei vasta keeldumisele. i.clarity.ms/collect POST-voog algab +3135 ms-st ja jätkub kogu seansi jooksul - 21 kõnet +3135 ms-lt +313262 ms-le, st pärast +295898 ms-l salvestatud tõrget. Selgus salvestab seansi enne valimist ja pärast selgesõnalist „ei. Cookieboti platvorm ei ole lüüsiteenus: Google Analytics keelab ja seansi salvestamine mitte. 2) Saidi põhidokument on antud läbi Cloudflare'i ja kuvab kaitserubriikidest ainult range transpordi-turvalisuse. Sisu-turvalisus-poliitika, suunaja-poliitika, load-poliitika, X-raami valikud ja X-sisu-tüüpi valikud. See juhtub vedaja veebisaidil, kus külastaja ostab pileteid ja jätab kontakti- ja makseandmed. Sellise andmekoosseisuga saidi puhul on turvapäiste põhikomplekti puudumine töötlemise turvalisuse sõltumatu puudus. Täielik tehniline dokumentatsioon on avaldatud aadressil: https://gdpru.eu/en/audits/ee-luxexpress-eu/ 3. Sätted, mille järgimist palun kontrollida e-privaatsus - direktiiv 2002/58/EÜ, artikli 5 lõige 3 (koostoimes GDPRi artikli 6 lõike 1 punktiga a) - istungite salvestamine vaatamata keeldumisele; GDPR artikkel 32 – töötlemisturvalisus, nõrgad rubriigid 4. Nõue Palun kontrollida kirjeldatud asjaolusid ja mittevastavuse kinnitamisel kohaldada IKÜM artikli 58 lõikes 2 ette nähtud meetmeid. 5. Lisad Täielik tõendusmaterjal — HAR-fail, kontrollsumma SHA-256 ning veebisaidi privaatsuspoliitika tsitaat, mis dokumenteerib nimetatud vastuolu — on avaldatud ja kontrollitav punktis 2 viidatud lingil. Lugupidamisega, [Teie nimi] [kontakt-e-post] [Riik] [Kuupäev]