Bolt's website — a single capture of the homepage, 125 requests, 12 nodes, about twenty-four seconds. The Cookiebot consent management platform is in place, and the recorded state is a refusal: the declaration page shows 'Refuse' plainly, and all analytics and advertising requests carry the status 'denied'. Google analytics matches this state — the GA4 events go through Bolt's own server-side container cookielessly. But the marketing trackers bypass the refusal: the Singular mobile-attribution service sends a visit event with a device identifier before the consent platform itself loads, and Google Ads conversion tracking sends events to two ad accounts. The security headers are set.
Request timeline
Declared versus actual
Transfer timings
Singular attribution SDK from the markup, before the consent platform.
__PAGE_VISIT__ event with a device identifier sdid, response 200. Before Cookiebot loads.
pagead/conversion, gcs=G100. Ad accounts AW-699781999, AW-955624998.
GA4 g/collect, G-YN2R8M8XET, gcs=G100. Server-side container, the denial honoured.
Pulled in by the tracking.bolt.eu server-side container after the Singular event.
Detected trackers
- Cookiebot (consent.cookiebot.com, consentcdn.cookiebot.com) — consent management platform; the recorded state is 'Refuse' (consent declined). Loads at +1520 ms from the server-side tag container
- Singular (web-sdk-cdn.singular.net, sdk-api-v1.singular.net) — mobile attribution and marketing analytics; the SDK loads from the markup at +472 ms, and a __PAGE_VISIT__ event with a device identifier (sdid) goes out at +1447 ms — before the CMP itself loads; it writes a persistent did_visit_site identifier. Disclosed in the cookie declaration
- Google Ads (pagead2.googlesyndication.com) — conversion tracking; ccm/collect and pagead/conversion to the ad accounts AW-699781999 and AW-955624998 with the status gcs=G100 (both storages denied)
- Google Analytics 4 (tracking.bolt.eu, server-side container, G-YN2R8M8XET) — first-party (server-side) analytics; page_view and behavioural events (Menu Navigation) go out with the status gcs=G100, cookieless
- Google Tag Manager — the first-party server-side container tracking.bolt.eu (GTM-5BHTXJC), from which GA4, Google Ads and Cookiebot start; plus www.googletagmanager.com
- Sentry (o4510424567054336.ingest.de.sentry.io, EU region) — error monitoring, functional
- Cloudflare Web Analytics (static.cloudflareinsights.com) — an analytics beacon from the page markup
- First party: assets.homepage.bolt.eu, assets.cms.bolt.eu, tracking.bolt.eu (Bolt's server-side tracking endpoint)
Indicators of GDPR non-compliance
- ePrivacy — Directive 2002/58/EC, Art. 5(3) (in conjunction with GDPR Art. 6(1)(a)) — tracking under a recorded refusalThe site has the Cookiebot consent management platform installed, and the recorded consent state is a refusal: the Cookiebot declaration page shows 'Your current status: Refuse', and all Google Ads and GA4 requests carry the status gcs=G100 (both storages denied). Despite the refusal, marketing trackers fire. The Singular mobile-attribution service loads its SDK from the page markup at +472 ms and, at +1447 ms, sends a __PAGE_VISIT__ event with a device identifier (sdid) to sdk-api-v1.singular.net — and it does so before the Cookiebot platform itself loads at +1520 ms; Singular also writes a persistent did_visit_site identifier. Google Ads conversion tracking sends page_view and conversion events to the ad accounts AW-699781999 and AW-955624998. Google analytics meanwhile honours the denial — the GA4 events go through Bolt's own server-side container tracking.bolt.eu cookielessly — but Singular and Google Ads conversion tracking are not conditioned on the actual consent state. Singular is not wired to the consent platform at all: it fires before it loads.
Context
bolt.eu is the website of the Bolt technology platform; the controller is Bolt Technology OÜ. The site is served via Cloudflare and sets a set of protective headers: Content-Security-Policy (frame-ancestors for its own domains), HSTS, Referrer-Policy strict-origin-when-cross-origin, X-Content-Type-Options nosniff, X-Frame-Options SAMEORIGIN. Analytics and advertising are proxied through a first-party server-side tag container on the tracking.bolt.eu domain.
The capture is a single recording of the homepage: 125 requests, 12 nodes, about twenty-four seconds, recorded on 8 September 2026. By the time of the capture, consent had already been declined: the Cookiebot declaration page shows ‘Your current status: Refuse’ with a timestamp of 20:29:18, a minute and a half before the load. Processing is described by the cookie declaration on the Cookiebot engine and the privacy policy.
Who receives data directly
Under a recorded refusal — Singular (mobile attribution, with a device identifier) and Google Ads (conversion tracking). Google analytics goes through Bolt’s own server-side container cookielessly, honouring the denial. Functionally — Sentry (error monitoring), Cloudflare.
Declared vs. actual
The discrepancy here is not in the disclosure but in the attitude to the user’s decision.
The disclosure is fine. The cookie declaration on the Cookiebot engine names the recipients: Singular with its __PAGE_VISIT__ event and did_visit_site identifier, Google Analytics, Google Ads, DoubleClick, Facebook / Meta. As for who was named, there is no complaint against the site.
But the refusal is ignored. By the time of the capture, consent is declined — this is visible both on the Cookiebot declaration page itself (‘Refuse’) and from the gcs=G100 status in all analytics and advertising requests. Google analytics matches this state: the GA4 events (G-YN2R8M8XET) go through the own server-side container tracking.bolt.eu cookielessly. But two marketing trackers bypass the refusal. The Singular mobile-attribution service loads its SDK straight from the page markup at +472 ms and, at +1447 ms, sends a __PAGE_VISIT__ event with a device identifier (sdid) — and it does so before the Cookiebot platform loads at +1520 ms. Singular is not wired to the consent platform at all: it fires before it loads and writes a persistent did_visit_site identifier. Google Ads conversion tracking sends page_view and conversion events to the ad accounts AW-699781999 and AW-955624998.
The server-side container and first-partyness. Bolt proxies analytics and tags through its own domain tracking.bolt.eu — a server-side tag container that makes the collection first-party. For GA4 this works in favour of privacy (the denial is honoured, the pings cookieless). But the first-partyness of the channel itself does not undo the fact that Singular and the Google Ads conversions fire under a refusal.
Consent: what is proven and what is not
Proven: consent is declined. The Cookiebot declaration page shows ‘Your current status: Refuse’ with a consent identifier and a timestamp of 8 September 2026, 20:29:18; the gcs=G100 status in all analytics and advertising requests confirms it.
Proven: Singular transmits an event with a device identifier under a refusal and before the CMP. The SDK loads at +472 ms, the __PAGE_VISIT__ event goes out at +1447 ms (response 200), whereas the Cookiebot platform loads only at +1520 ms.
Proven: Google Ads conversion tracking fires under a refusal. The ccm/collect and pagead/conversion requests to the accounts AW-699781999 and AW-955624998 carry gcs=G100.
Proven: Google analytics honours the denial. The GA4 events via tracking.bolt.eu/g/collect are cookieless, with the status gcs=G100.
Not proven, and not reproduced: the content of the Singular event and the full identifier. Which fields exactly the Singular event carries and what the full device identifier is are not reproduced in the audit; the conclusion rests on the fact of transmitting an event with a device identifier under a refusal and before the CMP loads.
Observation boundaries
The capture covers the homepage and records browser behaviour, not the services’ internal workings: server-side processing (including on the tracking.bolt.eu container’s side), the configuration of the tags and contracts with recipients are not verified by a browser-level capture. The consent state is established from the Cookiebot declaration page (‘Refuse’) and confirmed by the gcs=G100 status; cookie values in the published file were removed during redaction. The Singular device identifier is not reproduced in the audit. Sentry (EU region) is the operator’s error monitoring, classified as the functional part.
The file is published redacted of personal data. Response headers, statuses, the load order and initiators are preserved, so the load order of Singular relative to the CMP, the gcs=G100 status and the requests to the Google Ads accounts are verified directly against the published file.
The legal assessment is made by the competent authority — Andmekaitse Inspektsioon.
Conclusion
Bolt’s website discloses its web-data recipients in detail — the cookie declaration on the Cookiebot engine names Singular, Google Analytics, Google Ads and Meta by name — and it holds Google analytics correctly: the GA4 events go through the own server-side container tracking.bolt.eu cookielessly, with the status ‘denied’. But this does not protect the user’s decision. By the time of the capture, consent is declined (the declaration page shows ‘Refuse’ plainly), and despite the refusal the Singular mobile-attribution service sends a visit event with a device identifier — and does so before the consent platform itself loads — while Google Ads conversion tracking sends events to two ad accounts.
Singular is not wired to the consent platform at all: it fires before it loads, so the refusal has no effect on it in principle. The first-partyness of the collection channel (a server-side container on the own domain) works in favour of privacy for the analytics, but for Singular and the Google Ads conversions the question is not the channel but that they are not conditioned on the user’s choice.
Remediation: wire Singular to the consent management platform so that its SDK does not load and the visit event does not go out before consent, and so that under a refusal no device identifier is written to the device; condition the Google Ads conversion tracking (AW-699781999, AW-955624998) on the consent state so that under a refusal the requests do not go out; and preserve the correct behaviour of the server-side GA4 analytics, extending the same principle to the rest of the marketing components.
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.
9e9f43f6af32682cd77ce6fb034a292051baf29501d6ce2708c3e91eac59e78dWant 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) — bolt.eu Кому: [укажите адрес компании — DPO / поддержка / юридический отдел] От: [Ваше имя], [контактный email] Прошу предоставить доступ к моим персональным данным, обрабатываемым в связи с использованием сайта bolt.eu. 1. Категории данных и цели обработки (ст. 15(1)(a)-(c)) На основании независимого технического анализа сайта прошу подтвердить и подробно раскрыть следующие категории обработки: 1) На сайте установлена платформа управления согласием Cookiebot, и зафиксированное состояние согласия — отказ: страница декларации Cookiebot показывает «Ваше текущее состояние: Отказаться», а все обращения Google Ads и GA4 несут статус gcs=G100 (оба хранилища запрещены). Несмотря на отказ, срабатывают маркетинговые трекеры. Сервис мобильной атрибуции Singular загружает свой SDK из разметки страницы на +472 мс и на +1447 мс отправляет событие __PAGE_VISIT__ с идентификатором устройства (sdid) на sdk-api-v1.singular.net — причём раньше, чем на +1520 мс загружается сама платформа Cookiebot; Singular также записывает постоянный идентификатор did_visit_site. Отслеживание конверсий Google Ads отправляет page_view и события конверсий на рекламные аккаунты AW-699781999 и AW-955624998. Аналитика Google при этом запрет соблюдает — события GA4 идут через собственный серверный контейнер tracking.bolt.eu бескуково, — но Singular и отслеживание конверсий Google Ads фактическим состоянием согласия не обусловлены. Singular к платформе согласия не подключён вовсе: он срабатывает до её загрузки. 2. Получатели, сроки хранения и передача за пределы ЕЭЗ (ст. 15(1)(c)-(d), 46) Прошу также указать полный список третьих лиц-получателей, применимые сроки хранения по каждой категории и правовые основания передачи данных за пределы ЕЭЗ, если таковая происходит. Полный технический разбор с доказательствами (сохранённый сетевой журнал, контрольная сумма SHA-256) опубликован по адресу: https://gdpru.eu/en/audits/ee-bolt-eu/ 3. Автоматизированная обработка и профилирование (ст. 15(1)(h)) Прошу сообщить, применяется ли в отношении меня автоматизированное принятие решений или профилирование, и если да — раскрыть логику такой обработки. С уважением, [Ваше имя] [контактный email] [Страна] [Дата]
Subject: Data access request (GDPR Art. 15) — bolt.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 bolt.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 the recorded consent state is a refusal: the Cookiebot declaration page shows 'Your current status: Refuse', and all Google Ads and GA4 requests carry the status gcs=G100 (both storages denied). Despite the refusal, marketing trackers fire. The Singular mobile-attribution service loads its SDK from the page markup at +472 ms and, at +1447 ms, sends a __PAGE_VISIT__ event with a device identifier (sdid) to sdk-api-v1.singular.net — and it does so before the Cookiebot platform itself loads at +1520 ms; Singular also writes a persistent did_visit_site identifier. Google Ads conversion tracking sends page_view and conversion events to the ad accounts AW-699781999 and AW-955624998. Google analytics meanwhile honours the denial — the GA4 events go through Bolt's own server-side container tracking.bolt.eu cookielessly — but Singular and Google Ads conversion tracking are not conditioned on the actual consent state. Singular is not wired to the consent platform at all: it fires before it loads. 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-bolt-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) — bolt.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 bolt.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 salvestatud nõusoleku olek on keeldumine: Cookieboti deklaratsiooni lehel on näidatud „Sinu praegune olek: loobumine ning kõik Google Adsi ja GA4 taotlused on gcs=G100 (mõlemad hoidlad on keelatud). Hoolimata tagasilükkamisest töötavad turundusjälgijad. Singulari mobiili omistamisteenus laadib oma SDK lehe märgistuselt +472 ms-le ja saadab PAGE VISIT sündmuse +1447 ms-le seadme ID (sdid) abil sdk-api-v1-le. singular.net – Cookiebot platvorm laaditakse enne +1520 ms; Singular salvestab ka püsiva identifikaatori, mis saiti külastas. Google Ads Conversion Tracking saadab lehevaate ja konversioonisündmused reklaamikontodele AW-699781999 ja AW-955624998. Google Analytics järgib keeldu - GA4 sündmused läbivad oma serveri jälgimise konteineri. bolt.eu on küpsisevaba, kuid Singulari ja Google Adsi konversioonide jälgimist ei tingi tegelik nõusoleku olek. Singular ei ole üldse nõusolekuplatvormiga ühendatud: see töötab enne selle laadimist. 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-bolt-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)
Тема: Жалоба на обработку персональных данных — bolt.eu 1. Предмет жалобы Я подаю жалобу в отношении обработки моих персональных данных сайтом bolt.eu. 2. Обстоятельства Я посетил сайт bolt.eu и обнаружил признаки несоответствия обработки моих персональных данных требованиям GDPR. Технический разбор, опубликованный на gdpru.eu 08.09.2026 (открытая методология, воспроизводимые измерения), документирует следующие признаки: 1) На сайте установлена платформа управления согласием Cookiebot, и зафиксированное состояние согласия — отказ: страница декларации Cookiebot показывает «Ваше текущее состояние: Отказаться», а все обращения Google Ads и GA4 несут статус gcs=G100 (оба хранилища запрещены). Несмотря на отказ, срабатывают маркетинговые трекеры. Сервис мобильной атрибуции Singular загружает свой SDK из разметки страницы на +472 мс и на +1447 мс отправляет событие __PAGE_VISIT__ с идентификатором устройства (sdid) на sdk-api-v1.singular.net — причём раньше, чем на +1520 мс загружается сама платформа Cookiebot; Singular также записывает постоянный идентификатор did_visit_site. Отслеживание конверсий Google Ads отправляет page_view и события конверсий на рекламные аккаунты AW-699781999 и AW-955624998. Аналитика Google при этом запрет соблюдает — события GA4 идут через собственный серверный контейнер tracking.bolt.eu бескуково, — но Singular и отслеживание конверсий Google Ads фактическим состоянием согласия не обусловлены. Singular к платформе согласия не подключён вовсе: он срабатывает до её загрузки. Полная техническая документация опубликована по адресу: https://gdpru.eu/en/audits/ee-bolt-eu/ 3. Положения GDPR, соблюдение которых прошу проверить ePrivacy — Директива 2002/58/EC, ст. 5(3) (в связке с GDPR Art. 6(1)(a)) — трекинг при зафиксированном отказе 4. Требование Прошу проверить изложенные обстоятельства и, если несоответствие подтвердится, принять меры, предусмотренные статьёй 58(2) GDPR. 5. Приложения Полная доказательная база — HAR-файл, контрольная сумма SHA-256 и цитата из политики конфиденциальности сайта, документирующая указанное противоречие — опубликована и проверяема по ссылке в пункте 2 выше. С уважением, [Ваше имя] [контактный email] [Страна] [Дата]
Subject: Complaint regarding personal data processing — bolt.eu 1. Subject of the complaint I am filing a complaint regarding the processing of my personal data by the website bolt.eu. 2. Circumstances I visited the website bolt.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 8 September 2026 (open methodology, reproducible measurements) documents the following indications: 1) The site has the Cookiebot consent management platform installed, and the recorded consent state is a refusal: the Cookiebot declaration page shows 'Your current status: Refuse', and all Google Ads and GA4 requests carry the status gcs=G100 (both storages denied). Despite the refusal, marketing trackers fire. The Singular mobile-attribution service loads its SDK from the page markup at +472 ms and, at +1447 ms, sends a __PAGE_VISIT__ event with a device identifier (sdid) to sdk-api-v1.singular.net — and it does so before the Cookiebot platform itself loads at +1520 ms; Singular also writes a persistent did_visit_site identifier. Google Ads conversion tracking sends page_view and conversion events to the ad accounts AW-699781999 and AW-955624998. Google analytics meanwhile honours the denial — the GA4 events go through Bolt's own server-side container tracking.bolt.eu cookielessly — but Singular and Google Ads conversion tracking are not conditioned on the actual consent state. Singular is not wired to the consent platform at all: it fires before it loads. Full technical documentation is published at: https://gdpru.eu/en/audits/ee-bolt-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)) — tracking under a recorded refusal 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 bolt.eu. 2. Asjaolud Külastasin veebisaiti bolt.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 08.09.2026 (avatud metoodika, korratavad mõõtmised), dokumenteerib järgmist: 1) Saidil on nõusoleku haldamise platvorm Cookiebot ja salvestatud nõusoleku olek on keeldumine: Cookieboti deklaratsiooni lehel on näidatud „Sinu praegune olek: loobumine ning kõik Google Adsi ja GA4 taotlused on gcs=G100 (mõlemad hoidlad on keelatud). Hoolimata tagasilükkamisest töötavad turundusjälgijad. Singulari mobiili omistamisteenus laadib oma SDK lehe märgistuselt +472 ms-le ja saadab PAGE VISIT sündmuse +1447 ms-le seadme ID (sdid) abil sdk-api-v1-le. singular.net – Cookiebot platvorm laaditakse enne +1520 ms; Singular salvestab ka püsiva identifikaatori, mis saiti külastas. Google Ads Conversion Tracking saadab lehevaate ja konversioonisündmused reklaamikontodele AW-699781999 ja AW-955624998. Google Analytics järgib keeldu - GA4 sündmused läbivad oma serveri jälgimise konteineri. bolt.eu on küpsisevaba, kuid Singulari ja Google Adsi konversioonide jälgimist ei tingi tegelik nõusoleku olek. Singular ei ole üldse nõusolekuplatvormiga ühendatud: see töötab enne selle laadimist. Täielik tehniline dokumentatsioon on avaldatud aadressil: https://gdpru.eu/en/audits/ee-bolt-eu/ 3. Sätted, mille järgimist palun kontrollida e-privaatsus – direktiiv 2002/58/EÜ, artikli 5 lõige 3 (koosmõjus GDPRi artikli 6 lõike 1 punktiga a) – registreeritud rikke jälgimine 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]