Technical audit · 03.10.2026

ecolines.net

Website of the international coach operator Ecolines

The website of coach operator Ecolines — two page loads and section navigations, 227 requests. A Cookiebot banner with an equivalent refusal, but Google Ads and three Google Analytics properties run before any choice without consent mode and send an identifier to Google's advertising nodes. After refusal, the same repeats on the next full page load. The policy does not name the controller, declares mere use of the site to be consent and lacks the right to lodge a complaint with a supervisory authority.

Request timeline

+0…+1.1 s · entering
Redirect ecolines.ee → ecolines.net/et-EE. Cookiebot, gtag G-8SV8ZPBQTP, a Google container from the /ah9q/ path, Apple Pay SDK, EveryPay, Cloudflare Web Analytics (+1.1 s).
+1.6…+2.5 s · advertising and analytics before any choice
Google Ads AW-1066609921 without a consent state (+1.6 s). Three GA4 properties with a client identifier, stats.g.doubleclick.net and ga-audiences (+1.6…+2.5 s).
+80…+172 s · same page
Terms of carriage, ticket management, ticket search without reload: Google in denied mode, gcs=G100.
+177.8 s · full load of the Russian version
Google Ads, G-RZBJCTBWS4 and G-SFPGY7N3EW again without a consent state, with new identifiers, requests to ga-audiences. Cookiebot's decision loads at +178.2 s.

Declared versus actual

✓ Controller — only the ECOLINES brand; help@ecolines.lv — declared
✓ Banner: cookies to personalise content and ads, provide social media features and analyse traffic; 'Keeldu', 'Luba kõik' — declared
✓ Cookiebot declaration (12.09.2026): marketing — Google (_ga, _ga_#, ga-audiences, NID, 1p-user-list), _gcl_au, _gcl_ls; necessary — including pay.every-pay.eu and checkout.ecolines.ru — declared
✓ Policy: card payments via SIA Worldline Latvia; transfer to carriers; data is not passed to third parties for advertising purposes — declared
✓ Policy: by using the site, you have agreed to the policy — declared
+ The controller's legal entity — not declared
+ Data subject rights and the right to lodge a complaint with the Andmekaitse Inspektsioon — not declared
+ Cloudflare Web Analytics, Apple Pay — not declared
+ Google Ads and Google Analytics before any choice and after refusal — not declared

Transfer timings

+1.6 s www.google.com

Google Ads ccm/collect, page_view without a consent state.

+1.6 s region1.analytics.google.com

GA4 G-RZBJCTBWS4 with a client identifier.

+1.7 s www.google.ee

ads/ga-audiences with a client identifier.

+69.4 s consent.cookiebot.com

logconsent, action=decline.

+177.8 s region1.analytics.google.com

GA4 without a consent state, a new client identifier.

+177.8 s www.google.com

Google Ads, page_view with a new advertising identifier.

Detected trackers

Indicators of GDPR non-compliance

Context

ecolines.net is the website of the international coach operator Ecolines: ticket sales, booking management and a loyalty programme account. The Estonian address ecolines.ee redirects to ecolines.net/et-EE. The policy does not name a controller — only the ECOLINES brand and the address help@ecolines.lv. Consent is managed by Cookiebot.

The measurement is a single capture of two page loads: the Estonian homepage with navigations to the terms of carriage, ticket management and ticket search, then the Russian homepage and the “About us” page. In total, 227 requests.

Who receives data directly

Google — Ads and Analytics with the DoubleClick and ga-audiences advertising nodes, before any choice and after refusal. Cloudflare — Web Analytics. Apple and EveryPay — payment scripts. Cookiebot — as the consent platform.

Declared versus actual

First — Google does not wait for a choice. 1.6 seconds after entry, Google Ads sends a page view with an advertising identifier, and three Google Analytics properties send one with a client identifier. The same identifier goes to stats.g.doubleclick.net and ga-audiences. These tags have no consent mode.

Second — after refusal, the same on reload. Within the page where “Keeldu” was pressed, Google switches to denied mode. But on the full load of the next page, Google Ads and two Analytics properties fire again without a consent state, with new identifiers, before Cookiebot manages to apply the stored decision.

Third — the policy treats use of the site as consent. The text assumes that a visitor who opened the site has already agreed to the policy, and suggests controlling cookies through browser settings.

Fourth — the policy is incomplete. The controller is not named, the only legal basis is consent, there are no retention periods, and transfers outside the EU get a general phrase. The only rights are withdrawing consent, opting out of marketing and deletion from the account; there is no right to lodge a complaint with a supervisory authority.

Fifth — the policy denies sharing data for advertising. It claims that data is not passed to third parties for advertising purposes, although Google Ads runs and the Cookiebot declaration itself describes Google remarketing. Cloudflare Web Analytics and Apple Pay are named nowhere.

Proven: Google tags run before any choice. Google Ads at +1.6 s, three GA4 properties and ga-audiences at +1.6…+2.5 s — without the gcs parameter, gcd with no set states.

Proven: a refusal took place. The Cookiebot log records action=decline at +69.4 s.

Proven: after refusal, Google tags fire again. On the full load at +177.8 s — Google Ads, two GA4 properties and ga-audiences without a consent state, with new identifiers; Cookiebot’s decision loaded at +178.2 s.

Proven: within a page, the refusal is applied. After +69.4 s and until the reload, every Google Analytics request carries gcs=G100.

Not established: what happens after consent. The “Luba kõik” scenario was not examined.

Boundaries of this observation

The measurement covers the site’s public pages. Buying a ticket and logging into the personal account were not examined. The observation records browser behavior, not server-side processing. The file has been published cleaned: Cookie headers were removed. Google client identifiers are not reproduced in this review.

Legal assessment falls to the competent authority — the Andmekaitse Inspektsioon.

Conclusion

The Ecolines banner offers a fair choice, but the Google tags ignore it. Advertising and analytics run before the decision, and after refusal — again on every full page load. The policy does not name the controller, treats mere use of the site as consent, lacks retention periods, most rights and the right to complain, and its claim of not sharing data for advertising is refuted by its own cookie declaration.

Remedy: bring Google Ads and Google Analytics under Cookiebot and set a denied state before any tag loads; remove the second Google tag call that is not tied to consent; rewrite the policy — name the legal entity, legal bases per purpose, retention periods, the full list of rights and the right to lodge a complaint with the Andmekaitse Inspektsioon, and the mechanism for transfers outside the EU; remove the wording on consent through use of the site; name Cloudflare Web Analytics and Apple Pay.

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/ecolines-net-2026-10-03.har
SHA-256: e2e6d3d7ff935e375a2397f0af38460715be441743d5a12b2659ccbedea0212c
Screenshot
Скриншот интерфейса
Cookiebot banner 'Veebilehel on kasutatud küpsiseid': equivalent 'Keeldu' and 'Luba kõik' buttons · 03.10.2026
Re-check snapshot
Awaiting changes
HAR files are stored on EU infrastructure (Proton Drive). SHA-256 is published for integrity verification.