Method and limits
What we measure, how, and what the numbers do not say.
Measure
A real Chromium browser loads each page, makes no clicks and gives no consent, and records every request for 12 seconds. This is repeated 3 times in fresh browser sessions, and we report the median.
Classify
A request is third party when its registered domain differs from the site's own (plus the outlet's declared own domains). Hosts are then matched against the list below.
Compare
Each week is compared with the previous one, only if both were measured under the same conditions, and only changes seen in most passes count.
What the numbers mean
- Tracking services are the distinct third-party services in our list classified as advertising, analytics, social or audience measurement that were contacted during the observation window. Tag managers, consent tools and paywalls are listed but not counted. What each category means.
- The count is before any interaction. A site that blocks everything until you accept shows a low number here; what happens after a choice is measured separately on After the banner.
- Counts describe what was contacted. They do not say what data was sent, why, or whether it was lawful.
Bands
For quick reading, the count of tracking services is also shown as a band. The ranges are fixed and public:
| Band | Tracking services contacted |
|---|---|
| A | 0–2 |
| B | 3–9 |
| C | 10–24 |
| D | 25–49 |
| E | 50+ |
- A band is a label for a range of a count. It is not a grade of a site's privacy, ethics or legality, and a higher letter does not mean worse behaviour once a visitor has made choices.
- Only the count measured before any interaction is banded, and only when the confidence is high or medium. Results with low confidence get no band.
- The classification list is limited, so a count is a minimum: a site may contact more services than we recognise. The ranges may change as the list grows; any change will be announced here and in the feed.
Limits
- The measurement runs from GitHub servers in the US. Banners, consent walls and redirects differ by country, so results can differ for a reader elsewhere.
- The classification list is limited and hand-built. Domains missing from it appear as “Unclassified” and are not counted. Entries marked inferred rest on request paths or host names, not on a statement by the operator.
- Ownership of a site's own domains is declared by us and can be wrong. We take the outlet's side when unsure.
- Some sites refuse automated browsers. We report that instead of bypassing it. A failed pass lowers the confidence of a result: high means every pass worked, medium a majority, low a minority (indicative only, never compared).
- Script behaviour (canvas reads, geolocation, WebRTC) is recorded with the calling script's domain. These APIs have many legitimate uses.
Weight of third-party content
For each request we also record the transfer size of its response (headers plus compressed body) when it finished loading inside the observation window. “Third-party data” is the sum for third-party domains, and the share is measured against everything transferred in the same window. Sizes of responses that were still loading when the window closed are not counted, cached responses are not a factor (every pass uses a fresh browser), and pages that stream or load more later (video, infinite scroll) are cut at the window. Reports measured before sizes were collected show a dash.
What each service did in the browser
Each site page lists, for every tracking service seen in most passes, how many scripts, image requests, background requests and frames it made and which cookies it set (name and lifetime, never the value). The numbers are medians of the passes that worked, taken from the raw request log, so they can be checked in the published reports. They describe what happened in the browser, not what the service does with the data. Cookie lifetimes are recorded from schema 0.2 on; earlier reports only tell whether a cookie persists.
Reach by company
The Companies page counts, for each operator named in our list, the sites where one of its services in a tracking category was contacted in most passes. Subsidiaries are not merged into parents.
Two separate tests
Besides the weekly ranking, which never interacts with the page, two optional tests are published on their own pages. They use the same browser and classification list, are stored in their own folders and never change the weekly figures.
- After the banner: after the passive window, the consent banner's reject (or accept) button is pressed once and the next window is recorded. Only that one button is pressed, and only when our detector is confident it is that button.
- With a blocking list: the page is loaded while blocking the requests a public privacy filter list targets (domain rules only), and compared with the passive measurement from the same place.
Data and downloads
Everything is published under CC BY 4.0 (credit “Tracker Watch”). Fields and files are versioned (schema 0.2).
| File | Contents |
|---|---|
| latest.csv | One row per site for the newest measurement of the main series. |
| history.csv | Every measurement of every origin since the start, one row per site, date and origin (origin_kind: main, extra or community-unverified). |
| entities.csv | Sites reached by each operator in the newest measurement. |
| consent.csv | The consent test: per site, origin and button, what the detector found and the counts before and after the click. |
| protection.csv | The blocking-list test: per site and origin, the figures without and with the list. |
| trackerwatch-verified.txt, trackerwatch-full.txt | Our tracking domains as filter lists for ad and tracker blockers (how to use them). |
| index.json | Machine-readable index: origins, dates, every site with its latest figures and the path of each raw report. |
data/<date>/<site>.json | The raw report of the main series: measurement conditions (tool version, browser, locale, time zone, origin, user agent) and the request log of every pass, without query strings or cookie values. |
data/origins/<origin>/<date>/<site>.json | Raw reports of the other origins (for community ones, recomputed with our list). |
Blank cells mean not measured (or, for byte figures, not recorded by older reports). Counts are minimums because the classification list is limited.
Classification list
152 entries. Source: Small hand-written starter list, not audited. To be replaced or extended by a public tracker list once its licence has been reviewed (Disconnect, EasyPrivacy, DuckDuckGo Tracker Radar). Keys are domain suffixes; the longest matching suffix wins.
| Domain | Operator | Category | Basis |
|---|---|---|---|
| 1rx.io | RhythmOne (Magnite) | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| 2mdn.net | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified | |
| 33across.com | 33Across | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| 360yield.com | Improve Digital | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| 3lift.com | TripleLift | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| a-mo.net | AdaptMX | advertising | inferred: seen on 20minutos.es (2026-10-07) as an ad frame contacting other ad services; attributed to AdaptMX by third-party domain directories (netify.ai, cside.com), not by the company itself; not verified one by one |
| acuityplatform.com | Acuity Ads | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| adform.net | Adform | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| adnxs.com | Microsoft (Xandr) | advertising | public information |
| adobedtm.com | Adobe | tag manager | public information |
| ads-twitter.com | X | advertising | public information |
| ads.linkedin.com | advertising | public information | |
| adsafeprotected.com | Integral Ad Science | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| adsrvr.org | The Trade Desk | advertising | public information |
| adtrafficquality.google | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified | |
| agkn.com | Neustar (TransUnion) | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| amazon-adsystem.com | Amazon | advertising | public information |
| amplitude.com | Amplitude | analytics | public information |
| analytics.google.com | analytics | public information | |
| analytics.tiktok.com | TikTok | advertising | public information |
| aniview.com | Aniview | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| appier.net | Appier | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| bat.bing.com | Microsoft | advertising | public information |
| bfmio.com | Beachfront | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| bidr.io | Beeswax | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| bidswitch.net | Iponweb (BidSwitch) | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| blismedia.com | Blis | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| brandmetrics.com | Brandmetrics | audience measurement | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| bttrack.com | Bidtellect | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| cadent.com | Cadent | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| casalemedia.com | Index Exchange | advertising | public information |
| chartbeat.com | Chartbeat | analytics | public information |
| chartbeat.net | Chartbeat | analytics | public information |
| clarity.ms | Microsoft | session replay | public information |
| clickagy.com | Clickagy | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| cloudflareinsights.com | Cloudflare | analytics | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| cognitivlabs.com | Cognitiv | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| confiant-integrations.net | Confiant | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| contextweb.com | PulsePoint | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| cookiebot.com | Usercentrics | consent management | public information |
| cookielaw.org | OneTrust | consent management | public information |
| creativecdn.com | RTB House | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| criteo.com | Criteo | advertising | public information |
| criteo.net | Criteo | advertising | public information |
| crwdcntrl.net | Lotame | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| cxense.com | Piano (Cxense) | advertising | public information |
| deepintent.com | DeepIntent | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| demdex.net | Adobe | advertising | public information |
| didomi.io | Didomi | consent management | public information |
| dotmetrics.net | Ipsos (Dotmetrics) | audience measurement | public information |
| dotomi.com | Conversant | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| doubleclick.net | advertising | public information | |
| doubleverify.com | DoubleVerify | advertising | public information |
| dv.tech | DoubleVerify | advertising | public information |
| dvtps.com | DoubleVerify | advertising | public information |
| ebxcdn.com | Unidentified operator | analytics | inferred: inferred from requests to trackerapi.ebxcdn.com/v1/track; operator not identified |
| eskimi.com | Eskimi | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| eu-1-id5-sync.com | ID5 | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| everesttech.net | Adobe Advertising | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| eyeota.net | Eyeota | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| facebook.com | Meta | social | public information |
| facebook.net | Meta | social | public information |
| fastclick.net | Conversant | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| fullstory.com | FullStory | session replay | public information |
| fwmrm.net | FreeWheel | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| google-analytics.com | analytics | public information | |
| googleadservices.com | advertising | public information | |
| googlesyndication.com | advertising | public information | |
| googletagmanager.com | tag manager | public information | |
| googletagservices.com | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified | |
| gumgum.com | GumGum | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| hotjar.com | Hotjar | session replay | public information |
| hotjar.io | Hotjar | session replay | public information |
| id5-sync.com | ID5 | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| imasdk.googleapis.com | advertising | public information | |
| imrworldwide.com | Nielsen | audience measurement | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| indexww.com | Index Exchange | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| intentiq.com | Intent IQ | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| iqm.com | IQM | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| kargo.com | Kargo | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| ketchcdn.com | Ketch | consent management | public information |
| liadm.com | LiveIntent | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| lijit.com | Sovrn | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| loopme.me | LoopMe | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| mathtag.com | MediaMath | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| media.net | Media.net | advertising | public information |
| media6degrees.com | Dstillery | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| mediago.io | MediaGo (Baidu) | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| minutemedia-prebid.com | Minute Media | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| mixpanel.com | Mixpanel | analytics | public information |
| ml314.com | Bombora | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| mrf.io | Marfeel | analytics | inferred: seen on elmundo.es (2026-10-07) with Lens in site only mode; the company's documentation describes sdk.mrf.io as its analytics SDK, which sets a persistent first-party user identifier (_nrbi, compass_uid); domain registered to Marfeel Solutions, S.L.; not verified one by one |
| newsroom.bi | Marfeel | analytics | inferred: named in Marfeel's own documentation as the domain (events.newsroom.bi) of its third-party cookies that reconcile one user across a publisher's sites; contacted together with mrf.io on New York Post and The Sun in the 2026-10-04 measurements; not verified one by one |
| nextmillmedia.com | Next Millennium | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| omtrdc.net | Adobe | analytics | public information |
| onaudience.com | Onaudience | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| onetag-sys.com | Onetag | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| onetrust.com | OneTrust | consent management | public information |
| openx.net | OpenX | advertising | public information |
| openxcdn.net | OpenX | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| opti-digital.com | Opti Digital | advertising | inferred: seen on 20minutos.es (2026-10-07) as the ad-slot frame through which 50 tracking services were contacted; www.opti-digital.com redirects to the company's site optidigital.com (programmatic ad platform for publishers); not verified one by one |
| outbrain.com | Outbrain | advertising | public information |
| pacvue.com | Pacvue | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| parsely.com | Parse.ly | analytics | public information |
| pbstck.com | Pubstack | advertising | inferred: seen on elmundo.es (2026-10-07) with Lens in site only mode; the company's documentation serves its ad monetisation analytics and ad management scripts from boot.pbstck.com (bid, fill and revenue data per ad slot); IAB TCF vendor 1408; not verified one by one |
| permutive.app | Permutive | advertising | public information |
| permutive.com | Permutive | advertising | public information |
| piano.io | Piano | paywall | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| postrelease.com | PostRelease | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| presage.io | Ogury | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| privacy-mgmt.com | Sourcepoint | consent management | public information |
| privacymanager.io | LiveRamp | advertising | inferred: inferred: paths /ats-modules/.../ats.js match LiveRamp ATS (identity resolution); LiveRamp documents its Privacy Manager product |
| prmutv.co | Permutive | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| pubmatic.com | PubMatic | advertising | public information |
| quantserve.com | Quantcast | audience measurement | public information |
| rfihub.com | Rocket Fuel | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| richaudience.com | Rich Audience | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| rlcdn.com | LiveRamp | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| rubiconproject.com | Magnite | advertising | public information |
| rudderlabs.com | RudderStack | analytics | public information |
| sascdn.com | Equativ (Smart) | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| scorecardresearch.com | Comscore | audience measurement | public information |
| seedtag.com | Seedtag | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| segment.com | Twilio Segment | analytics | public information |
| segment.io | Twilio Segment | analytics | public information |
| semasio.net | Semasio | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| sharethrough.com | Sharethrough | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| simpli.fi | Simpli.fi | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| sitescout.com | Basis (SiteScout) | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| smaato.net | Smaato | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| smartadserver.com | Equativ (Smart) | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| smilewanted.com | Smilewanted | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| sonobi.com | Sonobi | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| stackadapt.com | StackAdapt | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| t.co | X | social | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| taboola.com | Taboola | advertising | public information |
| tapad.com | Tapad (Experian) | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| teads.tv | Teads | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| the-ozone-project.com | Ozone Project | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| tinypass.com | Piano | paywall | public information |
| tiqcdn.com | Tealium | tag manager | public information |
| tracking.ringieraxelspringer.tech | Ringier Axel Springer Tech | analytics | inferred: inferred from the host name 'simetra.tracking'; operator is the Ringier / Axel Springer joint venture |
| tremorhub.com | Tremor (Nexxen) | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| tribalfusion.com | Exponential | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| trustx.org | TrustX | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| turn.com | Amobee | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| twitter.com | X | social | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| undertone.com | Undertone | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| unrulymedia.com | Unruly | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| yieldmo.com | Yieldmo | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| ymmobi.com | Yeahmobi | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |
| zemanta.com | Zemanta (Outbrain) | advertising | inferred: vendor identified from general knowledge of its public ad-tech role, not independently verified |