Baseline visit v1 schema · facts legacy-derived · descriptive report

www.bbc.com

https://www.bbc.com/

Sep 7, 2026, 4:49 AM UTC

cut short: the in-page fingerprint observer could not read every frame, so the fingerprinting evidence is incomplete; derived from status and warnings

Evidence quality

This report is built on an incomplete visit

Incomplete evidence: evidence was cut short before completion (the in-page fingerprint observer could not read every frame, so the fingerprinting evidence is incomplete). Counts for the affected evidence are lower bounds; families that completed carry only their ordinary limits. The evidence receipt states the exact per-visit quality.

Scan report ready for www.bbc.com: 142 recorded request rows.

Comparison Reportv1 schema · facts legacy-derived · descriptive report

Brave-list blocking off/on comparison

https://www.bbc.com/ (opens in a new tab)
ShareDownloads the No blocking visit's request CSV, source report and correction context in a ZIP. Follows the evidence switcher below.PDF + evidence (opens in a new tab)Downloads a ZIP containing the PDF for every recorded visit, exact source JSON, correction context and file hashes. The scanner renders it on request.

What this actually means

bbc.com recorded 22 fewer third-party requests in the visit configured for Brave-list blocking.

The visit with no blocking made 142 requests; the visit configured to apply Brave's ad-block engine and default Shields filter lists (a simulation in this scanner's browser, not a live Brave-browser visit) recorded 22 fewer third-party requests. The blocker directly stopped 21 requests; the remaining difference may include follow-on requests that never started once their sources were blocked, plus run-to-run variance.

1tracking-service entity
133cross-site requests
4third-party cookie records

Plain-Language Findings

What this visit means

Unfamiliar terms are defined in the glossary
playwright-chromium

Worth checking

Bottom line: this visit has review-worthy signals

The scan observed signals a non-expert should not have to decode from raw request tables. Some detector evidence was incomplete; each affected detector card states its own retained or unavailable scope, while completed request, cookie, and storage measurements keep their recorded exactness.

The cards below translate the evidence into plain language; severity reflects fixed reference thresholds, not measured population percentiles. The request log, domain table, and methodology remain below for verification.

142 requests observed in one controlled visit.

Worth checking

17 requests matched Brave Shields filter lists

17 requests matched the default filter lists of Brave Shields, the ad and tracker blocker built into the Brave browser, while loading normally.

Computed with Brave's own ad-block engine and default filter lists in classification mode: matched requests were not blocked by the scanner and remain in this report's observed request counts. Matching shows what Shields would target on this visit's traffic; an actual Shields visit blocks these and also prevents their follow-on requests, so this number is neither a measured block count nor the total effect.

The hand-curated service catalog separately matched 5 request rows in this visit.Show matched requests

Nothing observed

Lower values observed across comparable metrics in the Brave-list blocking attempt

With the scanner configured to apply Brave's ad-block engine and default Shields filter lists (a simulation in this scanner's browser, not a live Brave-browser visit; application was not verified), this paired visit showed 22 fewer third-party requests and 3 fewer third-party cookies.

Services only seen in the unblocked visit: Google. The blocking visit's engine directly blocked 21 requests; the remaining difference may include follow-on requests that never started once their sources were blocked. A single paired comparison can also reflect run-to-run variance (ad rotation, caching, experiments), so treat this as an observed difference, not a measured blocking rate.

Signed per-metric differences between the two visits; nothing is summed across metrics.Show matched requests

Worth checking

1 first-party DNS alias matched tracking checks

1 resolved target matched Brave filter lists; those matches do not identify the operators.

The scanner followed DNS CNAME chains from first-party subdomains and checked resolved targets against the service catalog and Brave filter lists. These matches do not establish a request's purpose, profiling, or an intent to conceal tracking. A filter-list match alone is not a verified service identity or proof of tracking.

{label}.api.bbc.com → {label}.at-o.net (Brave filter-list match; operator unverified)Open domain evidence

Context

Privacy policy read; it made no statement this scan can check

None of the statements this scan knows how to check appear in the policy text, so nothing was compared against this visit's evidence (1 of 1 observed tracking company named in the policy). That is a limit of the automated check, not a finding about the site either way.

Statements checked automatically: blanket no-cookie claims, third-party-cookie claims, and combined do-not-sell-or-share claims against advertising-pixel identifier fields. Global Privacy Control claims are never checked against request counts, which cannot show whether selling or sharing stopped. Evidence collection was cut short, so this covers only what was recorded before the cutoff.

Policy at https://www.bbc.com/{seg}/privacy-policy; 0 checkable statements matched; 1 of 1 observed tracking company named in the policy.

Context

Catalogued service domains recorded responses during this visit

Google appeared in the request log.

A catalog match identifies a maintainer-reviewed service/domain mapping; it does not establish why an individual request occurred, what it carried, or whether profiling happened. Functional catalog labels include advertising. This scan could not identify 9 of the 13 third-party hosts recorded here, so it cannot say who operates them. That is a limit of identity coverage, not evidence about the site. The role taxonomy leaves at least one catalog category unclassified for these identified services and assigns none a tracking-related role, so they are not counted as tracking-related: Optimizely.

133 cross-site requests across 13 third-party hosts.Modest distinct tracking-service entities count.Show third-party requests

Context

Requests were dispatched to catalogued major-platform domains

This visit dispatched requests to catalogued domains for Google.

The domain matches identify services, not the requests' purpose, payload, or whether any profile linking occurred.

1 request to these platforms.Show catalog-matched requests

Nothing observed

No Google Analytics observed

This visit did not contact Google Analytics.

Neither Google Analytics nor its remarketing sync was observed in this visit.

No google-analytics.com or googletagmanager.com requests.Show catalog-matched requests

Context

Third-party cookies were present

4 third-party cookies showed up during the visit.

The scanner observed cookie metadata whose domain crossed the scanned site's registrable-domain boundary. This report does not retain cookie values or partition keys, so it does not establish whether a cookie was a persistent identifier or could recognize a visitor across sites.

18 cookies total in this report.Modest third-party cookies count.

Context

Input-monitoring signal involving a third-party script

Listener coverage that could observe typing-related input events was registered through call chains that included a third-party script.

This is a behavioral instrumentation signal from listener registration, stack-attributed script origins, and known-vendor requests: it shows the page was instrumented to observe interaction, not that anything was transmitted. Stack attribution records the script origins present in the bounded registration call chain; a cross-site origin in that chain does not by itself establish that the cross-site script registered the listener, because first-party code can register its own listeners through a helper served from elsewhere. A different registrable domain is also not by itself a different operator: sites commonly serve their own scripts from a separate asset domain, so the card says third party only when the catalog or reviewed ownership attributes an origin to another organization. On scanners that run the active keystroke-capture probe, actual transmission is tested separately (a synthetic value is typed, never real input, and no typed values are collected); treat this card as a review prompt rather than proof.

244 interaction-listener registrations with https://cdn.optimizely.com/, https://cdn.tinypass.com/ and https://static.files.bbci.co.uk/, plus 1 other in the registration call chain and 94 input-listener registrations with https://static.files.bbci.co.uk/ in the registration call chain

Context

Incomplete evidence: No fingerprint-like API calls observed in retained evidence before collection stopped

The scan did not observe the instrumented high-entropy browser APIs.

This is an observation layer, not proof that fingerprinting is impossible. Evidence collection was cut short, so this covers only what was recorded before the cutoff.

Retained incomplete evidence includes 0 API event records; no exact API-family total is available.

Brave Shields Comparison

No blocking → Brave-list blocking delta

No blocking: 4,297msBrave-list blocking: 3,692ms
Some deltas are not comparable across these two visits and are not shown.
  • Other detector and causal-path deltas (each visit's own evidence still renders below): v1 never recorded detector versions, so fingerprinting and pixel deltas cannot be proven to come from matching instrumentation.
  • The Shields-number delta (each visit's own evidence still renders below): The two visits measured different Shields quantities (filter-list matches vs engine-blocked requests), which must never share a delta.
  • Fingerprinting deltas (each visit's own evidence still renders below): At least one visit did not complete the fingerprint measurement, so no exact cross-visit delta is shown.
  • Ad-pixel deltas (each visit's own evidence still renders below): At least one visit did not complete the pixel measurement, so no exact cross-visit delta is shown.
Requests-25No blocking: 142 · Brave-list blocking: 117
Third-party requests-22No blocking: 133 · Brave-list blocking: 111
Third-party domains-4No blocking: 13 · Brave-list blocking: 9
Cookies-8No blocking: 18 · Brave-list blocking: 10
Third-party cookies-3No blocking: 4 · Brave-list blocking: 1
Storage keys-12No blocking: 13 · Brave-list blocking: 1
Catalog-matched requests-3No blocking: 5 · Brave-list blocking: 2

Every signed change is Brave-list blocking minus No blocking. A positive or negative direction is descriptive, not a judgment that the result is better or worse.

Cookie and storage count deltas include every observation. Name-level lists show only reviewed names; unreviewed names are not itemized because they can contain identifiers.

Largest per-domain request-count changes

cdn.privacy-mgmt.comunlabeled third partyNo blocking: 14 · Brave-list blocking: 0Show No blocking requests · Show Brave-list blocking requests-14
*.dotmetrics.netunlabeled third partyNo blocking: 5 · Brave-list blocking: 0Show No blocking requests · Show Brave-list blocking requests-5
*.api.bbc.comfirst partyNo blocking: 8 · Brave-list blocking: 5Show No blocking requests · Show Brave-list blocking requests-3
cdn.optimizely.comOptimizely · experimentationNo blocking: 2 · Brave-list blocking: 1Show No blocking requests · Show Brave-list blocking requests-1
*.cdn.optimizely.comOptimizely · experimentationNo blocking: 1 · Brave-list blocking: 0Show No blocking requests · Show Brave-list blocking requests-1
*.doubleverify.comDoubleVerify · advertising measurement / verificationNo blocking: 0 · Brave-list blocking: 1Show No blocking requests · Show Brave-list blocking requests+1
*.googlesyndication.comGoogle · advertisingNo blocking: 1 · Brave-list blocking: 0Show No blocking requests · Show Brave-list blocking requests-1
*.optimizely.comOptimizely · experimentationNo blocking: 1 · Brave-list blocking: 0Show No blocking requests · Show Brave-list blocking requests-1

Domains only with Brave-list blocking

*.doubleverify.comDoubleVerify · advertising measurement / verification · Show Brave-list blocking requests1

Domains only with No blocking

cdn.privacy-mgmt.comunlabeled · Show No blocking requests14
*.dotmetrics.netunlabeled · Show No blocking requests5
*.cdn.optimizely.comOptimizely · experimentation · Show No blocking requests1
*.googlesyndication.comGoogle · advertising · Show No blocking requests1
*.optimizely.comOptimizely · experimentation · Show No blocking requests1

Visible cookie names only with Brave-list blocking

No visible cookie-name changes to show; privacy-filtered names are not itemized.

Visible cookie names only with No blocking

No visible cookie-name changes to show; privacy-filtered names are not itemized.

Visible storage keys only with Brave-list blocking

No visible storage-key changes to show; privacy-filtered keys are not itemized.

Visible storage keys only with No blocking

No visible storage-key changes to show; privacy-filtered keys are not itemized.

Entities only with Brave-list blocking

DoubleVerify1 domain1

Entities only with No blocking

Google1 domain1

Measurement limits

8 conditions affect how this evidence reads

This report

  • Brave-list blocking comparison runs should be collected under matched crawl conditions, and the blocking run is a simulation with Brave's engine and default lists in this scanner's browser, not a live Brave visit. Differences can still reflect timing, experiments, cache state, consent state, or bot detection.
  • The two visits ran in randomized order; the "No blocking" visit ran first.

Both visits

  • Each visit in this report is one automated, headless Chromium visit from a fixed en-US / UTC profile, with no scrolling, clicking, or consent interaction. Sites can behave differently for real users, browsers, regions, accounts, or network locations.
  • Counts are a lower bound: trackers that load only after interaction or consent are not observed; Service Workers are blocked, and Web Worker or WebSocket traffic may be incomplete. Service labels use a US-biased hand-curated catalog, so regional services may be under-labeled. Cookie and storage figures are an end-of-visit snapshot, with storage keys read from the top frame only.
  • Read the site's privacy policy (https://www.bbc.com/{seg}/privacy-policy) and compared its text against this visit's observed behavior. Policy checks are an automated text match with the matched sentences quoted, not a legal reading.

No blocking visit only

  • The in-page fingerprint observer could not read one or more frames, so fingerprint-like API calls and heuristics for this visit are incomplete.
  • Resolved 1 first-party subdomain that is a CNAME alias for a third-party tracker (CNAME cloaking), which request-URL matching alone would miss.

Brave-list blocking visit only

  • Brave Shields block simulation was enabled; matching requests were aborted before loading and are not included in request totals.

This versioned report is currently retained in the public corpus. Follow the currently retained site history, repeat the same public route when it is available, or request a transparent evidence correction.

Report ID
20260907-512b87bc4f8d920b09ddcee7e19faf29
Site
www.bbc.com
Latest visit
Schema
v1 schema · facts legacy-derived · descriptive report
Verify recorded provenance

Baseline visit

Started
Run quality
cut short: the in-page fingerprint observer could not read every frame, so the fingerprinting evidence is incomplete; derived from status and warnings
Scanner
playwright-chromium
Browser
151.0.7922.34
Redaction
not recorded by this schema
Provenance
Exact build and instrument digests were not recorded by this legacy schema.

Variant visit

Started
Run quality
complete; derived from status and warnings
Scanner
playwright-chromium
Browser
151.0.7922.34
Redaction
not recorded by this schema
Provenance
Exact build and instrument digests were not recorded by this legacy schema.

Recorded provenance is self-reported measurement metadata, not a cryptographic attestation. The public versioned report JSON contains the retained public evidence; see the methodology for interpretation and retention limits.

This report covers what the scanner measures, not everything a site can do. 16 browser surfaces are not instrumented at all (Every page except the one that was scanned; Anything that only loads after scrolling or interaction; Why a request happened, as a causal chain; and 13 others), 3 capabilities are declined by policy, and 3 are outside what any single visit can see. Their absence from this report is not evidence that they did not occur. Read the published coverage boundary.

Detector accuracy is unmeasured. No calibration study currently publishes a precision or recall for the detectors on this page, so a detector match here is a recorded observation, not a calibrated classification. How detector accuracy is measured.

Approved use boundary: This report is investigative evidence that requires independent corroboration. It is not a standalone legal determination and not the sole exhibit in a legal proceeding. Recorded in this project's release manifest on .