Technical audit · 06.09.2026

city24.ee

Estonian real-estate portal

The Estonian real-estate portal City24 — 453 requests, 282 nodes, a 41-minute recording. A gigantic advertising stack: hundreds of IAB TCF advertising vendors. The OneTrust consent platform is installed, but tracking starts before the user's choice: Gemius web analytics goes out at +248 ms, and Google Analytics sends data with the consent marker gcs=G100 earlier than the OneTrust banner loaded. The banner itself presents vendor checkboxes pre-ticked to consent.

Request timeline

+248 ms · Gemius web analytics
ee.hit.gemius.pl — Gemius web analytics (dominant in the Baltics), with a persistent identifier. In total 63 requests go to the Gemius nodes over the recording. The site is served through Cloudflare (server: cloudflare); strict transport with subdomain inclusion and preload, the frame-embedding ban SAMEORIGIN, a referrer policy, a permissions policy and a content-security-policy are set. The browser was sending the DNT: 1 header.
+955…+1388 ms · advertising and analytics stack
Google Ads (googleadservices, +955 ms), Google Tag Manager (+957 ms), Facebook (+1223 ms), DoubleClick (+1237 ms) and Google Analytics 4 (+1388 ms) start. The GA4 request carries the consent-mode marker gcs=G100 — 'consent granted'.
+246031…+2461953 ms · advertising auction and consent switching
Over the long session the Adition banner network, Samba TV TV-tracking, the OneTrust consent-management endpoint privacyportal-eu.onetrust.com and hundreds of TCF advertising vendors connect — from Criteo, OpenX, PubMatic, Magnite and Xandr to Taboola, Outbrain, ID5 and RTB House.

Declared versus actual

✓ Controller — Kinnisvaraportaal OÜ, registry code 10680295, Pärnu mnt 141, Tallinn 11314; the City24 portal; data-protection terms in force since 09.12.2024 — declared
✓ The policy lists cookies: Gemius (hit.gemius.pl, _hjid, Gtest, Gdyn), Facebook (fr), Google (NID), DoubleClick (IDE, test_cookie) — declared
✓ Targeting (advertising) cookies are configured by advertising partners; a link to the TCF vendor list — declared
✓ Consent is managed through the OneTrust platform; the choice is passed to Transparency and Consent Framework vendors — declared
✓ Supervisory authority — Andmekaitse Inspektsioon (info@aki.ee) — declared
+ Sending of Gemius, Google, Facebook and the advertising stack data before the choice in the consent banner — not declared
+ Vendor checkboxes pre-ticked to consent in the IAB TCF banner — not declared
+ Samba TV, Adition and the full set of 282 nodes are not disclosed in the policy by name — not declared

Transfer timings

+248 ms ee.hit.gemius.pl

Gemius web analytics, identifier d60wsoNu7…, 63 requests.

+955 ms www.googleadservices.com

Google Ads AW-999125225.

+1223 ms connect.facebook.net

Facebook pixel/SDK.

+1237 ms googleads.g.doubleclick.net

Google DoubleClick.

+1388 ms region1.google-analytics.com

GA4 G-CP61K2W67H, page_view, gcs=G100.

+3981 ms cdn.cookielaw.org

OneTrust, IAB TCF banner, checkboxes pre-ticked.

Detected trackers

Show data recipients (75)
  • Taboola Europe Limited (accessrequest.taboola.com) — advertising/RTB
  • Onfocus (Adagio) (adagio.io) — advertising/RTB
  • AddApptr GmbH (addapptr.com) — advertising/RTB
  • Adhese (adhese.com) — advertising/RTB
  • Anzu Virtual Reality LTD (admins-api.anzu.io) — advertising/RTB
  • Admixer EU GmbH (admixer.com) — advertising/RTB
  • Adserve.zone / Adserve AS (adserve.zone) — advertising/RTB
  • adsquare GmbH (adsquare.com) — advertising/RTB
  • Adzymic Creavibes (adzymic.com) — advertising/RTB
  • 2KDirect, Inc. (dba iPromote) (app.ipromote.com) — advertising/RTB
  • Sharethrough, Inc (assets.sharethrough.com) — advertising/RTB
  • BeeswaxIO Corporation (beeswax.com) — advertising/RTB
  • Blockthrough, Inc. (blockthrough.com) — advertising/RTB
  • Ask Locala (cdn-ui-pub.asklocala.com) — advertising/RTB
  • Adobe Audience Manager, Adobe Experience Platform (cdn.audiencemanager.de) — advertising/RTB
  • Blue Billywig Group BV (cdn.bluebillywig.com) — advertising/RTB
  • Index Exchange Inc. (cdn.indexexchange.com) — advertising/RTB
  • Kwanko (cdn.kwanko.com) — advertising/RTB
  • Sirdata (cdn.sirdata.eu) — advertising/RTB
  • Clipcentric, Inc. (clipcentric.com) — advertising/RTB
  • Consumable, Inc (consumable.com) — advertising/RTB
  • Content Ignite (contentignite.com) — advertising/RTB
  • Pexi B.V. (dash.pexi.nl) — advertising/RTB
  • Converge-Digital (data.converge-digital.com) — advertising/RTB
  • DEFINE MEDIA GMBH (definemedia.de) — advertising/RTB
  • adbility media GmbH (device.adbility-media.com) — advertising/RTB
  • Yieldmo, Inc. (devicestoragedisclosureurl.yieldmo.com) — advertising/RTB
  • Good-Loop Ltd (gvl.good-loop.com) — advertising/RTB
  • Effiliation / Effinity (hosting.effiliation.com) — advertising/RTB
  • MEDIARITHMICS SAS (iab-tcf.mediarithmics.com) — advertising/RTB
  • Nativo, Inc. (iab.nativo.com) — advertising/RTB
  • NEURAL.ONE (iab.neural.one) — advertising/RTB
  • Liftoff Monetize and Vungle Exchange (liftoff.ai) — advertising/RTB
  • LoopMe Limited (loopme.ai) — advertising/RTB
  • GumGum, Inc. (marketing.gumgum.com) — advertising/RTB
  • InMobi Technology Services Pte. Ltd. (mobitech.io) — advertising/RTB
  • NC Audience Exchange, LLC (ncaudienceexchange.com) — advertising/RTB
  • The Ozone Project Limited (prebid.the-ozone-project.com) — advertising/RTB
  • BidTheatre AB (privacy.bidtheatre.com) — advertising/RTB
  • Ogury Ltd (privacy.ogury.co) — advertising/RTB
  • Verve Group Europe GmbH (resources.verve.com) — advertising/RTB
  • Visarity Technologies GmbH (script.visarity.com) — advertising/RTB
  • Improve Digital (sellers.improvedigital.com) — advertising/RTB
  • Bannerflow AB (shared.bannerflow.com) — advertising/RTB
  • Adform A/S (site.adform.com) — advertising/RTB
  • Smartme Analytics (smartmeanalytics.com) — advertising/RTB
  • Smile Wanted Group (smilewanted.com) — advertising/RTB
  • Hybrid Adtech GmbH (tcf.adtech.app) — advertising/RTB
  • Appier PTE Ltd (tcf.appier.com) — advertising/RTB
  • emetriq GmbH (tcf.emetriq.de) — advertising/RTB
  • MEDIAMETRIE (tcf.mediametrie.com) — advertising/RTB
  • Seedtag Advertising S.L (tcf.seedtag.com) — advertising/RTB
  • Protected Media LTD (ui.protected.media) — advertising/RTB
  • ViewPay (viewpay.tv) — advertising/RTB
  • SunMedia (vod.sunmedia.tv) — advertising/RTB
  • Firstlead GmbH (ADCELL) (www.adcell.de) — advertising/RTB
  • AdDefend GmbH (www.addefend.com) — advertising/RTB
  • Alliance Gravity Data Media (www.alliancegravity.com) — advertising/RTB
  • AllMediaDesk GmbH (www.allmediadesk.com) — advertising/RTB
  • AUDIOMOB LTD (www.audiomob.com) — advertising/RTB
  • BIDSWITCH GmbH (www.bidswitch.com) — advertising/RTB
  • Cloud Technologies S.A. (www.cloudtechnologies.pl) — advertising/RTB
  • Eyeota Pte Ltd (www.eyeota.com) — advertising/RTB
  • Justtag Sp. z o.o. (www.justtag.com) — advertising/RTB
  • Localsensor B.V. (www.localsensor.com) — advertising/RTB
  • Sift Media, Inc (www.media.net) — advertising/RTB
  • OnAudience Ltd (www.onaudience.com) — advertising/RTB
  • OpenX (www.openx.com) — advertising/RTB
  • OS Data Solutions GmbH (www.osdatasolutions.de) — advertising/RTB
  • Pinpoll GmbH (www.pinpoll.com) — advertising/RTB
  • Quantcast (www.quantcast.com) — advertising/RTB
  • RTB House S.A. (www.rtbhouse.com) — advertising/RTB
  • Skaze (www.skaze.com) — advertising/RTB
  • The MediaGrid Inc. (www.themediagrid.com) — advertising/RTB
  • usemax advertisement (Emego GmbH) (www.usemax.de) — advertising/RTB

Indicators of GDPR non-compliance

Context

city24.ee is a large Estonian real-estate portal, City24: listings for the sale and rent of apartments, houses, commercial premises and land. The controller is Kinnisvaraportaal OÜ, registry code 10680295, Pärnu mnt 141, Tallinn 11314. The site is served through Cloudflare (server: cloudflare); the content is in Estonian, Russian and English.

The recording: 453 requests, 282 third-party nodes, a recording length of about forty-one minutes. This is one of the most advertising-infrastructure-heavy recordings in the series: besides the own nodes and Gemius analytics, the page addresses the OneTrust consent platform with an IAB Transparency and Consent Framework banner and hundreds of real-time (RTB) advertising vendors — from Criteo, OpenX, PubMatic and Magnite to Taboola, Outbrain and RTB House.

The processing is described by Kinnisvaraportaal OÜ’s data-protection terms and the text of the OneTrust consent banner; a list of TCF partners is attached to the materials.

Who receives data directly

Gemius, Google (Analytics, Ads, Tag Manager, DoubleClick), Facebook, Samba TV, Adition and hundreds of TCF advertising vendors.

Declared versus actual

Tracking starts before the choice in the consent banner. The consent-management platform OneTrust with an IAB Transparency and Consent Framework banner — the very one where the user is asked to consent to hundreds of advertising vendors — is installed on the site. But the actual tracking does not wait for it. Gemius web analytics starts at +248 ms, Google Ads at +955 ms, Google Tag Manager at +957 ms, Facebook at +1223 ms, DoubleClick at +1237 ms, and Google Analytics 4 sends data with the gcs=G100 marker at +1388 ms. The OneTrust script loads only at +3981 ms. That is, by the time the consent mechanism appears, the analytics and advertising have already run.

The banner is pre-ticked to consent. The OneTrust “vendor list” banner presents vendor checkboxes ticked by default, with an “Agree to all” button in a prominent place. The main banner screen states the essence of the processing directly: data is processed to show content and advertising and is passed to Transparency and Consent Framework partners. Pre-ticked checkboxes do not constitute valid consent: under the GDPR it must be expressed by an affirmative action, not deducted from an already-ticked state.

Some recipients are disclosed, but the composition is incomparably broader. The policy names Gemius, Google and Facebook and lists their cookies (hit.gemius.pl, fr, NID, IDE), and also refers to the TCF partner list. This is disclosure of the core. But 282 third-party nodes were recorded over the session, and Samba TV TV-tracking, the Adition banner network and the overwhelming majority of the advertising vendors are not named in the policy.

Security headers are set. The site sets strict transport with subdomain inclusion and preload, the frame-embedding ban SAMEORIGIN, a referrer policy, a permissions policy and a content-security-policy. However, the content-security-policy itself is broad (default-src 'self' https:), which, given such a volume of third-party nodes, restricts little.

Proven: tracking starts before the consent platform loads. Gemius (+248 ms), Google Ads (+955 ms), Facebook (+1223 ms), DoubleClick (+1237 ms) and Google Analytics 4 (+1388 ms) are initiated by the markup and precede the OneTrust script (+3981 ms).

Proven: Google Analytics sends data with a granted-consent marker. The GA4 request carries gcs=G100.

Proven: the banner presents checkboxes pre-ticked to consent. The OneTrust banner configuration contains vendors with a consent state ticked by default and an “Agree to all” button.

Not proven and not unambiguously established: the origin of the consent marker. The gcs=G100 marker could have been set either as a default value in the consent-mode configuration or as a saved choice from an earlier visit. Response bodies and cookie headers were removed from the published file during sanitisation, so the source of the marker cannot be reconstructed from the recording. What is recorded is the observable: the trackers send data before the consent banner loaded in this session.

Not proven and not asserted: the state of cookies on the device. Cookie headers were removed from the published file during sanitisation. Full identifiers are not reproduced in the analysis.

Separately: the browser was sending the DNT: 1 header during capture. This had no effect on the composition and addressing of the requests.

Boundaries of observation

The recording covers the home page and sections of the portal over a long session. The observation records the browser’s behaviour, not the services’ internal workings: server-side processing, contractual relationships with recipients and settings on their side are not verified by a browser recording. The legal assessment is made by the competent authority — Andmekaitse Inspektsioon.

A significant part of the 282 nodes are the disclosure and registration endpoints of IAB TCF advertising vendors (the paths tcf.*, gdpr.*, privacy.*), which are addressed at the initialisation of the advertising chain. Their presence in itself indicates the scale of the advertising circuit; which of them actually received personal data and which are only declared in the consent chain is not separated individually by a browser recording and requires separate analysis. The full list of nodes is attached to the materials for the archive.

The file is published sanitised of personal data: cookie headers in requests and response bodies were removed. The conclusion that tracking starts before consent rests on the network level — the timings, addresses and initiators of the requests are read from the recording.

The identification of services rests on domains and address patterns: Gemius — by hit.gemius.pl and the identifier; Google Analytics 4 — by google-analytics.com/g/collect and the property G-CP61K2W67H; Google Ads — by googleadservices.com and AW-999125225; Facebook — by connect.facebook.net; OneTrust — by cookielaw.org and onetrust.com; the advertising vendors — by the domains of the TCF standard.

Conclusion

The Estonian real-estate portal City24 carries one of the heaviest advertising circuits in the series: 282 third-party nodes, hundreds of real-time IAB TCF advertising vendors. The OneTrust consent-management platform is installed, but the actual tracking does not wait for it: Gemius web analytics goes out at +248 ms, and Google Analytics sends data with a granted-consent marker gcs=G100 earlier than the OneTrust banner loaded at +3981 ms. The banner, meanwhile, presents vendors with checkboxes pre-ticked to consent, which does not constitute valid consent under the GDPR.

The policy names Gemius, Google and Facebook, but the actual composition of recipients is incomparably broader, and Samba TV TV-tracking, the Adition banner network and the overwhelming majority of the advertising vendors are not disclosed by name.

Remediation: make the actual loading of all advertising and analytics tracking — including Gemius, Google, Facebook and the TCF advertising vendors — conditional on the user’s choice in OneTrust, so that before consent no data, including the gcs=G100 marker, is sent; remove the checkboxes pre-ticked to consent in the banner and the “Agree to all” button as the primary scenario; bring the list of recipients in the policy into line with the actual composition.

Evidence

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.

Original (audit)
HAR file: ee/city24-ee-2026-09-06.har
SHA-256: 43437e71d883ed71e19bdb64e5abbfbf1d0117cbb4c18551c777f72c17d4d505
Re-check snapshot
Awaiting changes
HAR files are stored on EU infrastructure (Proton Drive). SHA-256 is published for integrity verification.