Technical audit · 13.09.2026

chilli.ee

A marketplace for experiences and gift cards

The marketplace for experiences and gift cards Chilli — a single capture of an updates page, 100 requests, 19 nodes. The CookieScript consent management platform is on the site, and the banner offers refusal («Keeldu kõigist»). But it loads last — at +7391 ms, after the entire advertising stack has already run: the Facebook pixel sent the page view with the full URL twice, GA4 and DoubleClick went out with status gcs=- (consent mode not configured at all), Google's remarketing audiences fired. By the time the consent mechanism appears, the data has already been transferred. And the policy is almost empty — it names not a single recipient: neither Facebook, nor Google, nor DoubleClick, nor CookieScript itself.

Request timeline

+2107…+2130 ms · container and pixel before the CMP
www.googletagmanager.com/gtag/js and gtm.js (+2107…+2130 ms), connect.facebook.net/fbevents.js (Facebook pixel, +2130 ms). The CookieScript consent platform is not yet loaded at this point (it appears only at +7391 ms).
+2932…+3063 ms · actual transfer before the CMP
www.google.com/ccm/collect and ad.doubleclick.net/ccm/s/collect (gcs=-, +2932…+2933 ms); region1.analytics.google.com/g/collect (page_view, gcs=-, +2981 ms); www.google.ee/ads/ga-audiences (remarketing, +2984 ms); www.facebook.com/tr twice (ev=PageView, dl with the full URL, +3051…+3063 ms). All before the CMP loads.

Declared versus actual

✓ Controller — Chilli.ee (a marketplace for experiences and gift cards) — declared
✓ Cookie policy: «the site uses cookies to improve service»; refusal — via browser settings (link to aki.ee) — declared
✓ On the site — a CookieScript banner with the buttons «Nõustu kõigiga» / «Keeldu kõigist» — declared
✓ Supervisory authority — Andmekaitse Inspektsioon (aki.ee) — declared
+ Facebook/Meta (two pixels, /tr with the full page address) is not named in the policy — not declared
+ Google Analytics, Google Ads/DoubleClick (advertising and remarketing) are not named in the policy — not declared
+ The entire advertising stack runs before the CMP loads (the CMP loads last, at +7391 ms) — not declared
+ GA4 and DoubleClick carry gcs=- (Google's consent mode not configured) — not declared
+ The CookieScript platform itself is not named in the policy — not declared

Transfer timings

+2130 ms connect.facebook.net

fbevents.js; the CMP appears only at +7391 ms.

+2933 ms ad.doubleclick.net

/ccm/s/collect; consent mode not configured.

+2981 ms region1.analytics.google.com

GA4 page_view; no consent signal passed.

+2984 ms www.google.ee

/ads/ga-audiences.

+3051 ms www.facebook.com

/tr ev=PageView, dl=full page address; twice (two pixels).

+7391 ms cdn.cookie-script.com

About 4.3 s after the stack had already sent everything.

Detected trackers

Indicators of GDPR non-compliance

Context

chilli.ee is a marketplace for experiences, leisure and gift cards (spa, entertainment, food, gift ideas; a map of venues). The processing is described by a short cookie policy; consent is managed by the CookieScript platform.

The capture is a single recording of a platform-updates page (/et/info/uuendused-platvormil): 100 requests, 19 nodes.

Who data goes to directly

Facebook/Meta (two pixels, page view with the full URL), Google Analytics, Google Ads/DoubleClick (advertising and remarketing audiences) — all before the CMP loads. Consent management — CookieScript (loads last). Functionally — Typekit fonts, jQuery. The first party is Chilli’s infrastructure. The requests to edge.microsoft.com/translate are a capture-tool artefact (translation in the browser).

Declared versus actual

The discrepancy here is twofold and severe: the consent mechanism is physically late, and the policy discloses almost nothing.

The CMP loads after the entire advertising stack. The site has the CookieScript platform, and the banner offers refusal («Keeldu kõigist») — by its buttons it is acceptable. But the platform itself loads last, at +7391 ms, whereas the rest of the stack runs seconds before it. The GTM container — +2107 ms, the Facebook pixel (fbevents.js) — +2130 ms. Then at +2932…+3063 ms: DoubleClick (/ccm/s/collect), Google Ads (/ccm/collect), GA4 (/g/collect), the remarketing audiences (google.ee/ads/ga-audiences) and the Facebook pixel /tr, firing twice (two pixels, ev=PageView) with the full page address in dl. That is, by the time the consent mechanism finally appears (+7391 ms), Facebook has already received the page view with the URL, and Google an event and a remarketing signal. A banner with refusal exists, but in fact it changes nothing — it is four seconds too late.

Google’s consent mode is not configured. Unlike many sites, where GA runs at least with status gcs=G100 (denial respected), here GA4 and DoubleClick carry gcs=- — there is no consent signal at all, Google’s consent mode is not connected. The cookies _fbp (Facebook) and _gcl_au (Google Ads) are written to the device.

The policy is almost empty. The cookie document states only that «the site uses cookies to improve service» and offers refusal via browser settings (with a link to aki.ee). Not a single actual recipient is named — neither Facebook/Meta, nor Google Analytics, nor Google Ads/DoubleClick, nor CookieScript itself. A visitor does not learn from the policy that their page view goes to Meta and Google with the full URL and is used for advertising remarketing.

Proven: the CMP loads last. CookieScript — +7391 ms; GTM, Facebook, GA, DoubleClick — +2107…+3063 ms, that is, about 4.3 seconds before the CMP.

Proven: the Facebook pixel fired before the CMP, with the URL. www.facebook.com/tr twice, ev=PageView, dl=chilli.ee/et/info/uuendused-platvormil (the full address).

Proven: GA and DoubleClick carry gcs=-. Google’s consent mode is not configured; the requests /g/collect, /ccm/collect, /ccm/s/collect carry gcs=-.

Proven: remarketing fired. google.ee/ads/ga-audiences at +2984 ms.

Proven: identifiers are written. The Application panel shows _fbp, _ga, _gcl_au.

Proven: the policy names no recipients. A search of the document finds neither Facebook, Google, DoubleClick, nor CookieScript.

Not established: the consent decision. The user’s choice is not recorded in the capture; the key fact is that the stack ran BEFORE the CMP appeared.

Not proven: the content of the Facebook and GA events. The full bodies in the published file are redacted; ev, id, dl, gcs are readable.

Observation boundaries

The capture covers a single page and records browser behaviour, not server-side processing: what Meta and Google do with the received data is not verified by a browser capture. What is established: the advertising stack ran before the CMP loaded, Facebook received the page URL, GA/DoubleClick went out with no consent signal. Why CookieScript loads so late (initialisation order, a markup error) is not determined from the recording; the fact of the late start is established. The requests to edge.microsoft.com/translate are attributed to capture-tool artefacts. Typekit, jQuery, jsDelivr — to the functional part.

The file is published cleaned of personal data (99 redactions, self-check clean); the load order (the CMP last), the firing of Facebook /tr with the URL, the gcs=- status of GA/DoubleClick and the presence of identification cookies can be verified directly against the published file and the screenshots. The banner and the cookies are from the screenshots (live UI).

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

Conclusion

The experiences marketplace keeps the CookieScript consent platform, and the banner offers refusal — in form everything is in place. But in substance the consent mechanism is late: it loads last, at +7391 ms, four seconds after the entire advertising stack has already run. The Facebook pixel sent the page view with the full address twice, GA4 and DoubleClick went out with no consent signal (gcs=-, consent mode not even configured), Google’s remarketing audiences fired. A banner with a «reject» button exists, but by the time the user could press it, the data has already been transferred to Meta and Google.

On top of that the policy is almost empty: it names not a single recipient — neither Facebook, nor Google, nor DoubleClick, nor CookieScript itself — offering refusal only via browser settings. So the visitor gets neither control from the banner (which is late) nor information from the policy (which is empty) about their page view going to advertising networks.

Remediation: load the CookieScript consent platform FIRST and gate the entire advertising stack on the decision, so that the Facebook pixel, GA4, DoubleClick and remarketing do not fire before the choice; configure Google’s consent mode (currently gcs=-), so that when consent has not been given the storages are denied; fill the policy with real content — name all recipients (Facebook/Meta, Google Analytics, Google Ads/DoubleClick, CookieScript) with their purposes and the fields passed; bring the «consent → processing» order to a strict form, in which a banner with refusal actually affects tag loading.

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/chilli-ee-2026-09-13.har
SHA-256: 4de2cc870c5deb48083fd403730e31c0be4992beafe8e5e3bf034aff08150906
Screenshot
Скриншот интерфейса
Cookie banner «Ahjusooja küpsist?»: «Nõustu kõigiga» / «Keeldu kõigist» — refusal on the first screen, but the CMP loads last · 13.09.2026
Скриншот интерфейса
Cookies set: _fbp (Facebook), _ga, _gcl_au (Google Ads), CookieScript · 13.09.2026
Re-check snapshot
Awaiting changes
HAR files are stored on EU infrastructure (Proton Drive). SHA-256 is published for integrity verification.