This is an old revision of the document!
Table of Contents
Measuring the Privacy Sandbox
Third-party cookies were not removed from Chrome, and the APIs that were built to replace them are now being removed instead. Both halves of that sentence matter to a crawl you design in 2026, and neither is what the 2022 Privacy Sandbox roadmap says.
This page is about the second half: Topics, Protected Audience, Attribution Reporting, Shared Storage, Private Aggregation, Fenced Frames, CHIPS, the Storage Access API, Related Website Sets and Private State Tokens — what shipped, what is being torn out, what a crawler can see of any of it, and what the seven-venue publication corpus has and has not measured. The cookie side is Cookies; the partitioning of storage is Browser storage; what your automation library does to the engine's partitioning posture is Since 2022 the engine decides, not you.
The one thing to know before you design anything.
- On 2025-10-17 Google announced it would retire ten Privacy Sandbox technologies: “Attribution Reporting API (Chrome and Android), IP Protection, On-Device Personalization, Private Aggregation (including Shared Storage), Protected Audience (Chrome and Android), Protected App Signals, Related Website Sets (including requestStorageAccessFor and Related Website Partition), SelectURL, SDK Runtime and Topics (Chrome and Android)”.1) CHIPS, FedCM and Private State Tokens continue.
- The same day, the UK CMA closed its Privacy Sandbox investigation and released Google from the commitments that had constrained the project since 2022. Case opened 2021-01-07, closed 2025-10-17.2)
- They have not been removed yet. As of 2026-09-01, every one of those Chrome Platform Status “Deprecate and remove” entries is still marked Proposed, and Chromium 151.0.7922.34 exposes and answers every one of the APIs — measured on this page. Chrome stable today is M152 (2026-08-25). The removal milestone for Topics, Protected Audience, Attribution Reporting, Shared Storage, Related Website Sets and
requestStorageAccessForis M153, whose stable date is 2026-09-08. - So there is a window, it is short, and the browser version is the single most important thing to pin and report in any Privacy Sandbox measurement. See What to Report.
What to Read First
- Fledging Will Continue Until Privacy Improves [1Calderonio, Giuseppe; Ali, Mir Masood; Polakis, Jason (2024): "Fledging Will Continue Until Privacy Improves: Empirical Analysis of Google's Privacy-Preserving Targeted Advertising", in: Proceedings of the USENIX Security Symposium, pp. 4121-4138. (Link)], USENIX Security 2024 — the only deployment-scale crawl of Protected Audience in this corpus, and the model for how to instrument one. Read §3 for the method (wrapper functions injected by Puppeteer) before you read the results.
- Exploiting the Shared Storage API [2Nisenoff, Alexandra; Stefan, Deian; Christin, Nicolas (2025): "Exploiting the Shared Storage API", in: Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. (DOI)], CCS 2025 — the most recent Privacy Sandbox measurement in the corpus, and the one that shows what the attestation artefacts give you for free.
- Interest-disclosing Mechanisms for Advertising are Privacy-Exposing (not Preserving) [3Beugin, Yohan; McDaniel, Patrick (2024): "Interest-disclosing Mechanisms for Advertising are Privacy-Exposing (not Preserving)", in: Proceedings on Privacy Enhancing Technologies. (DOI)], PoPETs 2024 — the systematic privacy analysis of Topics, with the re-identification numbers everyone cites.
- A First Look at Related Website Sets [4McQuistin, Stephen; Snyder, Peter; Haddadi, Hamed; Tyson, Gareth (2024): "A First Look at Related Website Sets", in: Proceedings of the ACM Internet Measurement Conference. (DOI)], IMC 2024 — the template for measuring a Privacy Sandbox governance artefact (a GitHub list and its pull requests) rather than a browser API.
- Then the primary sources, because no paper is current: Google's own Privacy Sandbox feature status page and the per-feature entries on Chrome Platform Status.
What Shipped, and What Is Being Removed
Every row was checked on 2026-09-01 against Chrome Platform Status' JSON API and Google's own status page — not against documentation, blog posts or memory. The Detection column is the expression this page measured in Chromium 151.0.7922.34; read Presence is not availability, and neither is a return value before you use it.
| API | Former names | Shipped | Status on 2026-09-01 | Detection expression |
|---|---|---|---|---|
| Topics | FLoC (different design) | M115, 2023-07-18 | Enabled by default. Removal proposed, M153 | typeof document.browsingTopics |
| Protected Audience | FLEDGE, TURTLEDOVE | M115, 2023-07-18 | Enabled by default. Removal proposed, M153 | 'joinAdInterestGroup' in navigator |
| Attribution Reporting | Conversion Measurement API | M115, 2023-07-18 | Enabled by default. Removal proposed, M153 | 'attributionSrc' in HTMLAnchorElement.prototype |
Shared Storage (incl. selectURL) | — | M115, 2023-07-18 | Removal proposed, M153 | 'sharedStorage' in window |
| Private Aggregation | — | M115, 2023-07-18 | Removal proposed, M152. Reachable only from Shared Storage and Protected Audience worklets | privateAggregation inside a worklet |
| Fenced Frames | — | M115, 2023-07-18 | Removal proposed, M155 | 'HTMLFencedFrameElement' in window |
| Related Website Sets | First-Party Sets | M115, 2023-07-18 | Removal proposed, M153. The submission repository is archived | none — inferred from requestStorageAccess behaviour |
requestStorageAccessFor() | — | M115, 2023-07-18 | Removal proposed, M153 | 'requestStorageAccessFor' in document |
CHIPS — the Partitioned cookie attribute | — | M114, 2023-05-30 | Continues. Explicitly kept on 2025-10-17 | none — no JS surface; set and read back a Partitioned; Secure cookie |
| Storage Access API | — | M115 per Chrome Platform Status; “Chrome 119 and higher” per Google's status page3) | Continues | 'requestStorageAccess' in document |
| Private State Tokens | Trust Tokens | M115, 2023-07-18 | Continues. Explicitly kept on 2025-10-17 | typeof document.hasPrivateToken |
| FedCM | WebID | M108 | Continues. Explicitly kept on 2025-10-17 | 'IdentityCredential' in window |
| Bounce tracking mitigations | — | M116, 2023-08-15 | Continues. Not an API — a heuristic that clears state | none |
| User-Agent Client Hints / UA reduction | — | rollout from M89; deprecation trial ended 2023-09-23 | Continues | 'userAgentData' in navigator |
| IP Protection | Gnatcatcher | never shipped | Discontinued 2025-10-17. Its repository was archived 2025-11-03 | — |
| Privacy Budget | — | never shipped | Never implemented in any browser | — |
| FLoC | — | origin trial only, Chrome 89, 2021 | Withdrawn January 2022 and replaced by Topics | — |
| Privacy Sandbox on Android (SDK Runtime, Topics, Protected Audience, Attribution, Protected App Signals, On-Device Personalization) | — | — | All scheduled for phaseout | not a web surface |
Google's status page also lists Fenced Storage Read, Private Proofs, Probabilistic Reveal Tokens and Script Blocking as Do not launch, and Partitioned Popins and Related Website Partition as Discontinue. If you meet one of those names in a 2024 explainer, it never shipped.4)
The timeline, because the roadmap is not the platform
The single most common error in a Privacy Sandbox paper is to cite a Google announcement as though it described the browser. Between 2020 and 2026 the announced plan changed direction four times, and each reversal invalidated the motivation section of papers already in submission.
| Date | What happened |
|---|---|
| 2020-01 | Chrome announces it will phase out third-party cookies “within two years” |
| 2021-03 → 2021-07 | FLoC origin trial, Chrome 89, excluded the EEA. Widely attacked; withdrawn |
| 2022-01-25 | FLoC development ends; Topics proposed instead |
| 2022-02 | The UK CMA accepts Google's commitments, making Chrome's cookie plans subject to regulatory oversight |
| 2023-05-30 → 2023-08-15 | M114–M116: CHIPS, then the whole ads-API set, then bounce-tracking mitigations, reach stable |
| 2024-01-04 | Tracking Protection (third-party cookies off) enabled for 1% of Chrome users |
| 2024-07-22 | “A new path for Privacy Sandbox on the web”: deprecation replaced by “a new experience in Chrome that lets people make an informed choice”5) |
| 2025-04-22 | Chrome “will not be rolling out a new standalone prompt for third-party cookies”. Third-party cookies stay, by default, indefinitely6) |
| 2025-10-17 | Ten technologies retired. The CMA closes its investigation the same day |
| 2025-11-03 / 2025-11-21 | The ip-protection and related-website-sets GitHub repositories are archived |
| 2026-08-25 | M152 reaches stable. Private Aggregation's removal is targeted here, still marked Proposed |
| 2026-09-08 | M153 stable date: the targeted removal milestone for Topics, Protected Audience, Attribution Reporting, Shared Storage, RWS and requestStorageAccessFor |
Do not write “third-party cookies are being deprecated” in a 2026 paper, and do not write “the Privacy Sandbox is the replacement” either. Both are now false. If your motivation needs a sentence, the accurate one is: third-party cookies remain enabled by default in Chrome, and the ad-targeting APIs proposed to replace them are being withdrawn. Cookie syncing and Server side tracking carry the same correction for their own framings.
Detecting and Recording the APIs from a Crawl
Presence is not availability, and neither is a return value
Measured here, 2026-09-01, Chromium 151.0.7922.34 as shipped with Playwright 1.62.1. Every Privacy Sandbox JS surface is present under the default flags of both Playwright and Puppeteer, and document.featurePolicy.allowsFeature() returns true for all six ads-API Permissions-Policy features (browsing-topics, join-ad-interest-group, run-ad-auction, attribution-reporting, shared-storage, private-aggregation). Adding --enable-features=PrivacySandboxAdsAPIsOverride changed nothing, in either library.
That is the easy half. The hard half is that calling them tells you nothing either. On an HTTPS page served from a domain that is definitely not enrolled, every call returned a benign empty value rather than throwing:
document.browsingTopics() RETURNED []
navigator.joinAdInterestGroup() RETURNED undefined
navigator.runAdAuction() RETURNED null
sharedStorage.set() RETURNED undefined
document.hasPrivateToken() RETURNED false
document.requestStorageAccess() RETURNED undefined
fetch(..., {attributionReporting}) RETURNED 200
The same four outputs came back from localhost, from a mapped non-enrolled public-looking domain, with the ads-API override on, and with --privacy-sandbox-enrollment-overrides pointed at the origin. A crawler cannot distinguish “the API is on and there was nothing to report” from “the API is off for this profile” from “this caller is not enrolled” by looking at the return value. An empty Topics array is the expected result on a fresh profile with no history, and it is also what a disabled API gives you.
The consequence for a measurement is direct: do not report “N% of sites can use the Topics API” from a feature-detection sweep. Presence of the symbol is a fact about the browser build, identical on every site. The only site-level facts are (a) whether site code called the API, and (b) whether the caller is enrolled — and those need the instrumentation below.
Chrome DevTools Protocol: what it covers, and for how long
Chromium's CDP Storage domain carries first-class Privacy Sandbox instrumentation, which is far cheaper than injecting wrappers. Enumerated from the browser's own /json/protocol descriptor, Chromium 151.0.7922.34, 2026-09-01:
CDP Storage surface | Present in Chromium 151 | Present at Chromium tip-of-tree |
|---|---|---|
setInterestGroupTracking, setInterestGroupAuctionTracking, getInterestGroupDetails | yes | gone |
setSharedStorageTracking, getSharedStorageMetadata, getSharedStorageEntries, setSharedStorageEntry, deleteSharedStorageEntry, clearSharedStorageEntries, resetSharedStorageBudget | yes | gone |
events interestGroupAccessed, interestGroupAuctionEventOccurred, interestGroupAuctionNetworkRequestCreated, sharedStorageAccessed, sharedStorageWorkletOperationExecutionFinished | yes | gone |
runBounceTrackingMitigations, getRelatedWebsiteSets | yes | yes |
| anything for Topics | no | no |
| anything for Attribution Reporting | no | no |
Tip-of-tree is the ChromeDevTools/devtools-protocol master descriptor, fetched 2026-09-01: the Privacy Sandbox commands and all five events are already absent there. The instrumentation is being removed with the API. If you intend to record Protected Audience or Shared Storage activity, pin a Chromium at or before the removal milestone and say which one; a crawl on evergreen Chrome will silently stop producing events.
This works today, verified end to end — the toggles were accepted and the events arrived:
- ps_cdp_probe.mjs
// Record Protected Audience and Shared Storage activity via CDP. // Verified 2026-09-01 against Chromium 151.0.7922.34 (Playwright 1.62.1). // Storage.setAttributionReportingTracking does NOT exist: that toggle is // rejected with a protocol error, so Attribution Reporting needs a JS wrapper. import { chromium } from 'playwright'; const browser = await chromium.launch({ headless: true }); const context = await browser.newContext(); const page = await context.newPage(); const cdp = await context.newCDPSession(page); const events = []; for (const ev of [ 'Storage.interestGroupAccessed', 'Storage.interestGroupAuctionEventOccurred', 'Storage.interestGroupAuctionNetworkRequestCreated', 'Storage.sharedStorageAccessed', 'Storage.sharedStorageWorkletOperationExecutionFinished', ]) cdp.on(ev, (p) => events.push({ ev, ...p })); await cdp.send('Storage.setInterestGroupTracking', { enable: true }); await cdp.send('Storage.setInterestGroupAuctionTracking', { enable: true }); await cdp.send('Storage.setSharedStorageTracking', { enable: true }); await page.goto('https://example.com/', { waitUntil: 'networkidle' }); await page.waitForTimeout(2500); // worklets finish after the load event console.log(JSON.stringify(events, null, 1)); await browser.close();
A sharedStorageAccessed event carries accessTime, scope (window or the worklet), method (set, addModule, run, selectURL, …), ownerOrigin, ownerSite and the call's params — that is, everything needed to reproduce [2Nisenoff, Alexandra; Stefan, Deian; Christin, Nicolas (2025): "Exploiting the Shared Storage API", in: Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. (DOI)]'s prevalence figure without writing a page-script wrapper at all. An auction produces interestGroupAuctionEventOccurred with a uniqueAuctionId and the full auctionConfig, followed by interestGroupAuctionNetworkRequestCreated entries tagged bidderJs and sellerJs — the seller attribution that gives [1Calderonio, Giuseppe; Ali, Mir Masood; Polakis, Jason (2024): "Fledging Will Continue Until Privacy Improves: Empirical Analysis of Google's Privacy-Preserving Targeted Advertising", in: Proceedings of the USENIX Security Symposium, pp. 4121-4138. (Link)]'s 99.8% figure.
The wrapper-injection route, and why the corpus used it
Topics and Attribution Reporting have no CDP surface at all, in any Chromium version checked. For those, the corpus's method is the one to copy: [1Calderonio, Giuseppe; Ali, Mir Masood; Polakis, Jason (2024): "Fledging Will Continue Until Privacy Improves: Empirical Analysis of Google's Privacy-Preserving Targeted Advertising", in: Proceedings of the USENIX Security Symposium, pp. 4121-4138. (Link)] “used Puppeteer to orchestrate Chrome”, visiting each domain in a fresh browser instance, and “injects wrapper functions into the page and logs all” calls to navigator.runAdAuction, navigator.joinAdInterestGroup and navigator.leaveAdInterestGroup. Inject the wrapper before any page script runs — page.addInitScript() in Playwright, page.evaluateOnNewDocument() in Puppeteer — and wrap document.browsingTopics, the attributionReporting option on fetch, and the attributionSrc setter on HTMLAnchorElement/HTMLImageElement the same way.
Two things this costs you, both worth a sentence in your methods section: a wrapper is visible to page script and is therefore detectable (Crawler detection), and it sees only the main world unless you also install it into every frame and worklet.
Nothing outside Chromium implements the ads APIs
Firefox and Safari never implemented Topics, Protected Audience, Shared Storage, Fenced Frames or Private Aggregation. The Storage Access API and CHIPS are the exceptions with genuine cross-browser support. Two attribution efforts outside Chrome are worth dating rather than assuming:
- Firefox Privacy-Preserving Attribution (PPA) shipped as an experiment in Firefox 128 (July 2024), scoped to Mozilla-operated sites, and drew a noyb complaint to the Austrian DPA for being on by default. Bugzilla 1979093, “Remove checkbox in settings for feature that was never enabled”, is RESOLVED FIXED against the 143 Branch (last changed 2025-08-21).7)
- W3C
Attribution Level 1is a live W3C Working Draft from the Private Advertising Technology Working Group, fetched 2026-09-01 at w3.org/TR/attribution. Google's 2025-10-17 post says it will “continue to engage on it through the web standards process”. No browser ships it. This is the surface to watch, not to measure.
OpenWPM cannot observe any of this, because it drives Firefox. If your instrument is OpenWPM, a Privacy Sandbox measurement is not a configuration change, it is a different crawler.
Populations You Can Reuse Without Crawling
Privacy Sandbox is unusually generous with public artefacts, and three of the four measurement papers in the corpus lean on them. All counts below were taken on 2026-09-01.
| Artefact | Where | Size today | What it is good for |
|---|---|---|---|
| Enrollment report | privacysandbox/attestation → enrollment_report.csv | 326 rows | The company-level population. Columns: Enrollment Id, Company Name, Android APIs, Chrome APIs, SDK Names, Site |
| Preloaded attestation list | PrivacySandboxAttestationsPreloaded/privacy-sandbox-attestations.dat, inside your own Chromium install | 263 sites, component version 2025.7.18.0 | The list the browser itself enforces against. No network access needed |
| Per-site attestation file | https://<site>/.well-known/privacy-sandbox-attestations.json | one per enrolled site | Which APIs each site declared. [2Nisenoff, Alexandra; Stefan, Deian; Christin, Nicolas (2025): "Exploiting the Shared Storage API", in: Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. (DOI)] fetched 289 of these and got 245 (85%) |
| Related Website Sets list | GoogleChrome/related-website-sets → related_website_sets.JSON | 70 sets, 320 member domains, 66 sets (94.3%) with at least one associated site. Repository archived | A complete census, not a sample. Also reachable in-browser via CDP Storage.getRelatedWebsiteSets |
| Topics taxonomy | patcg-individual-drafts/topics → taxonomy_v2.md | 469 topics. There is no v3 | The label space. Note the Android taxonomy is curated separately — do not conflate them |
The enrollment report is also a measurement in itself. Of its 326 rows, the Chrome APIs each enrollee asked for:
| Chrome API declared at enrollment | Enrollees | Share of 326 |
|---|---|---|
| Topics | 249 | 76.4% |
| Protected Audience | 237 | 72.7% |
| Attribution Reporting | 228 | 69.9% |
| Shared Storage | 205 | 62.9% |
| Private Aggregation | 193 | 59.2% |
25 of the 326 rows declare no Chrome API at all (they are Android-only enrolments). Read this as intent to call, not as deployment: an enrolment is a form somebody filled in, and [2Nisenoff, Alexandra; Stefan, Deian; Christin, Nicolas (2025): "Exploiting the Shared Storage API", in: Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. (DOI)] found that the API traffic on real sites came from four domains, not from hundreds.
Use in Publications
How much of the corpus is about this at all
The full-text sweep ran over the 5,869 papers with a paper.cols.txt in the corpus (seven venues, 2010–2026; the structured extraction covers 5,859 of them). Free-text API names were folded through scripts/ps_fold.mjs so that FLoC counts with Topics, FLEDGE and TURTLEDOVE with Protected Audience, and First-Party Sets with Related Website Sets.
| Query | Papers | Share of 5,869 |
|---|---|---|
| name “Privacy Sandbox” at least once | 43 | 0.7% |
| name at least one API family (folded) | 72 | 1.2% |
| name “Privacy Sandbox” five or more times | 9 | 0.2% |
This is the page's central limitation and it belongs at the top of the section rather than in a footnote. A dozen papers in seven venues over sixteen years is not a literature; it is a handful of studies, and every generalisation on this page rests on them. Anything you want to know that the table below does not answer, the corpus cannot tell you — go to the specs and to Chrome Platform Status.
| API family | Folded-in former names | Papers |
|---|---|---|
| Topics API | FLoC | 22 |
| Protected Audience | FLEDGE, TURTLEDOVE | 11 |
| User-Agent Client Hints / UA reduction | — | 10 |
| Privacy Sandbox on Android | SDK Runtime | 7 |
| CHIPS (partitioned cookies) | the Partitioned attribute | 5 |
| Related Website Sets | First-Party Sets | 6 |
| Private State Tokens | Trust Tokens | 5 |
| Attribution Reporting API | Conversion Measurement API | 4 |
| Fenced Frames | — | 4 |
| Shared Storage API | — | 3 |
| Private Aggregation / Aggregation Service | — | 2 |
| Storage Access API | — | 2 |
| FedCM | Federated Credential Management | 1 |
| IP Protection | Gnatcatcher | 0 |
| Bounce Tracking Mitigations (the Chrome feature by name) | — | 0 |
And by year, which is the more useful shape — this is a topic the corpus noticed late and is already losing interest in:
| Year | Papers with full text | Name “Privacy Sandbox” | Name any API family |
|---|---|---|---|
| 2020 | 402 | 1 | 4 |
| 2021 | 380 | 1 | 4 |
| 2022 | 546 | 4 | 8 |
| 2023 | 720 | 7 | 12 |
| 2024 | 701 | 13 | 18 |
| 2025* | 770 | 13 | 22 |
| 2026* | 415 | 4 | 7 |
*2025 and 2026 are provisional: CCS 2026 and IMC 2026 have not been held, and IEEE S&P 2026 and TheWebConf 2026 are incompletely selected because selection screens on abstracts that are not yet in OpenAlex. Do not read the 2026 row as a decline. See corpus.
The silence, which is the bigger finding
The field is crawling Chrome and not looking at what Chrome now does.
| Population | N | Name at least one API family |
|---|---|---|
| Web crawls published 2023–2026 | 332 | 25 (7.5%) |
| Web crawls published 2024–2026 | 235 | 19 (8.1%) |
| Web crawls published 2025–2026* | 153 | 12 (7.8%) |
| Of those, the ones that said they drove Chrome or Chromium, 2024–2026 | 86 | 8 (9.3%) |
“Web crawl” is crawlConfig != null or studyTypes containing automated-web-crawl, and platforms containing web. The last row's denominator is papers that stated a browser: crawlConfig.browsers is stated by only 47.2% of the 1,120 crawling papers in the corpus, so 86 is a lower bound on Chrome-driving crawls, and 9.3% is a share of the ones that told you.
If you are looking for a gap to fill, Attribution Reporting is measured by nobody. Four papers in 5,869 name it, all in passing; not one instruments it, crawls for it, or reports its prevalence. Given the M153 target, the window to measure a deployed Attribution Reporting API in Chrome is now measured in days.
What the corpus did measure
Each row names the paper's own population. Nothing here is a share of the corpus.
| Paper | Mechanism | Population and instrument | Headline measured result |
|---|---|---|---|
| [1Calderonio, Giuseppe; Ali, Mir Masood; Polakis, Jason (2024): "Fledging Will Continue Until Privacy Improves: Empirical Analysis of Google's Privacy-Preserving Targeted Advertising", in: Proceedings of the USENIX Security Symposium, pp. 4121-4138. (Link)] USENIX Sec 2024 | Protected Audience (as FLEDGE) | Tranco top 70,000, Puppeteer-driven Chrome with injected API wrappers; three snapshots, June, July and September 2023 | FLEDGE calls on 9.5% (n = 6,682) of the 70K sites over the whole period. 11,941 of 11,959 observed auctions (99.8%) were run by Google Ad Manager. 15,935 interest groups observed. Of 306,407 joinAdInterestGroup calls, 30.90% (n = 94,673) asked for an expiry beyond the browser's 30-day cap |
| [2Nisenoff, Alexandra; Stefan, Deian; Christin, Nicolas (2025): "Exploiting the Shared Storage API", in: Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. (DOI)] CCS 2025 | Shared Storage, selectURL | Tranco, Puppeteer + DevTools capture, February 2025; 12,955 sites reached | 1,311 (10.1%) invoked the Shared Storage API; 1,250 (9.6%) called selectURL. All of it traced to four domains: securepubads.g.doubleclick.net (1,222 sites), ep3.adtrafficquality.google (177), crcldu.com (46), ads.optable.co (17). Separately: of 289 candidate enrolled domains, 245 (85%) served a valid attestation file, 61% of which declared Shared Storage; 48.2% of the attested domains appear in the Disconnect Tracker Protection list |
| [4McQuistin, Stephen; Snyder, Peter; Haddadi, Hamed; Tyson, Gareth (2024): "A First Look at Related Website Sets", in: Proceedings of the ACM Internet Measurement Conference. (DOI)] IMC 2024 | Related Website Sets | The RWS list and its GitHub pull requests, to 30 March 2024; plus a 114-response user study | At the 26 March 2024 list, 41 sets, of which 92.7% had at least one associated site — the category where common ownership is not required. 58.8% of 114 pull requests were closed without being merged. Median Levenshtein distance between an associated site's SLD and its primary's was 7; median joint HTML similarity 0.04. 36.8% of same-set pairs shown to participants were judged unrelated |
| [3Beugin, Yohan; McDaniel, Patrick (2024): "Interest-disclosing Mechanisms for Advertising are Privacy-Exposing (not Preserving)", in: Proceedings on Privacy Enhancing Technologies. (DOI)] PoPETs 2024 | Topics | Simulation over 250k users from a real browsing-history distribution, plus the Tranco top 1M classified with Topics | 0.4% of simulated users re-identified across two advertisers in a one-shot scenario, rising to 57% after 15 epochs and 75% after 30. Noise removal recovers about 25% of injected noisy topics one-shot, 49% after 15 epochs, 94% after 30. Topics' own classifier matched at least one human-assigned category for 57% of categorised top-million domains |
| [5Jha, Nikhil; Trevisan, Martino; Leonardi, Emilio; Mellia, Marco (2023): "On the Robustness of Topics API to a Re-Identification Attack", Proceedings on Privacy Enhancing Technologies 2023(4):66-78. (DOI)] PoPETs 2023 | Topics | Simulated personas from real traces | Correct cross-site re-identification reaches 15–17% in a pool of 1,000 users, with false positives under 0.2%. With 100,000 personas, 35–42% are not even 2-anonymous |
| [6Alvim, Mário S.; Fernandes, Natasha; McIver, Annabelle; Nunes, Gabriel H. (2024): "The Privacy-Utility Trade-off in the Topics API", in: Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. (DOI)] CCS 2024 | Topics | Quantitative information-flow analysis over two AOL-derived datasets (211,313 and 198,023 user rows) | Third-party cookies leak the user completely; the full Topics pipeline leaks 0.0028% and 0.0162% of that, depending on the taxonomy. But an observer distinguishes a genuine topic from an injected random one with posterior expected gain 95.8–96.2% |
| [7Berke, Alex; Calacci, Dan (2022): "Privacy Limitations of Interest-based Advertising on The Web: A Post-mortem Empirical Analysis of Google's FLoC", in: Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. (DOI)] CCS 2022 | FLoC | comScore Web Behavior Database, 93,808 machines, 52 weeks of 2017 | More than 50% of cohort-ID sequences are unique after 3 weekly recomputations and 95% after 4. Cohort membership did not violate t-closeness for race or income more than chance |
| [8Turati, Florian; Kubicek, Karel; Cotrini, Carlos; Basin, David (2023): "Locality-Sensitive Hashing Does Not Guarantee Privacy! Attacks on Google's FLoC and the MinHash Hierarchy System", Proceedings on Privacy Enhancing Technologies 2023(4):117-131. (DOI)] PoPETs 2023 | FLoC | The SimHash construction itself, plus MovieLens histories | Reconstructed more than 10% of the browsing history for at least 30% of users from cohort hashes alone. SimHash pre-image generation succeeded 100% at 5-domain histories, falling to 11% at 25 |
| [9Rasaii, Ali; Dao, Ha; Feldmann, Anja; Javid, Mohammadmahdi; Gasser, Oliver; Gosain, Devashish (2025): "Intractable Cookie Crumbs: Unveiling the Nexus of Stateful Banner Interaction and Tracking Cookies", in: Proceedings on Privacy Enhancing Technologies, pp. 429-445. (DOI)] PoPETs 2025 | CHIPS | Stateful Chrome crawl, 6,518 domains with banners, January 2025 | Of 3,177 unique tracking cookies, only 40 (1.3%) carried Partitioned, and 26 of those 40 were accompanied by a non-partitioned cookie from the same tracker. Across all 79,898 unique stored cookies, 521 were partitioned |
| [10Ali, Mir Masood; Chitale, Binoy; Ghasemisharif, Mohammad; Kanich, Chris; Nikiforakis, Nick; Polakis, Jason (2023): "Navigating Murky Waters: Automated Browser Feature Testing for Uncovering Tracking Vectors", in: Proceedings of the Network and Distributed System Security Symposium. (Link)] NDSS 2023 | cross-browser storage and tracking vectors, including Private State Tokens | 126 versions of seven browsers | 21 mechanisms usable as tracking vectors, 13 of them for third-party tracking; every latest version tested was vulnerable to at least one |
| [11Lin, Maxwell; Lin, Shihan; Wu, Helen; Wang, Karen; Yang, Xiaowei (2024): "Browsing without Third-Party Cookies: What Do You See?", in: Proceedings of the ACM Internet Measurement Conference. (DOI)] IMC 2024 | what blocking third-party cookies actually changes | Tranco top 10,000; 7,490 domains crawled successfully | More than 90% of domains showed less than a 10% screenshot difference with third-party cookies disabled — the “cookieless web looks different” premise is largely not true at the page level |
Two adjacent papers give the CHIPS context without measuring the attribute: [12Nikkhah Bahrami, Pouneh; Fass, Aurore; Shafiq, Zubair (2025): "CookieGuard: Characterizing and Isolating the First-Party Cookie Jar", in: Proceedings of the ACM Internet Measurement Conference. (DOI)] (IMC 2025) and [13Kancherla, Gayatri Priyadarsini; Goel, Dishank; Bichhawat, Abhishek (2025): "Least Privilege Access for Persistent Storage Mechanisms in Web Browsers", in: Proceedings of the ACM Web Conference. (DOI)] (TheWebConf 2025) both note that Chrome's partitioning is opt-in per cookie while Firefox and Safari partition by default — which is why a CHIPS adoption figure is a measure of publisher and tracker uptake, not of browser policy. The only dedicated CHIPS adoption study we found is outside these seven venues: Zöllner, Feldmann and Dao, A First Look at Cookies Having Independent Partitioned State, PAM 2025.8) We have not read it and quote no figure from it.
Denominators and Pitfalls
- A site-level prevalence figure is a fact about a handful of scripts. [2Nisenoff, Alexandra; Stefan, Deian; Christin, Nicolas (2025): "Exploiting the Shared Storage API", in: Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. (DOI)] found Shared Storage on 10.1% of reachable sites and four distinct callers. [1Calderonio, Giuseppe; Ali, Mir Masood; Polakis, Jason (2024): "Fledging Will Continue Until Privacy Improves: Empirical Analysis of Google's Privacy-Preserving Targeted Advertising", in: Proceedings of the USENIX Security Symposium, pp. 4121-4138. (Link)] found FLEDGE on 9.5% of 70K sites and 99.8% of auctions run by one seller. Publish the distinct-caller count in the same table as the site share, or your reader will conclude that a tenth of the web adopted an API when a tenth of the web embeds one ad tag.
- A union over snapshots is not a prevalence. [1Calderonio, Giuseppe; Ali, Mir Masood; Polakis, Jason (2024): "Fledging Will Continue Until Privacy Improves: Empirical Analysis of Google's Privacy-Preserving Targeted Advertising", in: Proceedings of the USENIX Security Symposium, pp. 4121-4138. (Link)]'s 6,682 sites is the union over three crawls; the per-snapshot counts fell, 4,628 in June to 3,903 in July to 3,585 in September 2023. Say which one your number is.
- Presence, enablement and use are three different measurements, and only the third is a property of the site. See Presence is not availability, and neither is a return value.
- Enrollment is intent, not deployment. 326 enrolled companies; four observed callers.
- The browser version is the measurement. These APIs shipped at M114–M116 in mid-2023 and are targeted for removal at M152–M155 in 2026. A crawl that does not report its Chrome version has reported nothing checkable, and a longitudinal series that spans the removal is measuring the browser, not the web. This is the longitudinal problem in its sharpest form.
- Your automation library is not a stock browser. Playwright disables
ThirdPartyStoragePartitioningby default, which is exactly the axis CHIPS is about — see Partitioning: Your Crawler and a Real Browser Disagree and Since 2022 the engine decides, not you. Measured on this page: Playwright's default list does not disable any of the ads APIs. - Cross-browser comparison is not available. No non-Chromium engine implements the ads APIs, so “Chrome vs Firefox” on a Privacy Sandbox question compares an implementation with an absence.
- What we could not establish: whether Chrome's ads APIs are gated differently in the EEA or the UK than elsewhere. FLoC's 2021 origin trial explicitly excluded the EEA, and it would be reasonable to expect a DMA-driven consent gate on the successors, but we found no primary statement of the current regional behaviour on Google's own documentation, and could not test it from a single vantage point. If your crawl is comparative across regions (Crawling location), test this yourself and report what you found — do not assume either way.
What to Report
- The exact Chromium/Chrome version, not “Chrome”.
151.0.7922.34, not “the latest Chrome”. Everything on this page changes between milestones. - The automation library and version, and the full
--enable-features/--disable-featureslists you passed, because the library passes its own. - Which observation surface you used: CDP
Storageevents, injected JS wrappers, or the enrollment/attestation artefacts. They see different things and none of them sees all of it. - Whether you enrolled or overrode enrollment, and for which origins.
- The distinct-caller count alongside any site-level prevalence.
- Per-snapshot counts, not only the union, for any repeated crawl.
- The date the artefact list was taken, for the enrollment report, the attestation
.datand the RWS list — all three change under you, and two of the three are now frozen by archival. - That the API still existed in your build, stated as a fact you checked rather than assumed. After M153 this stops being pedantry.
Open Questions
- Nobody has measured a deployed Attribution Reporting API. Four passing mentions in 5,869 papers, no instrumentation, no prevalence. The removal target is M153.
- Nobody has re-measured Protected Audience or Topics adoption after 2025-04-22. [1Calderonio, Giuseppe; Ali, Mir Masood; Polakis, Jason (2024): "Fledging Will Continue Until Privacy Improves: Empirical Analysis of Google's Privacy-Preserving Targeted Advertising", in: Proceedings of the USENIX Security Symposium, pp. 4121-4138. (Link)]'s crawl is from 2023 and [2Nisenoff, Alexandra; Stefan, Deian; Christin, Nicolas (2025): "Exploiting the Shared Storage API", in: Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. (DOI)]'s from February 2025 — both before the retirement announcement. Chrome's own removal justification claims usage collapsed; no independent measurement of that collapse exists in this corpus.
- The RWS list has grown from 41 sets to 70 between [4McQuistin, Stephen; Snyder, Peter; Haddadi, Hamed; Tyson, Gareth (2024): "A First Look at Related Website Sets", in: Proceedings of the ACM Internet Measurement Conference. (DOI)]'s snapshot and today, and its repository is now archived. Nobody has published the end-state census or repeated the pull-request analysis on it.
- CHIPS adoption is measured once inside this corpus and once outside it, both at around 1% of tracking cookies. CHIPS is one of the three APIs that survives; a proper longitudinal series on it is missing and now has a stable target to measure.
- Whether the ads APIs are regionally gated — see the last bullet of Denominators and Pitfalls.
- What replaces the CDP instrumentation. Once
Storage.setInterestGroupTrackingand friends are gone, the archival question is whether anyone captured enough of the deployed ecosystem before it disappeared. If you have a crawl from 2023–2026 with these events in it, that dataset is about to become unrepeatable — see Artifacts.
Related Pages
- Classifying cookies — the mechanism that did not go away, and the 2025 reversal in its own context.
- Storage beyond cookies — partitioning of
localStorage, IndexedDB and the caches, and the Playwright-versus-Puppeteer disagreement about whether it is on. - Stateful vs stateless crawling — why your crawler's third-party state does not resemble a real user's.
- Cookie and ID syncing — where identifiers went instead, and the same correction to the “third-party cookies are disappearing” framing.
- Classifying web requests and Filter lists — the classifiers that a Privacy Sandbox call is invisible to.
- When the website notices your crawler — injected API wrappers are detectable.
- Repeating a measurement over time — pinning the browser, which here is the whole problem.
- Crawling location — if regional gating exists, this is where it bites.
Methodology and limitations of these figures
Corpus figures come from the 5,859-paper extraction over seven venues (CCS, IMC, NDSS, PETS, USENIX Security, TheWebConf, IEEE S&P), 2010–2026; the full-text sweep covers the 5,869 papers with a rendered paper.cols.txt. Any claim here is a claim about those seven venues. EuroS&P, ACSAC, RAID, AsiaCCS, CHI, SOUPS, PAM and WPES are not in it, and the CHIPS study named above is an example of relevant work that therefore does not appear in any count. 2025 and 2026 venue-years are provisional.
Every browser measurement on this page was taken on 2026-09-01 against Chromium 151.0.7922.34 as shipped with Playwright 1.62.1, in a Linux container, headless. Non-Chromium engines were not probed first-hand: the Firefox build available here fails to launch in this environment, so the Firefox and Safari statements rest on Bugzilla and vendor documentation, not on measurement.
The full query log — every population and denominator, the report script and its unedited output, the folding rules with the regexes that were measured and rejected, the quote spot-checks, the external sources verified and the ones discarded — is at privacy_sandbox. Corpus-level caveats are on corpus.
References
- [1]
- Calderonio, Giuseppe; Ali, Mir Masood; Polakis, Jason (2024): "Fledging Will Continue Until Privacy Improves: Empirical Analysis of Google's Privacy-Preserving Targeted Advertising", in: Proceedings of the USENIX Security Symposium, pp. 4121-4138. (Link)
- [2]
- Nisenoff, Alexandra; Stefan, Deian; Christin, Nicolas (2025): "Exploiting the Shared Storage API", in: Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. (DOI)
- [3]
- Beugin, Yohan; McDaniel, Patrick (2024): "Interest-disclosing Mechanisms for Advertising are Privacy-Exposing (not Preserving)", in: Proceedings on Privacy Enhancing Technologies. (DOI)
- [4]
- McQuistin, Stephen; Snyder, Peter; Haddadi, Hamed; Tyson, Gareth (2024): "A First Look at Related Website Sets", in: Proceedings of the ACM Internet Measurement Conference. (DOI)
- [5]
- Jha, Nikhil; Trevisan, Martino; Leonardi, Emilio; Mellia, Marco (2023): "On the Robustness of Topics API to a Re-Identification Attack", Proceedings on Privacy Enhancing Technologies 2023(4):66-78. (DOI)
- [6]
- Alvim, Mário S.; Fernandes, Natasha; McIver, Annabelle; Nunes, Gabriel H. (2024): "The Privacy-Utility Trade-off in the Topics API", in: Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. (DOI)
- [7]
- Berke, Alex; Calacci, Dan (2022): "Privacy Limitations of Interest-based Advertising on The Web: A Post-mortem Empirical Analysis of Google's FLoC", in: Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. (DOI)
- [8]
- Turati, Florian; Kubicek, Karel; Cotrini, Carlos; Basin, David (2023): "Locality-Sensitive Hashing Does Not Guarantee Privacy! Attacks on Google's FLoC and the MinHash Hierarchy System", Proceedings on Privacy Enhancing Technologies 2023(4):117-131. (DOI)
- [9]
- Rasaii, Ali; Dao, Ha; Feldmann, Anja; Javid, Mohammadmahdi; Gasser, Oliver; Gosain, Devashish (2025): "Intractable Cookie Crumbs: Unveiling the Nexus of Stateful Banner Interaction and Tracking Cookies", in: Proceedings on Privacy Enhancing Technologies, pp. 429-445. (DOI)
- [10]
- Ali, Mir Masood; Chitale, Binoy; Ghasemisharif, Mohammad; Kanich, Chris; Nikiforakis, Nick; Polakis, Jason (2023): "Navigating Murky Waters: Automated Browser Feature Testing for Uncovering Tracking Vectors", in: Proceedings of the Network and Distributed System Security Symposium. (Link)
- [11]
- Lin, Maxwell; Lin, Shihan; Wu, Helen; Wang, Karen; Yang, Xiaowei (2024): "Browsing without Third-Party Cookies: What Do You See?", in: Proceedings of the ACM Internet Measurement Conference. (DOI)
- [12]
- Nikkhah Bahrami, Pouneh; Fass, Aurore; Shafiq, Zubair (2025): "CookieGuard: Characterizing and Isolating the First-Party Cookie Jar", in: Proceedings of the ACM Internet Measurement Conference. (DOI)
- [13]
- Kancherla, Gayatri Priyadarsini; Goel, Dishank; Bichhawat, Abhishek (2025): "Least Privilege Access for Persistent Storage Mechanisms in Web Browsers", in: Proceedings of the ACM Web Conference. (DOI)
privacysandbox.google.com/overview/status says “Storage Access API supported by default from Chrome 119 an higher” (sic). Both fetched 2026-09-01. If the exact milestone matters to your claim, test it against the binaries rather than trusting either.privacysandbox.google.com/overview/status, “Last updated: August 14, 2026”. Fetched 2026-09-01.doi.org/10.1007/978-3-031-85960-1_8, pages 182–196. Verified against Crossref 2026-09-01. Note that [9Rasaii, Ali; Dao, Ha; Feldmann, Anja; Javid, Mohammadmahdi; Gasser, Oliver; Gosain, Devashish (2025): "Intractable Cookie Crumbs: Unveiling the Nexus of Stateful Banner Interaction and Tracking Cookies", in: Proceedings on Privacy Enhancing Technologies, pp. 429-445. (DOI)] cites this paper with a different and incorrect DOI; use the one here.