Технический аудит · 09.09.2026

dhlexpress.ee

Эстонский сайт международной логистики

Эстонский сайт международной логистики DHL Express — один замер англоязычной главной, 66 запросов, 6 узлов. Платформа управления согласием OneTrust на месте, баннер полноценный (три кнопки, управление категориями), а режим согласия Google соблюдён — события GA4 и Google Ads идут со статусом gcs=G100, оба хранилища запрещены, бескуково; Facebook загружает только SDK без событий. Но одна деталь подводит: скрипт автоблокировки OneTrust (OtAutoBlock.js) вернул 404 — не загрузился. Именно он должен предотвращать загрузку сторонних тегов до согласия, и из-за его отсутствия Facebook SDK, Google Ads и контейнер GTM успевают инициализироваться в первую секунду. Данные при этом удержаны режимом согласия — но механизм, гейтящий саму загрузку, сломан.

Хронология обращений

+494 мс · контейнер раньше платформы согласия
www.googletagmanager.com/gtm.js (GTM-MNMS78R) на +494 мс — раньше, чем на +654 мс появляется OneTrust. Контейнер инициализируется до платформы согласия.
+986…+1023 мс · маркетинговые теги инициализируются
connect.facebook.net/fbevents.js (+986 мс — SDK Facebook, без событий /tr) и pagead2.googlesyndication.com/ccm/collect (+1023 мс — Google Ads). Из-за отсутствия автоблокировки успевают загрузиться, но под режимом согласия.
+1146…+24218 мс · аналитика (бескуково)
region1.google-analytics.com/g/collect — события GA4 page_view и generate_lead (G-ZXH7E3H54N) со статусом gcs=G100. generate_lead — расчёт доставки, несёт параметры маршрута (страна отправления/назначения) в dl, но бескуково. Google Ads ccm/collect — gcs=G100, dma=1, ads_data_redaction.

Декларация против факта

✓ Контролёр — DHL Express (privacy notice v1.2c, EE/EN); инфраструктура express-resource.dhl.com — заявлен
✓ Управление согласием — OneTrust; подробная куки-декларация с категориями, хостами и сроками — заявлен
✓ Получатели в куки-декларации названы: OneTrust, Google, Facebook, YouTube, LinkedIn — заявлен
✓ Баннер «Центр настроек приватности»: «Принять все» / «Подтвердить выбор» / «Только строго необходимое»; предупреждение о передаче данных в страны с недостаточной защитой (США) — заявлен
✓ Надзорный орган — Andmekaitse Inspektsioon — заявлен
+ Скрипт автоблокировки тегов OtAutoBlock.js не загружается (статус 404) — не заявлен
+ Контейнер GTM и маркетинговые теги (Facebook SDK, Google Ads) инициализируются до согласия из-за сломанной автоблокировки — не заявлен

Тайминги передачи

+494 мс www.googletagmanager.com

GTM-MNMS78R; платформа согласия появляется позже (+654 мс).

+654 мс cdn.cookielaw.org

OtAutoBlock.js — механизм удержания тегов до согласия сломан.

+986 мс connect.facebook.net

fbevents.js инициализируется из-за отсутствия автоблокировки.

+1023 мс pagead2.googlesyndication.com

ccm/collect, gcs=G100, dma=1, ads_data_redaction.

+1146 мс region1.google-analytics.com

GA4 page_view/generate_lead, G-ZXH7E3H54N, gcs=G100.

Зафиксированные трекеры

Признаки несоответствия GDPR

Контекст

dhlexpress.ee — эстонский сайт DHL Express, международного логистического оператора. Обработку описывают privacy notice (v1.2c, эстонский и английский) и подробная куки-декларация на движке OneTrust. Управление согласием — платформа OneTrust; часть статики отдаётся с express-resource.dhl.com (за Cloudflare и F5 BIG-IP, по данным куки-декларации).

Замер — одна запись англоязычной главной (dhlexpress.ee/en/): 66 запросов, 6 узлов. Страница содержит калькулятор доставки (событие generate_lead с параметрами маршрута).

Кому уходят данные напрямую

Аналитика — Google Analytics 4 и Google Ads (оба под запретом, gcs=G100, бескуково). Управление согласием — OneTrust. Facebook загружает только SDK, без событий. Всё остальное — первая сторона DHL. В куки-декларации названы также LinkedIn и YouTube, но в этом замере они не сработали.

Заявленное против фактического

Здесь почти всё сделано правильно, и проблема — в одной сломанной детали.

Режим согласия Google соблюдается. События GA4 (G-ZXH7E3H54N) — page_view, generate_lead — и Google Ads (ccm/collect) идут со статусом gcs=G100: оба хранилища запрещены, пинги бескуковые, у Google Ads выставлены dma=1 (режим EEA) и ads_data_redaction. Событие generate_lead — это расчёт доставки в калькуляторе, оно несёт параметры маршрута (страна отправления и назначения) в dl, но без куки-привязки. Это корректное поведение при неданном согласии.

Facebook присутствует только как SDK. connect.facebook.net/fbevents.js загружается на +986 мс, но событий пикселя /tr в замере нет — то есть Facebook-пиксель инициализирован, но данных не передал.

Получатели раскрыты. Куки-декларация OneTrust называет OneTrust, Google, Facebook, YouTube, LinkedIn — с категориями, хостами и сроками хранения. Баннер «Центр настроек приватности» симметричный, с реальным выбором и честным предупреждением о передаче данных в страны с недостаточным уровнем защиты (США).

Но механизм автоблокировки тегов сломан. Скрипт OtAutoBlock.js — часть OneTrust, которая должна предотвращать загрузку сторонних тегов до согласия, — вернул статус 404: он не загрузился. Из-за его отсутствия маркетинговые компоненты успевают инициализироваться в первую секунду: контейнер GTM (GTM-MNMS78R) на +494 мс — раньше самой платформы согласия (+654 мс), Facebook SDK на +986 мс, Google Ads на +1023 мс. Важная оговорка: фактической передачи маркетинговых данных при этом не зафиксировано — режим согласия Google удержал аналитику и конверсии под запретом, а Facebook SDK событий не отправил. То есть данные удержаны на уровне consent mode, но второй эшелон защиты — автоблокировка загрузки — не сработал. Это дефект гейтинга, пусть в этом замере и без утечки данных.

Согласие: что доказано и что нет

Доказано: автоблокировка не загрузилась. OtAutoBlock.js вернул 404 — подтверждается статусом в HAR и панелью Network на скриншотах.

Доказано: режим согласия Google соблюдён. Все обращения GA4 и Google Ads несут gcs=G100, бескуково; у Google Ads — ads_data_redaction и dma=1.

Доказано: Facebook только SDK, без событий. В замере лишь fbevents.js, обращений /tr нет.

Доказано: теги инициализируются до платформы согласия. GTM — +494 мс, OneTrust — +654 мс; Facebook и Google Ads — +986…+1023 мс.

Доказано: получатели названы. Куки-декларация перечисляет Google, Facebook, YouTube, LinkedIn, OneTrust.

Не установлено: решение о согласии в деталях. Какой выбор сделан в баннере, из записи однозначно не читается; статус gcs=G100 указывает на запрещённое состояние хранилищ (по умолчанию или по отказу).

Не установлено однозначно: попольная раскладка gcd. Сигнал gcd присутствует, но точная раскладка полей не декодирована; вывод строится на gcs=G100 и статусе 404 у автоблокировки.

Границы наблюдения

Замер охватывает одну страницу — главную — и фиксирует поведение браузера, не серверную обработку: почему OtAutoBlock.js отдаёт 404 (ошибка конфигурации, срок, региональная выдача) и что стороны делают с полученными сигналами, браузерным замером не выясняется. Установлен факт статуса 404 и факт инициализации тегов; вывод о дефекте автоблокировки опирается на них, а не на передачу маркетинговых данных, которой в этом замере нет. Получатели, названные в декларации, но не проявившиеся (LinkedIn, YouTube), отнесены к заявленному.

Файл опубликован очищенным от личных данных (61 правка, самопроверка чистая); статус 404 у OtAutoBlock.js, порядок загрузки, gcs=G100 у Google-обращений и отсутствие событий Facebook /tr проверяются по опубликованному файлу напрямую. UI баннера и статус 404 в панели Network подтверждаются скриншотами — отдельный тип доказательства.

Правовую оценку выносит компетентный орган — Andmekaitse Inspektsioon.

Вывод

Сайт международного логиста сделан по корпоративному стандарту: платформа согласия OneTrust с симметричным баннером, подробная куки-декларация с поимённым раскрытием получателей, честное предупреждение о трансграничной передаче, и — что важно — режим согласия Google соблюдён: аналитика и измерение конверсий идут под запретом, gcs=G100, бескуково, с редакцией рекламных данных; Facebook ограничен загрузкой SDK без событий.

Подводит одна деталь, но существенная: скрипт автоблокировки OtAutoBlock.js возвращает 404 и не загружается. Это тот компонент OneTrust, который должен удерживать саму загрузку сторонних тегов до согласия. Без него контейнер GTM, Facebook SDK и Google Ads успевают инициализироваться в первую секунду — на этот раз без утечки данных, потому что их подстраховал consent mode Google. Но полагаться на один эшелон защиты, когда второй сломан, — риск: consent mode покрывает Google-стек, а автоблокировка нужна ровно для тех тегов, что режимом согласия не управляются.

Устранение: восстановить загрузку OtAutoBlock.js (устранить причину 404), чтобы автоблокировка OneTrust предотвращала загрузку сторонних тегов до согласия; загружать контейнер GTM после инициализации платформы согласия; сохранить корректный режим согласия Google, распространив принцип гейтинга на все маркетинговые теги, а не только на управляемые consent mode.

Доказательство

Как проверить: скачайте файл и посчитайте его контрольную сумму — sha256sum файл.har (Linux, macOS) или certutil -hashfile файл.har SHA256 (Windows); она должна совпасть с указанной. Вывод разбора относится к объёму этого замера — см. ограничения методики.

Оригинал (разбор)
HAR-файл: ee/dhlexpress-ee-2026-09-09.har
SHA-256: af2c0d2133fa347564f6e8288c77d8020e30ab4be4abaa162ff60190345d50a5
Контрольный снимок
Ждём изменений
HAR-файлы хранятся в EU-инфраструктуре (Proton Drive). SHA-256 публикуется для проверки целостности.