Technical audit · 09.09.2026

1a.ee

Electronics marketplace

Electronics marketplace — a single capture of a product page, 141 requests, 15 nodes, about six seconds. The Cookiebot consent management platform is in place, and it holds Google analytics correctly: GA4 events carry the 'denied' status, cookielessly. But the Bazaarvoice reviews service outruns this frame — its code and behavioural analytics beacons begin working before the consent mechanism itself loads on the page. Separately, the Bitrec recommendation engine is written into the page and not named in the policy; in this capture its request was blocked. Security headers are set strictly.

Request timeline

+1282…+1289 ms · third-party services before the CMP
apps.bazaarvoice.com — the Bazaarvoice reviews service; goldfish.bitrec.com/recommender.js — the Bitrec recommendation engine (request with status 0). Both start before the Cookiebot consent platform loads at +1850 ms. Served via Cloudflare; security headers are strict: HSTS (two years), Referrer-Policy strict-origin-when-cross-origin, X-Content-Type-Options nosniff, X-Frame-Options SAMEORIGIN.
+1290…+1318 ms · Cloudflare, GTM, Facebook SDK
static.cloudflareinsights.com/beacon.min.js, www.googletagmanager.com/gtm.js and connect.facebook.net/sdk.js — the Cloudflare analytics beacon, the tag container and the Facebook SDK (no pixel /tr events observed).
+2207…+3126 ms · Bazaarvoice analytics beacons
network-eu-a.bazaarvoice.com/a.gif — eight behavioural requests of magpie analytics (load identifier, client, environment). All with consent status gcs=- (consent mode not applied).
+2978…+2992 ms · Google analytics (cookieless)
region1.google-analytics.com — conversion requests and GA4 events session_start, page_view, view_item (G-13JMJS6JQH), gcs=G100. The view_item event carries the page type and the product price; pings are cookieless.

Declared versus actual

✓ Controller — the 1A.ee operator (SIA, per the 'Policy and cookies' document); four cookie categories — declared
✓ The cookie declaration names: Bazaarvoice, LupaSearch, Google Analytics, Facebook / Meta, Cloudflare, Firebase, Cookiebot — declared
✓ 'By continuing to browse, you agree to the necessary cookies'; other categories — by consent configuration — declared
✓ Categories: necessary, statistics (statistika), marketing (turundus), preferences — declared
✓ Consent management — Cookiebot; supervisory authority — Andmekaitse Inspektsioon — declared
+ Bitrec (goldfish.bitrec.com) — recommendation engine; written into the page markup, not named in the cookie declaration — not declared
+ The fact that Bazaarvoice analytics (a.gif beacons) start before the consent platform loads — not declared

Transfer timings

+1282 ms apps.bazaarvoice.com

The Bazaarvoice reviews service, before the Cookiebot consent platform.

+1289 ms goldfish.bitrec.com

The Bitrec recommendation engine (recommender.js). Blocked / did not complete. Not named in the policy.

+1850 ms consent.cookiebot.com

Appears after Bazaarvoice.

+2207 ms network-eu-a.bazaarvoice.com

The a.gif beacon of magpie analytics; load identifier, client, environment.

+2980 ms region1.google-analytics.com

GA4 page_view/view_item, G-13JMJS6JQH, gcs=G100.

Detected trackers

Indicators of GDPR non-compliance

Context

1a.ee — a marketplace for electronics and household appliances; the operator is stated in the “Policy and cookies” document (a Latvian SIA of the Klix / 220.lv group). The site is served via Cloudflare and holds a strict bar of headers: HSTS (two years, includeSubDomains), Referrer-Policy strict-origin-when-cross-origin, X-Content-Type-Options nosniff, X-Frame-Options SAMEORIGIN. Consent management is implemented by the Cookiebot platform.

The capture is a single recording of a product page: 141 requests, 15 nodes, about six seconds, recorded on 9 September 2026. The processing is described by a cookie declaration running on the Cookiebot engine.

Who data goes to directly

Before consent — Bazaarvoice (the analytics beacons of the reviews service). Google analytics run cookielessly and respect the denial. The Bitrec recommendation engine is written into the markup (blocked in this capture). Functionally — LupaSearch (search), Firebase, Cloudflare.

Declared versus actual

The discrepancy here is selective and lies at two points.

Google analytics respect the denial. Cookiebot is configured for Google consent mode, and the GA4 events (G-13JMJS6JQH) — session_start, page_view, view_item — carry status gcs=G100: both storages denied, pings cookieless. The view_item event carries the page type and the product price, but without a cookie binding. This is correct behaviour when consent has not been given.

But the reviews analytics outrun the consent mechanism. The Bazaarvoice reviews service loads at +1282 ms, whereas the Cookiebot platform itself is only pulled in at +1850 ms. Bazaarvoice’s behavioural analytics beacons — network-eu-a.bazaarvoice.com/a.gif, magpie analytics with a load identifier, client and environment — fire at +2207…+3126 ms. That is, third-party analytics start on the page first, and only then does the consent mechanism appear; the Bazaarvoice beacons are not conditioned on that mechanism. The reviews widget is itself functional, but its behavioural analytics are a separate processing operation that should not fire before consent.

And one recipient is undisclosed. The cookie declaration names Bazaarvoice, LupaSearch, Google Analytics, Facebook, Cloudflare and Firebase. But the recommendation and personalisation engine Bitrec (goldfish.bitrec.com) is not mentioned in it, even though its recommender.js script is written into the page markup. In this capture the request to Bitrec returned status 0 — blocked or did not complete — so an actual data transfer is not confirmed; but an undisclosed third-party recipient is embedded into the page.

Proven: Google analytics respect the denial. All GA4 requests carry gcs=G100 and are cookieless.

Proven: Bazaarvoice starts before the consent platform. The Bazaarvoice code loads at +1282 ms, the Cookiebot platform at +1850 ms; the a.gif analytics beacons fire at +2207…+3126 ms.

Proven: Bitrec is written into the markup, but its request did not complete. recommender.js was requested at +1289 ms with status 0.

Not proven: the content of the Bazaarvoice requests and any transfer to Bitrec. What exactly the Bazaarvoice beacons carry beyond service fields is not stated in this analysis; a transfer to Bitrec is not confirmed due to status 0.

Not established: the consent decision. In this short capture there is no Cookiebot request recording a choice; the gcs=G100 status at GA4 indicates a denied state (by default or by refusal), but the action itself is not visible in the capture.

Observation boundaries

The capture covers a single page — the product page — and records browser behaviour, not the internal workings of the services: server-side processing, tag container configuration and contracts with recipients are not verified by a browser capture. Status 0 on the Bitrec request means the request did not complete (blocked or did not go through); the conclusion of non-disclosure rests on the fact that its script is embedded, not on a transfer. The image networks (ksd-images.lt) and the Klix platform are attributed to the first party and group infrastructure; LupaSearch and Firebase — to the functional part.

The file is published cleaned of personal data: cookie values in requests have been removed. Response headers, statuses, load order and initiators are preserved, so the load order of Bazaarvoice relative to the CMP, the gcs=G100 status of the analytics and the status 0 of Bitrec can be verified directly against the published file.

The legal assessment is made by the competent authority — Andmekaitse Inspektsioon.

Conclusion

The marketplace maintains the Cookiebot consent management platform and strict security headers, and holds Google analytics correctly: GA4 events carry the “denied” status, cookielessly. But the consent frame does not cover the whole stack. The Bazaarvoice reviews service starts before the consent mechanism itself loads on the page, and its behavioural analytics beacons fire outside that frame. And the Bitrec recommendation engine is written into the page markup, not named in the cookie declaration — in this capture its request was blocked, but the very fact of an undisclosed recipient being embedded remains.

Remediation: condition the loading and the analytics beacons of Bazaarvoice on actual consent, so that before a choice its code does not start ahead of the consent platform and the a.gif beacons do not fire; name the Bitrec recommendation engine in the cookie declaration as a recipient with its purpose stated, or remove its script from the page if it is not used; preserve the correct behaviour of Google analytics, extending the same gating principle to the reviews service.

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/1a-ee-2026-09-09.har
SHA-256: 7aee069c94e078d6e052d57334aefe3002958a8c559a3099d88abf61dc1e71be
Re-check snapshot
Awaiting changes
HAR files are stored on EU infrastructure (Proton Drive). SHA-256 is published for integrity verification.