dhlexpress.ee
The Estonian site of the international logistics operator DHL Express — a single capture of the English-language homepage, 66 requests, 6 nodes. The OneTrust consent management platform is in place, the banner is full-featured (three buttons, category management), and Google's consent mode is respected — the GA4 and Google Ads events carry status gcs=G100, both storages denied, cookieless; Facebook loads only the SDK without events. But one detail lets it down: OneTrust's auto-blocking script (OtAutoBlock.js) returned 404 — it did not load. It is precisely this script that should prevent third-party tags from loading before consent, and because of its absence the Facebook SDK, Google Ads and the GTM container manage to initialise within the first second. The data is held by consent mode — but the mechanism gating the loading itself is broken.
Request timeline
Declared versus actual
Transfer timings
GTM-MNMS78R; the consent platform appears later (+654 ms).
OtAutoBlock.js — the mechanism for holding tags back until consent is broken.
fbevents.js initialises because of the missing auto-block.
ccm/collect, gcs=G100, dma=1, ads_data_redaction.
GA4 page_view/generate_lead, G-ZXH7E3H54N, gcs=G100.
Detected trackers
- OneTrust (cdn.cookielaw.org, ID 018dcfdf-…) — consent management platform; the «Privacy settings centre» banner with three buttons. The auto-blocking mechanism OtAutoBlock.js returned status 404 — it did not load
- Google Analytics 4 (region1.google-analytics.com, G-ZXH7E3H54N) — analytics; the page_view and generate_lead events (shipping calculation, with route parameters) carry status gcs=G100 (both storages denied), cookieless. The denial is respected
- Google Ads / Conversion (pagead2.googlesyndication.com/ccm/collect) — conversion measurement; carries status gcs=G100 and dma=1 (EEA mode), with the ads_data_redaction flag. The denial is respected
- Google Tag Manager (www.googletagmanager.com, GTM-MNMS78R) — tag container; +494 ms, before the consent platform
- Facebook / Meta (connect.facebook.net) — the SDK fbevents.js loads (+986 ms); no pixel /tr events observed in this capture
- First party and infrastructure: dhlexpress.ee (48 requests), express-resource.dhl.com (per the cookie declaration — DHL static, behind Cloudflare/F5)
- Also named in the cookie declaration (did not fire in the capture): LinkedIn, YouTube
Indicators of GDPR non-compliance
- ePrivacy — Directive 2002/58/EC, Art. 5(3) — the tag auto-blocking mechanism is broken (OtAutoBlock.js 404)The site has the OneTrust consent platform installed with a correct banner, and Google's consent mode is respected: the GA4 events (G-ZXH7E3H54N) and Google Ads (ccm/collect) carry status gcs=G100 — both storages denied, cookieless. However, OneTrust's auto-blocking script — OtAutoBlock.js — returned status 404, that is, it did not load. It is precisely this script that should prevent third-party tags from loading before consent. Because of its absence, the marketing components manage to initialise within the first second: the GTM container (+494 ms, before the consent platform itself at +654 ms), the Facebook SDK fbevents.js (+986 ms) and Google Ads ccm/collect (+1023 ms). No actual transfer of marketing data was recorded, however — Google's consent mode held analytics and conversions under denial (gcs=G100, ads_data_redaction), and the Facebook SDK sent no /tr events. That is, the data is held at the consent-mode level, but the mechanism that should hold back the very loading of tags did not work.
Context
dhlexpress.ee is the Estonian site of DHL Express, an international logistics operator. The processing is described by a privacy notice (v1.2c, Estonian and English) and a detailed cookie declaration running on the OneTrust engine. Consent is managed by the OneTrust platform; part of the static is served from express-resource.dhl.com (behind Cloudflare and F5 BIG-IP, per the cookie declaration).
The capture is a single recording of the English-language homepage (dhlexpress.ee/en/): 66 requests, 6 nodes. The page contains a shipping calculator (the generate_lead event with route parameters).
Who receives data directly
Analytics — Google Analytics 4 and Google Ads (both under denial, gcs=G100, cookieless). Consent management — OneTrust. Facebook loads only the SDK, without events. Everything else is DHL first party. LinkedIn and YouTube are also named in the cookie declaration, but did not fire in this capture.
Declared versus actual
Here almost everything is done right, and the problem lies in a single broken detail.
Google’s consent mode is respected. The GA4 events (G-ZXH7E3H54N) — page_view, generate_lead — and Google Ads (ccm/collect) carry status gcs=G100: both storages denied, pings cookieless, and Google Ads has dma=1 (EEA mode) and ads_data_redaction set. The generate_lead event is a shipping calculation in the calculator; it carries route parameters (country of departure and destination) in dl, but without a cookie binding. This is correct behaviour when consent has not been given.
Facebook is present only as an SDK. connect.facebook.net/fbevents.js loads at +986 ms, but there are no pixel /tr events in the capture — that is, the Facebook pixel is initialised but transferred no data.
Recipients are disclosed. The OneTrust cookie declaration names OneTrust, Google, Facebook, YouTube, LinkedIn — with categories, hosts and retention periods. The «Privacy settings centre» banner is symmetrical, with a real choice and an honest warning about data transfer to countries with an inadequate level of protection (USA).
But the tag auto-blocking mechanism is broken. The OtAutoBlock.js script — the part of OneTrust that should prevent third-party tags from loading before consent — returned status 404: it did not load. Because of its absence, the marketing components manage to initialise within the first second: the GTM container (GTM-MNMS78R) at +494 ms — earlier than the consent platform itself (+654 ms), the Facebook SDK at +986 ms, Google Ads at +1023 ms. An important caveat: no actual transfer of marketing data was recorded — Google’s consent mode held analytics and conversions under denial, and the Facebook SDK sent no events. That is, the data is held at the consent-mode level, but the second line of defence — auto-blocking the loading — did not work. This is a gating defect, even if in this capture without a data leak.
Consent: what is proven and what is not
Proven: the auto-block did not load. OtAutoBlock.js returned 404 — confirmed by the status in the HAR and by the Network panel in the screenshots.
Proven: Google’s consent mode is respected. All GA4 and Google Ads requests carry gcs=G100, cookielessly; Google Ads has ads_data_redaction and dma=1.
Proven: Facebook is only the SDK, without events. In the capture there is only fbevents.js, no /tr requests.
Proven: the tags initialise before the consent platform. GTM — +494 ms, OneTrust — +654 ms; Facebook and Google Ads — +986…+1023 ms.
Proven: the recipients are named. The cookie declaration lists Google, Facebook, YouTube, LinkedIn, OneTrust.
Not established: the consent decision in detail. Which choice was made in the banner cannot be read unambiguously from the capture; the gcs=G100 status indicates a denied state of the storages (by default or by refusal).
Not established unambiguously: the per-field breakdown of gcd. A gcd signal is present, but the exact field breakdown is not decoded; the conclusion rests on gcs=G100 and on the 404 status of the auto-block.
Observation boundaries
The capture covers a single page — the homepage — and records browser behaviour, not server-side processing: why OtAutoBlock.js returns 404 (a configuration error, expiry, regional delivery) and what the parties do with the received signals is not determined by a browser capture. The fact of the 404 status and the fact of the tags initialising are established; the conclusion of an auto-block defect rests on these, not on a transfer of marketing data, which is absent in this capture. The recipients named in the declaration but not surfacing (LinkedIn, YouTube) are placed under «declared».
The file is published cleaned of personal data (61 redactions, self-check clean); the 404 status of OtAutoBlock.js, the load order, the gcs=G100 of the Google requests and the absence of Facebook /tr events can be verified directly against the published file. The banner UI and the 404 status in the Network panel are confirmed by the screenshots — a separate type of evidence.
The legal assessment is made by the competent authority — Andmekaitse Inspektsioon.
Conclusion
The international logistics operator’s site is built to a corporate standard: the OneTrust consent platform with a symmetrical banner, a detailed cookie declaration with individual disclosure of recipients, an honest warning about cross-border transfer, and — importantly — Google’s consent mode is respected: analytics and conversion measurement run under denial, gcs=G100, cookielessly, with redaction of advertising data; Facebook is limited to loading the SDK without events.
One detail lets it down, but a significant one: the OtAutoBlock.js auto-blocking script returns 404 and does not load. This is the OneTrust component that should hold back the very loading of third-party tags until consent. Without it, the GTM container, the Facebook SDK and Google Ads manage to initialise within the first second — this time without a data leak, because Google’s consent mode backed them up. But relying on a single line of defence when the second is broken is a risk: consent mode covers the Google stack, whereas auto-blocking is needed precisely for those tags that consent mode does not govern.
Remediation: restore the loading of OtAutoBlock.js (fix the cause of the 404), so that OneTrust’s auto-blocking prevents third-party tags from loading before consent; load the GTM container after the consent platform is initialised; preserve the correct Google consent mode, extending the gating principle to all marketing tags, not only those governed by consent mode.
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.
af2c0d2133fa347564f6e8288c77d8020e30ab4be4abaa162ff60190345d50a5Want 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) — dhlexpress.ee Кому: [укажите адрес компании — DPO / поддержка / юридический отдел] От: [Ваше имя], [контактный email] Прошу предоставить доступ к моим персональным данным, обрабатываемым в связи с использованием сайта dhlexpress.ee. 1. Категории данных и цели обработки (ст. 15(1)(a)-(c)) На основании независимого технического анализа сайта прошу подтвердить и подробно раскрыть следующие категории обработки: 1) На сайте установлена платформа согласия OneTrust с корректным баннером, и режим согласия Google соблюдается: события GA4 (G-ZXH7E3H54N) и Google Ads (ccm/collect) идут со статусом gcs=G100 — оба хранилища запрещены, бескуково. Однако скрипт автоблокировки OneTrust — OtAutoBlock.js — вернул статус 404, то есть не загрузился. Именно он должен предотвращать загрузку сторонних тегов до согласия. Из-за его отсутствия маркетинговые компоненты успевают инициализироваться в первую секунду: контейнер GTM (+494 мс, раньше самой платформы согласия +654 мс), Facebook SDK fbevents.js (+986 мс) и Google Ads ccm/collect (+1023 мс). Фактической передачи маркетинговых данных при этом не зафиксировано — consent mode Google удержал аналитику и конверсии под запретом (gcs=G100, ads_data_redaction), а Facebook SDK событий /tr не отправил. То есть данные удержаны на уровне режима согласия, но механизм, который должен удерживать саму загрузку тегов, не сработал. 2. Получатели, сроки хранения и передача за пределы ЕЭЗ (ст. 15(1)(c)-(d), 46) Прошу также указать полный список третьих лиц-получателей, применимые сроки хранения по каждой категории и правовые основания передачи данных за пределы ЕЭЗ, если таковая происходит. Полный технический разбор с доказательствами (сохранённый сетевой журнал, контрольная сумма SHA-256) опубликован по адресу: https://gdpru.eu/en/audits/ee-dhlexpress-ee/ 3. Автоматизированная обработка и профилирование (ст. 15(1)(h)) Прошу сообщить, применяется ли в отношении меня автоматизированное принятие решений или профилирование, и если да — раскрыть логику такой обработки. С уважением, [Ваше имя] [контактный email] [Страна] [Дата]
Subject: Data access request (GDPR Art. 15) — dhlexpress.ee 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 dhlexpress.ee. 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 OneTrust consent platform installed with a correct banner, and Google's consent mode is respected: the GA4 events (G-ZXH7E3H54N) and Google Ads (ccm/collect) carry status gcs=G100 — both storages denied, cookieless. However, OneTrust's auto-blocking script — OtAutoBlock.js — returned status 404, that is, it did not load. It is precisely this script that should prevent third-party tags from loading before consent. Because of its absence, the marketing components manage to initialise within the first second: the GTM container (+494 ms, before the consent platform itself at +654 ms), the Facebook SDK fbevents.js (+986 ms) and Google Ads ccm/collect (+1023 ms). No actual transfer of marketing data was recorded, however — Google's consent mode held analytics and conversions under denial (gcs=G100, ads_data_redaction), and the Facebook SDK sent no /tr events. That is, the data is held at the consent-mode level, but the mechanism that should hold back the very loading of tags did not work. 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-dhlexpress-ee/ 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) — dhlexpress.ee 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 dhlexpress.ee 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 õige bänneriga OneTrusti nõusoleku platvorm ja jälgitakse Google'i nõusoleku režiimi: sündmused GA4 (G-ZXH7E3H54N) ja Google Ads (ccm/kollektsioon) on staatusega gcs=G100 - mõlemad hoidlad on keelatud, igavad. Kuid OneTrusti automaatlukustuse skript OtAutoBlock.js naasis 404 olekusse, mis tähendab, et see ei käivitunud. See peaks takistama kolmandate isikute märgiste laadimist enne nõusoleku saamist. Turunduskomponentide puudumise tõttu on esimesel sekundil aega initsialiseerida: GTM-konteiner (+494 ms, enne nõusolekuplatvormi ennast +654 ms), Facebook SDK fbevents.js (+986 ms) ja Google Ads ccm/collect (+1023 ms). Turundusandmete tegelikku edastamist ei registreerita - nõusolekurežiim Google hoidis keelu all analüüsi ja konversioone (gcs=G100, reklaamide andmete redaktsioon) ning Facebooki SDK sündmused /tr ei saatnud. See tähendab, et andmeid hoitakse nõusoleku režiimi tasemel, kuid mehhanism, mis peaks sildi laadimist ise hoidma, ei töötanud. 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-dhlexpress-ee/ 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)
Тема: Жалоба на обработку персональных данных — dhlexpress.ee 1. Предмет жалобы Я подаю жалобу в отношении обработки моих персональных данных сайтом dhlexpress.ee. 2. Обстоятельства Я посетил сайт dhlexpress.ee и обнаружил признаки несоответствия обработки моих персональных данных требованиям GDPR. Технический разбор, опубликованный на gdpru.eu 09.09.2026 (открытая методология, воспроизводимые измерения), документирует следующие признаки: 1) На сайте установлена платформа согласия OneTrust с корректным баннером, и режим согласия Google соблюдается: события GA4 (G-ZXH7E3H54N) и Google Ads (ccm/collect) идут со статусом gcs=G100 — оба хранилища запрещены, бескуково. Однако скрипт автоблокировки OneTrust — OtAutoBlock.js — вернул статус 404, то есть не загрузился. Именно он должен предотвращать загрузку сторонних тегов до согласия. Из-за его отсутствия маркетинговые компоненты успевают инициализироваться в первую секунду: контейнер GTM (+494 мс, раньше самой платформы согласия +654 мс), Facebook SDK fbevents.js (+986 мс) и Google Ads ccm/collect (+1023 мс). Фактической передачи маркетинговых данных при этом не зафиксировано — consent mode Google удержал аналитику и конверсии под запретом (gcs=G100, ads_data_redaction), а Facebook SDK событий /tr не отправил. То есть данные удержаны на уровне режима согласия, но механизм, который должен удерживать саму загрузку тегов, не сработал. Полная техническая документация опубликована по адресу: https://gdpru.eu/en/audits/ee-dhlexpress-ee/ 3. Положения GDPR, соблюдение которых прошу проверить ePrivacy — Директива 2002/58/EC, ст. 5(3) — механизм автоблокировки тегов сломан (OtAutoBlock.js 404) 4. Требование Прошу проверить изложенные обстоятельства и, если несоответствие подтвердится, принять меры, предусмотренные статьёй 58(2) GDPR. 5. Приложения Полная доказательная база — HAR-файл, контрольная сумма SHA-256 и цитата из политики конфиденциальности сайта, документирующая указанное противоречие — опубликована и проверяема по ссылке в пункте 2 выше. С уважением, [Ваше имя] [контактный email] [Страна] [Дата]
Subject: Complaint regarding personal data processing — dhlexpress.ee 1. Subject of the complaint I am filing a complaint regarding the processing of my personal data by the website dhlexpress.ee. 2. Circumstances I visited the website dhlexpress.ee 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 OneTrust consent platform installed with a correct banner, and Google's consent mode is respected: the GA4 events (G-ZXH7E3H54N) and Google Ads (ccm/collect) carry status gcs=G100 — both storages denied, cookieless. However, OneTrust's auto-blocking script — OtAutoBlock.js — returned status 404, that is, it did not load. It is precisely this script that should prevent third-party tags from loading before consent. Because of its absence, the marketing components manage to initialise within the first second: the GTM container (+494 ms, before the consent platform itself at +654 ms), the Facebook SDK fbevents.js (+986 ms) and Google Ads ccm/collect (+1023 ms). No actual transfer of marketing data was recorded, however — Google's consent mode held analytics and conversions under denial (gcs=G100, ads_data_redaction), and the Facebook SDK sent no /tr events. That is, the data is held at the consent-mode level, but the mechanism that should hold back the very loading of tags did not work. Full technical documentation is published at: https://gdpru.eu/en/audits/ee-dhlexpress-ee/ 3. GDPR provisions I ask you to examine ePrivacy — Directive 2002/58/EC, Art. 5(3) — the tag auto-blocking mechanism is broken (OtAutoBlock.js 404) 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 dhlexpress.ee. 2. Asjaolud Külastasin veebisaiti dhlexpress.ee 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 õige bänneriga OneTrusti nõusoleku platvorm ja jälgitakse Google'i nõusoleku režiimi: sündmused GA4 (G-ZXH7E3H54N) ja Google Ads (ccm/kollektsioon) on staatusega gcs=G100 - mõlemad hoidlad on keelatud, igavad. Kuid OneTrusti automaatlukustuse skript OtAutoBlock.js naasis 404 olekusse, mis tähendab, et see ei käivitunud. See peaks takistama kolmandate isikute märgiste laadimist enne nõusoleku saamist. Turunduskomponentide puudumise tõttu on esimesel sekundil aega initsialiseerida: GTM-konteiner (+494 ms, enne nõusolekuplatvormi ennast +654 ms), Facebook SDK fbevents.js (+986 ms) ja Google Ads ccm/collect (+1023 ms). Turundusandmete tegelikku edastamist ei registreerita - nõusolekurežiim Google hoidis keelu all analüüsi ja konversioone (gcs=G100, reklaamide andmete redaktsioon) ning Facebooki SDK sündmused /tr ei saatnud. See tähendab, et andmeid hoitakse nõusoleku režiimi tasemel, kuid mehhanism, mis peaks sildi laadimist ise hoidma, ei töötanud. Täielik tehniline dokumentatsioon on avaldatud aadressil: https://gdpru.eu/en/audits/ee-dhlexpress-ee/ 3. Sätted, mille järgimist palun kontrollida Direktiiv 2002/58/EÜ, artikli 5 lõige 3 – katkiste märgiste automaatne blokeerimismehhanism (OtAutoBlock.js 404) 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]