What the browser loads before anyone clicks “Accept”
Almost every website now has a consent banner. Whether it does anything is not visible from the outside. We measured, in a fresh browser, what actually happens on first load — without a single click.
What § 25 TDDDG requires
A short provision with two subsections — and an exception that carries less than is often assumed.
§ 25(1) of the German Telecommunications and Digital Services Data Protection Act says, in substance: the storage of information in the end user’s terminal equipment, or access to information already stored there, is permitted only if the end user has consented on the basis of clear and comprehensive information. The provision implements Article 5(3) of the ePrivacy Directive 2002/58/EC, so the same rule exists in every member state.
Subsection 2 names two exceptions: where the sole purpose is carrying out the transmission of a communication, and where storage is strictly necessary to provide a service expressly requested by the user. That second exception plainly carries basket, session and consent cookies. It just as plainly does not carry audience measurement or advertising.
For context: the act was called TTDSG until 14 May 2024; the section is unchanged in substance, which is why older references cite § 25 TTDSG. And the wording speaks of information in the terminal equipment — not of “cookies”. A localStorage entry, a device fingerprint or reading out the font list falls under it just as much.
That is why a visible banner alone proves nothing. What matters is not whether you are asked, but when things are stored and loaded.
How we measured
The method is the real statement of this article — without it the figures are worthless.
For each site a second, fresh browser context is opened: no cookie, no storage, no history. The context used for the accessibility scan itself is unsuitable, because it has already collected cookies after the first page. In that fresh context the home page is loaded exactly once. All outgoing requests and all cookies set afterwards are recorded. What is measured is therefore the state before any consent.
Nothing is clicked. Neither “Accept” nor “Reject” — either would be a declaration of intent in someone else’s name, and we do not presume to make one for anybody. That costs us information: we do not know what happens after a click. But it makes the measurement clean, because the state before consent is exactly the one § 25 addresses.
The run takes between 3.5 and 5.2 seconds per site and runs in parallel with the accessibility scan; the total duration of a scan hardly changes as a result.
Instead of “breach” there are five levels. Finding means substantiated. Indication means ambiguous. Observation objects to nothing. Nothing noted means nothing was found. Not testable means the basis was missing. Every doubtful case is downgraded, not upgraded. And nowhere does it say “compliant”: a clean bill of health would be just as much a legal verdict about someone else’s business as an accusation.
During the test run we found and eliminated three false positives of our own: Cloudflare’s bot-detection cookie __cf_bm was counted as an advertising cookie; our own legal notice was flagged as a reference to the discontinued dispute resolution platform, although it explains that the platform was shut down; and an empty basket showing “0.00 €” on an information page was flagged as an offer without a VAT statement. We say so because a measurement without known sources of error is not a measurement but an assertion.
What came out
Eight sites, one of them our own. Sector instead of name — for the same reasons as in our other data articles.
| Site | Cookies after | Third-party hosts | Total requests | Level |
|---|---|---|---|---|
| outdoor retailer | 36 | 46 | 462 | Finding |
| eco mail-order retailer | 6 | 9 | 160 | Finding |
| baby goods retailer | 4 | 9 | 151 | Finding |
| artisan goods mail-order house | 9 | 2 | 154 | Indication |
| musical instruments retailer | 2 | 4 | 75 | Indication |
| large generalist retailer | 6 | 2 | 570 | Nothing noted |
| municipal waste utility | 0 | 3 | 94 | Nothing noted |
| scanready.eu (our own site) | 0 | 0 | 9 | Nothing noted |
“Third-party hosts” counts distinct third-party domains contacted on first load, including pure content delivery networks. “Total requests” counts all network requests made by the page. The level refers solely to the point “cookies and third parties before consent”.
Three of eight sites therefore fell under “Finding”, two under “Indication”, three drew no objection. The correlation with size is remarkably weak: the site with by far the most network requests — 570 on first load — drew no objection, because none of those requests had a recognisable measurement or advertising purpose before consent. It is not a question of budget but of wiring.
The most striking case in detail
What happened in a single page load, before anyone could click anything.
On an outdoor retailer’s site, the measurement recorded on the first load of the home page, in a fresh browser, without any interaction: 17 calls to services with a recognisable measurement or advertising purpose and 5 cookies set with a known measurement or advertising purpose. A consent banner was visible at the time.
The services contacted, with the number of calls: Google Ads (16), Google DoubleClick (16), Criteo (14), a real-time-bidding ad network (7), a DoubleClick synchronisation endpoint (6, expressly an endpoint for data transfer), a second RTB ad network (6), Microsoft Advertising (6) and a content recommendation network (6). Added to that were calls classified as ambiguous, to a tag manager and to a trust seal.
The cookies set included test_cookie (doubleclick.net), _fbp (Meta pixel), MUID (bing.com) and two Criteo cookies. In total, after that single load, 36 cookies sat in the browser — 4 of them in a known technical function, 27 with no purpose we could determine.
What we do not conclude from this. We do not say that this site breaches § 25 TDDDG. Whether an individual instance of storage is “strictly necessary” within the meaning of subsection 2 depends on a purpose only the operator knows. What we say is: this is the state a visitor encounters before deciding anything. That finding is verifiable — anyone can reproduce it in two minutes.
Measure it yourself in two minutes
No tool, no account, using the browser you already have.
- Open a private window — that gives you an empty cookie store.
- Open the developer tools (F12 in most browsers) and select the Network tab before loading the page.
- Load your own home page and click nothing — leave the banner standing.
- In the Network tab, filter for third-party domains. Names such as
doubleclick,googleadservices,criteo,facebook,bingorpubmaticare unambiguous; a tag manager on its own is not. - Switch to the Application or Storage tab and look at the cookies that have been set — names, domain, expiry.
- Repeat the same on a sub-page. Some integrations hang on individual templates and do not run on the home page at all.
Finding something does not mean you have a legal problem; it means you have a question about your own integration. As a rule the answer is known not by anyone in marketing but by the person who set up the tag manager.
Why this happens without anyone intending it
The tag manager fires independently of the banner. The most common case: the consent tool is installed and works, but a single tag in the container is triggered on “all pages” instead of on the consent event. The banner appears, the tag runs anyway. From the outside the two are indistinguishable.
Third-party components bring their own networks. A trust seal, a chat widget, a map embed, a video player: each often loads further hosts that do not appear in your own consent tool at all, because they only join at runtime.
Server-side integrations bypass the consent layer. What runs through your own server is not seen by the browser as a third party — but the storage in the terminal device still takes place, and that is what § 25 addresses.
And pre-connections count. preconnect and dns-prefetch hints to ad networks establish the connection before the actual call has been decided. The intention is speed; what gets measured is a call.
The incidental finding: a link that leads nowhere
In the same run we check whether the legal notice or the legal texts still point to the European Online Dispute Resolution platform. On one of eight sites the reference, complete with the address, was still in the legal notice.
The legal position is unambiguous and little known. Article 1 of Regulation (EU) 2024/3228 repeals Regulation (EU) No 524/2013 with effect from 20 July 2025; Article 2 governs the discontinuation of the platform. Submission of complaints ceased on 20 March 2025, and from 20 July 2025 at the latest all information on the platform is deleted. The duty to provide a link followed from Article 14 of the repealed regulation and has therefore lapsed.
A reference still present today therefore leads to a platform that no longer exists. What consequences that has is a legal question we do not answer. What can be said: it is the most easily fixed point in this entire article — delete a paragraph.
Why an accessibility testing tool measures this at all
Because an online shop owes considerably more than accessibility — and because every competitor in this field tests accessibility only. Legal notice (§ 5 German Digital Services Act), privacy notice (Article 13 GDPR), consent (§ 25 TDDDG), price indications (§§ 3, 4 and 6 of the Price Indication Ordinance), withdrawal instructions (§ 312d German Civil Code in conjunction with Article 246a EGBGB): five sets of rules that apply to the same page as EN 301 549.
With us that part runs additively in the same pass. The accessibility result is untouched by it — same rule sets, same numbers — and if the compliance check fails, the scan still completes.
Deliberately not tested, by contrast: the ordering process and the button labelling under § 312j German Civil Code (that would require filling the basket), the substantive correctness of legal texts, the dispute-resolution notice under §§ 36 and 37 VSBG (freely worded and not reliably distinguishable from a passing mention), product-specific labelling duties, and the design of the consent banner in detail. A “Reject” that is harder to find than an “Accept” is something we do not measure — that would be an assessment, not a measurement.
Sources and data
All provisions were checked at the primary source on 27 August 2026. The wording of each rule is held in the project with its source and lookup date.
- Telekommunikation-Digitale-Dienste-Datenschutz-Gesetz (TDDDG), until 14 May 2024 TTDSG§ 25(1) (consent requirement) and § 25(2) (exceptions: transmission, strictly necessary)https://www.gesetze-im-internet.de/ttdsg/__25.html (opens in a new window)Retrieved on 27.08.2026
- Regulation (EU) 2016/679 (General Data Protection Regulation)Article 13 — information to be provided where data are collected from the data subject; Article 32(1) — security of processinghttps://eur-lex.europa.eu/eli/reg/2016/679/oj (opens in a new window)Retrieved on 27.08.2026
- Regulation (EU) 2024/3228 of the European Parliament and of the CouncilArticle 1 — repeal of Regulation (EU) No 524/2013 with effect from 20 July 2025; Article 2 — discontinuation of the ODR platformhttps://eur-lex.europa.eu/eli/reg/2024/3228/oj (opens in a new window)Retrieved on 27.08.2026
- Digitale-Dienste-Gesetz (DDG)§ 5 — general information duties (legal notice); replaced § 5 TMG on 14 May 2024https://www.gesetze-im-internet.de/ddg/__5.html (opens in a new window)Retrieved on 27.08.2026
- Preisangabenverordnung (PAngV 2022)§ 6 — price indications in distance contracts (VAT, shipping costs)https://www.gesetze-im-internet.de/pangv_2022/__6.html (opens in a new window)Retrieved on 27.08.2026
- Introductory Act to the German Civil Code (EGBGB)Article 246a § 1(2) — information on the right of withdrawal, in conjunction with § 312d(1) German Civil Codehttps://www.gesetze-im-internet.de/bgbeg/art_246a__1.html (opens in a new window)Retrieved on 27.08.2026
- Own measurement, ScanreadyCompliance check of 25 August 2026 across eight sites, one of them our own. Method: second fresh browser context, one page load, no interaction; recording of all outgoing requests and cookies set.https://scanready.eu/en/ (opens in a new window)Retrieved on 27.08.2026
Read on
The most common barriers in German online shops
The data article from the same measurement series: 792 findings, 20 sites, 108 pages.
Who is exempt
Being exempt from the accessibility duty does not exempt you from § 25 TDDDG.
What market surveillance actually does
Accessibility is supervised by the MLBF; data protection by the state authorities. Two routes, two procedures.
Testing and ongoing monitoring
The compliance check runs in every scan without changing the accessibility result.
What happens on your site before the first click?
The instant result measures both: accessibility against EN 301 549 and the first load in a fresh browser. Without anything being clicked.