Technical audit · 2026-06-06

ohtuleht.ee

Estonia's Largest Tabloid Newspaper — Part of the Ekspress Media Group

883 requests, 149 domains. An InMobi CMP with TCF 2.0 — yet cookie-sync requests fire with gdpr=0, the same pattern found at Temu. The partner list includes Baidu USA and IFLYTEK (Hong Kong). GPT loads before the banner, and no consent decision was ever recorded across the entire session.

Timeline of the leak

+162 ms · before the banner
Cloudflare Insights — before consent.
+186 ms · before the banner
npttech.com/advertising.js — an advertising script before consent.
+314 ms · before the banner
Google Fonts — the first request. 19 CSS requests plus 19 more font-file loads per session (38 requests total). IP address to Google, USA.
+1045 ms · before the banner
Setupad (stpd.cloud) — Prebid header bidding initializes.
+1729 ms · before the banner
Google Publisher Tag (securepubads.g.doubleclick.net/gpt.js) — Google's advertising infrastructure.
+2161 ms
A Google tag (gtag.js, GA4) — loads almost simultaneously with the banner's first script.
+2166 ms · banner
InMobi CMP choice.js — the TCF 2.0 banner begins loading.
+4364 ms · banner ready
The InMobi CMP fully loads: the vendor list, purposes in Estonian.
+4499–12935 ms
Cookie-sync chains: OpenX, Onetag, Adform, Criteo, SmileWanted, SmartAdserver, InMobi — with gdpr=0.
+5910 ms
Google Tag Manager (container GTM-NJBX26) — loads almost 4 seconds after the banner, with the user's decision still not made.
+6150–6788 ms
Meta Pixel — the script loads and immediately sends page-view events.
+6156 ms
TikTok Pixel (CVMGS93C77UDNRMCC2SG) — data to ByteDance.
+12870–12933 ms
Temu pixel — fires carrying the same gdpr=0 flag as InMobi.
~65 sec · end of session
Across the entire session, the CMP logs record no consent-acceptance or -rejection event. No decision was made — the banner remains open.

Declared versus actual

Hundreds of IAB TCF 2.0 vendors — via the InMobi CMP — заявлен
+ npttech.com — before the banner — не заявлен
+ Cloudflare Insights — before the banner — не заявлен
+ Meta Pixel — after the banner, with no recorded consent — не заявлен
+ Temu pixel — gdpr=0, with no recorded consent — не заявлен

Transfer timings

+186 ms www.npttech.com

advertising.js — before consent

+1729 ms securepubads.g.doubleclick.net

GPT — advertising infrastructure

+2166 ms cmp.inmobi.com

TCF 2.0 banner

+6150 ms connect.facebook.net

fbevents.js — the Pixel fires

+11680 ms sync.inmobi.com

Cookie sync with gdpr=0&gdpr_consent=

+12870 ms www.temu.com

The same pattern as InMobi

Detected trackers

Indicators of GDPR non-compliance

Context

Õhtuleht is Estonia’s largest tabloid. Publisher: AS Õhtuleht Kirjastus, jointly owned in equal shares by Ekspress Grupp and AVH Grupp until 2026; in April 2026, Estonia’s Competition Authority approved Ekspress Grupp’s buyout of the remaining stake. One of the country’s most-visited news sites. HAR: 883 requests, 149 unique domains. Session on an article page.

149 domains — a full-cycle advertising ecosystem

A full-fledged programmatic infrastructure: Google Publisher Tag, Prebid header bidding via Setupad, cookie sync with dozens of SSPs, analytics via Gemius and Cxense. The homepage carries no Content-Security-Policy header whatsoever, but a CSP header on one of the site’s internal backend domains reveals staging environments pointing to use of the Piano platform (paid access) — a service not directly visible through ordinary third-party requests.

The InMobi CMP starts at the two-second mark and fully loads by the four-second mark. But the CMP’s own logs, across the entire session (roughly 65 seconds), record only system events for the banner opening — not a single acceptance or rejection event. The user never made a decision. Despite this, throughout the entire session, the following run without pause: the Google tag and the GTM container itself, Meta Pixel, TikTok Pixel, the Temu pixel, and the cookie-sync chain across dozens of SSPs. The banner’s appearance had no effect on their operation — they don’t wait for a decision, because a decision isn’t actively requested.

gdpr=0 — not an isolated case

The InMobi CMP implements TCF 2.0 and loads a vendor list in Estonian. But cookie-sync requests fire with the parameter gdpr=0&gdpr_consent= (an empty string) — identifier synchronization proceeds as if the user were physically located outside GDPR’s scope. The same pattern is independently found in Temu’s pixel requests: this match across two unrelated vendors points to a systemic CMP configuration issue, not an isolated error.

Before the banner: Cloudflare, NPTTech, Google (Fonts). After the banner, but with no decision recorded: Google (Ads, Analytics, Publisher Tag, GTM), Meta, TikTok, Temu, InMobi, OpenX, Criteo, SmileWanted, SmartAdserver, Adform, Onetag, Setupad — and roughly forty more SSP partners via cookie sync.

Evidence
Original (audit)
HAR file: ee/ohtuleht-ee-2026-06-06.har
SHA-256: e0a0c71a3634c90996d27e2eb72f50aaa0961c238f77a827592aca66f513556e
Re-check snapshot
Awaiting changes
HAR files are stored on EU infrastructure (Proton Drive). SHA-256 is published for integrity verification.
IMPORTANT: before filing a complaint with the regulator, first contact the company directly and give it 30 days to respond. Without this step the regulator may reject the complaint. Details and a template letter to the company are in the Methodology.
Ready-to-send complaint letter

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.

To: Estonian Data Protection Inspectorate (AKI)
From: [Your name], [contact email]

1. Subject of the complaint
I am filing a complaint regarding the processing of my personal data by the website ohtuleht.ee.

2. Circumstances
I visited the website ohtuleht.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 6 June 2026 (open methodology, reproducible measurements) documents the following indications:

1) GPT (DoubleClick, +1729 ms), npttech.com (+186 ms), Cloudflare Insights (+162 ms), and Google Fonts (+314 ms) load before the InMobi CMP appears (+2166 ms). Advertising infrastructure initializes before the banner.

2) Across the entire session (roughly 65 seconds), the InMobi CMP logs record not a single consent-acceptance or consent-rejection event — only system events for the banner opening. Meanwhile, Google Tag Manager (+5910 ms), Meta Pixel (+6150 ms), and TikTok Pixel (+6156 ms) fire and send events regardless of the fact that no user decision has been made.

3) The InMobi CMP sends cookie-sync requests carrying the parameters gdpr=0 and an empty gdpr_consent=: sync.inmobi.com/oRTB?gdpr=0&gdpr_consent=. This means identifier synchronization across ad networks occurs as if the user were outside the scope of GDPR. The same flag independently appears in Temu's pixel requests.

4) The partner list includes hundreds of vendors, including Baidu USA LLC, IFLYTEK (HONG KONG) COMPANY LIMITED, and TECDO TECHNOLOGY CO. LIMITED — Chinese companies subject to Chinese data-access legislation. No mechanism for transferring data to China is stated.

5) Among the IAB partners are Baidu USA LLC (a Baidu subsidiary, PRC) and IFLYTEK Hong Kong (an iFLYTEK subsidiary, PRC). Additionally, Temu (operated by Whaleco Inc., a subsidiary of PDD Holdings, headquartered in Shanghai) is recorded directly in network requests. European users' data is potentially accessible to Chinese authorities.

Full technical documentation is published at: https://gdpru.eu/en/audits/ee-ohtuleht-ee/

3. Provisions violated
GDPR Art. 6(1), Art. 5(1)(a); GDPR Art. 4(11), Art. 7(1); GDPR Art. 7, TCF 2.0; GDPR Art. 13(1)(e); GDPR Art. 44, Chapter V

4. Request
I request that you investigate the violations described and 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.

[Date]                                    [Signature / name]