This is an old revision of the document!
Table of Contents
Provenance: privacy:ads_txt
Working log behind Measuring the Ad Supply Chain: ads.txt, sellers.json and Header Bidding. Corpus-wide caveats (venue coverage, the selection funnel, provisional venue-years) are on corpus and are not restated here. Citations use the shared bibliography; this page adds no entries of its own. No ~~DISCUSSION~~ block: comments belong on the content page.
Voice here is a working log, not prose. It is read by somebody checking a number.
The run
| Item | Value |
|---|---|
| Date | 2026-09-02 (single sitting, unsupervised drain run) |
| Corpus | data/extract/run1/extractions.jsonl, 5,859 papers; 5,869 directories with a readable paper.cols.txt (the full-text denominator used throughout); 7 venues, 2010–2026 |
| Page status | New page. Wiki search before writing: “ads.txt” occurred only on provenance pages (as the robots.txt-like precedent) and on filter_lists; “header bidding” on cookie_syncing (Prebid user-sync defaults; the ad-semantics family) and privacy_sandbox; “sellers.json” only on provenance:privacy:privacy_sandbox. No content page covered the supply-chain observables, so this is a creation, not an extension |
| Models | Page, scripts and this log: Claude (Fable 5.1). Paper reading: two sonnet sub-agents, which fanned out one child per paper (13 child reports came back); every figure and quote they supplied was re-checked mechanically against paper.cols.txt (see Quotes). Review layer: three sonnet focused passes on the first revision, then one fable generic pass on the second; all four reported and were acted on (see Review) |
| Scripts added | scripts/report_ads_txt.mjs (+ -output.txt), scripts/adstxt_fulltext_probe.mjs (the first, wider probe; superseded by the report), scripts/adstxt_quotecheck.mjs (+ -output.txt), scripts/adstxt_external_checks.sh (+ -output.txt), scripts/bib_additions_ads_txt.bib, scripts/build_provenance_ads_txt.py, scripts/provenance_ads_txt_prose.txt |
| Guards run before publication | check_wrap.mjs (OK), check_tables.mjs (OK), check_attributions.mjs table mode (0 matches — the page cites in prose) and –prose mode (5 checked, 4 SUSPECT, all false positives: the words Exchange, CPM, CPM, Since precede a citekey and are not names), check_page_numbers.mjs windowed on Use in Publications against the report output (OK), and whole-page against the concatenation of report + quote-check + external-check outputs (OK after the live sellers.json figures were moved into the external-check script) |
| Write path | node scripts/dw.mjs put (JSON-RPC) with –if-rev on every save |
| Accidental exposure | None. Credentials stayed in .env. Unauthenticated fetches only: IAB Tech Lab, GitHub API, Prebid docs, Google/PubMatic/OpenX sellers.json, arXiv, EasyList, the papers' artifact URLs |
Scope and judgement calls
| Decision | Why | What a reasonable person might have done instead |
|---|---|---|
New page privacy:ads_txt rather than a section on cookie_syncing | That page is about detecting identifier exchange. This one is about who is authorised or observed to sell; the two share two papers ([1Cook, John; Nithyanand, Rishab; Shafiq, Zubair (2020): "Inferring Tracker-Advertiser Relationships in the Online Advertising Ecosystem using Header Bidding", in: Proceedings on Privacy Enhancing Technologies. (DOI)], [2Musa, Maaz Bin; Nithyanand, Rishab (2022): "ATOM: Ad-network Tomography", in: Proceedings on Privacy Enhancing Technologies. (DOI)]) and nothing else. A section would have had to explain ads.txt inside a page about cookies | Put header bidding on the syncing page (it already mentions Prebid's sync defaults) and ads.txt under existing_datasets. Rejected: the reader asking “who sells this inventory” would find neither |
| Four relationship kinds (declared / confirmed / observed / paid) as the page's organising decision | Every number in this literature is one of the first three, and the papers do not say which. It is the analogue of “which string counts as an identifier” on the syncing page | Organise by file (ads.txt page, sellers.json page, HB page). Rejected: the three are only interesting joined |
| Cited the IEEE S&P 2024 dark-pooling paper from arXiv although it is not in the corpus | It is the paper every later ads.txt paper cites, it coined the term, and it is the only SupplyChain-object measurement. PASS D of the report shows why it is absent: in the venue index, screening label all-false, no full text. The page says so twice and excludes it from every count | Leave it out because the corpus did. Rejected: a fresh student would be sent to a 2019 adoption study as the state of the art |
| Cited the arXiv v3 (Oct 2023) text, not the S&P camera-ready | No corpus PDF; IEEE Xplore not fetched. Figures quoted (79K pools, 20.5% SCO, 46.1%/0.1%, 95.3%/62.6%, 470/39) are from v3 and the page's bibliography entry says so in its note | Fetch Xplore. Not attempted; a difference between v3 and camera-ready would be a reviewer finding |
| Forced in two below-threshold papers | [3Papadopoulos, Panagiotis; Rodríguez, Pablo Rodríguez; Kourtellis, Nicolas; Laoutaris, Nikolaos (2017): "If you are not paying for it, you are the product: how much do advertisers pay to reach you?", in: Proceedings of the ACM Internet Measurement Conference. (DOI)] (4 core mentions, 81 “RTB”) is where price-as-observable starts; [4Papadogiannakis, Emmanouil; Papadopoulos, Panagiotis; Markatos, Evangelos P.; Kourtellis, Nicolas (2022): "Leveraging Google's Publisher-Specific IDs to Detect Website Administration", in: Proceedings of the ACM Web Conference. (DOI)] (3 mentions) is the ownership method every pooling paper borrows | Leave both out and keep the threshold pure. Rejected: the method table would date the RTB-price family from 2018 and the pooling row would have no ownership method |
| RTB win-notification prices counted as a family on this page | Same observable (what an advertiser paid for this browser), earlier mechanism. Dated historical | Send it to the syncing page (where the same two papers are the passive family). They appear there for identifier sharing, here for price |
| Statuses dated 2026-09-02 and argued from named papers + spec/vendor checks, not from a trend | 16 papers cannot carry a trend; 2025–2026 is provisional | Publish per-year adoption of each method. Rejected |
| No page-level “adoption rate of ads.txt” | The 2019 (20% of a top list) and 2023 (456,971 of ~7M) figures have different units; the page says so instead of reconciling them | Back-calculate a 2023 percentage (456,971 / 7,341,165 ≈ 6.2%). Rejected — the paper does not publish that ratio and its ~7M and 7,341,165 denominators are two different crawls |
| Industry adoption trackers not cited | Pixalate and similar publish ads.txt adoption percentages without a stated denominator or method | Cite one with a caveat. Rejected: it is exactly the SEO-listicle failure mode the site's rules name |
| Johnson & Neumann (2024 working paper) footnoted, not cited | Not peer-reviewed; used only as an existence proof that Prebid configuration is an observable in economics | Add a bib entry. Rejected for a working paper |
Live check of Google's sellers.json put on the page | It is the one number on the page a reader can re-derive in a minute, and it dates the 2023 confidentiality figure | Leave live data off a corpus page. Kept, with the fetch script and its output below |
No ~~DISCUSSION~~ on this provenance page | Established default | — |
Report script
scripts/report_ads_txt.mjs in the wiki workdir. Deterministic, ~25 s (scans 5,869 full texts). Re-run with:
node scripts/report_ads_txt.mjs > scripts/report_ads_txt-output.txt
Four passes: (A) whitespace-collapsed full-text probe, per term and per paper; (B) hand labels for every candidate, with residues; (C) extraction fields on the curated set; (D) the venue-index / screening-label check for the missing IEEE S&P 2024 paper. Every figure in the page's Use in Publications section is in this output; check_page_numbers.mjs confirms it.
Probe terms
The regexes are given here rather than in a table because a DokuWiki table cell cannot hold a pipe. Whitespace is collapsed and end-of-line hyphenation joined before matching. “RTB” and “dark pool” are context terms, not candidate-set terms.
ads.txt /\bads\.txt\b/gi app-ads.txt /\bapp-ads\.txt\b/gi sellers.json /\bsellers\.json\b/gi header bidding /\bheader[\s-]*bidding\b/gi prebid /\bprebid(?:\.js)?\b/gi openrtb /\bopenrtb\b/gi schain / supply chain object /\b(?:schain|supply[\s-]*chain[\s-]*object)\b/gi buyers.json /\bbuyers\.json\b/gi ads.cert /\bads\.cert\b/gi nURL / win notice /\bnurls?\b|\bwin[\s-]*notice\b|\bprice[\s-]*notification/gi real-time bidding (incl. RTB) /\breal[\s-]*time[\s-]*bidding\b/gi + /\bRTB\b/g (phrase case-insensitive; acronym case-sensitive because "rtb" appears inside URLs) dark pool(ing) /\bdark[\s-]*pool/gi CORE = the first seven; candidate threshold = CORE mentions summed >= 5
Queries, with their denominators
| # | Query | Population / denominator | Result | On the page? |
|---|---|---|---|---|
| Q1 | Papers with a readable paper.cols.txt | all | 5,869 | yes — the full-text denominator (not 5,859: ten directories have text but no extraction record) |
| Q2 | Each probe term, papers with ≥1 and ≥5 occurrences | 5,869 | ads.txt 12/8; app-ads.txt 3/1; sellers.json 5/4; header bidding 24/7; prebid 11/6; openrtb 13/2; schain 0/0; buyers.json 0/0; ads.cert 2/0; nURL 4/2; RTB 73/21; dark pool 8/4 | yes, reach table |
| Q3 | Any CORE term ≥1 | 5,869 | 41 (0.7%) | yes |
| Q4 | CORE terms summed ≥5 | 5,869 | 18 (0.3%) | yes — the candidate threshold |
| Q5 | Q3 by year | per-year full-text counts | 2010–2016: 0 of 1,047; 2017 1; 2018 2; 2019 4; 2020 5; 2021 3; 2022 8; 2023 4; 2024 6; 2025 7; 2026 1 | yes, with 2025–2026 starred |
| Q6 | Q3 and Q4 by venue | that venue's full-text papers | PETS 12/5 of 510; WWW 13/5 of 843; IMC 9/5 of 637; CCS 3/2 of 989; NDSS 1/1 of 701; IEEE-SP 1/0 of 779; USENIX 2/0 of 1,410 | yes |
| Q7 | Candidate set = Q4 ∪ 2 forced-in | — | 20; labels: 16 measures, 1 related, 3 cites, 0 unlabelled, 0 dead labels | yes |
| Q8 | Below-threshold residue (1–4 CORE mentions, not candidates) | Q3 ∖ Q7 | 21, of which 3 were read (all passing mentions) and 18 were not | yes (“three … happened to be read; the other 18 were not”) |
| Q9 | Measuring set by family | 16 | hb-instrument 7; adstxt-instrument 3; rtb-price 2; adstxt-object 2; hb-object 1; hb-sampling 1 | yes |
| Q10 | First / most recent year per family | 16 | rtb-price 2017–2018; adstxt-object 2019–2025; hb-object 2019; hb-instrument 2020–2025; adstxt-instrument 2023–2025; hb-sampling 2026 | yes, method table |
| Q11 | crawlConfig fired | 16 | 13 | yes |
| Q12 | statefulness / consentAction / interactionDepth / headless | 13 | stateless 6, stateful 5, both 1, not-stated 1 · no-interaction 5, not-stated 3, accept-all 2, accept-and-reject 1, cmp-specific 1, not-applicable 1 · landing+subpages 4, landing-only 4, single-target 3, not-stated 2 · headless not-stated 10, headful 2, headless 1 | yes, sentinels named as such |
| Q13 | temporal.mode (paper-counted, multi-valued) | 16 | live-crawl 14, active-probing 4, passive-collection 2, existing-dataset 2, web-archive 1 | no (page keeps the 13/3 split only) |
| Q14 | artifacts.availability | 16 | public 10, none-mentioned 4, promised-not-yet-available 2 | yes |
| Q15 | population.sourceList, folded by the alias rule below | 16 | Alexa 8, Tranco 5, MediaBias/FactCheck 3, NextDNS 2, Prolific 1, BuiltWith 1; 30 unmapped strings (printed in the output) | yes, with the residue count |
| Q16 | vantage.locations folded through geo.mjs | 16 | 11 state a location; United States 6, Europe 3, Germany 3, Spain 2, then singletons; 1 unmapped (“same country”) | yes (11 of 16; 6 US) |
| Q17 | detection[].prevalence on tuples naming an observable | 16 | printed per paper in the output; the page quotes the papers' own denominators, not this field | indirectly |
| Q18 | Authors' own artifact links (belongsToAuthors) | 16 | 11 papers flag at least one; all URLs re-fetched (see External) | yes, tools table |
| Q19 | The S&P 2024 paper: venue index / screening label / extraction / full text | 1 | present / all fields false or empty / absent / absent | yes, twice |
Hand labels for the 20 candidates
Assigned by reading the matched passages (child agents read the full text; the reasons below are what the label rests on).
| Paper | Label | Reason |
|---|---|---|
| [5Bashir, Muhammad Ahmad; Arshad, Sajjad; Kirda, Engin; Robertson, William K.; Wilson, Christo (2019): "A Longitudinal Analysis of the ads.txt Standard", in: Proceedings of the ACM Internet Measurement Conference. (DOI)] IMC 2019 | adstxt-object | 26 crawls of /ads.txt; adoption, errors, compliance against 135M inclusion chains |
| [6Papadogiannakis, Emmanouil; Kourtellis, Nicolas; Papadopoulos, Panagiotis; Markatos, Evangelos P. (2025): "Welcome to the Dark Side: Analyzing the Revenue Flows of Fraud in the Online Ad Ecosystem", in: Proceedings of the ACM Web Conference. (DOI)] WWW 2025 | adstxt-object | ads.txt from ~7M Tranco domains and sellers.json from 2,682; pooling and hidden intermediaries are the object |
| [7Papadogiannakis, Emmanouil; Papadopoulos, Panagiotis; Markatos, Evangelos P.; Kourtellis, Nicolas (2023): "Who Funds Misinformation? A Systematic Analysis of the Ad-related Profit Routines of Fake News Sites", in: Proceedings of the ACM Web Conference. (DOI)] WWW 2023 | adstxt-instrument | ads.txt stored per visit; DIRECT lines and sellers.json used to say who monetises fake-news sites |
| [8Papadogiannakis, Emmanouil; Papadopoulos, Panagiotis; Kourtellis, Nicolas; Markatos, Evangelos P. (2025): "Before & After: The Effect of EU's 2022 Code of Practice on Disinformation", in: Proceedings of the ACM Web Conference. (DOI)] WWW 2025 | adstxt-instrument | ads.txt ∩ sellers.json before/after the 2022 Code of Practice |
| [9Sheaib, Hussein; Feldmann, Anja; Dao, Ha (2025): "Unmasking the Shadows: A Cross-Country Study of Online Tracking in Illegal Movie Streaming Services", in: Proceedings on Privacy Enhancing Technologies. (DOI)] PoPETs 2025 | adstxt-instrument | one subsection: /ads.txt of 383 piracy sites, verified against 8 exchanges' sellers.json |
| [10Pachilakis, Michalis; Papadopoulos, Panagiotis; Markatos, Evangelos P.; Kourtellis, Nicolas (2019): "No More Chasing Waterfalls: A Measurement Study of the Header Bidding Ad-Ecosystem", in: Proceedings of the ACM Internet Measurement Conference. (DOI)] IMC 2019 | hb-object | HBDetector; adoption, partners, latency, prices |
| [1Cook, John; Nithyanand, Rishab; Shafiq, Zubair (2020): "Inferring Tracker-Advertiser Relationships in the Online Advertising Ecosystem using Header Bidding", in: Proceedings on Privacy Enhancing Technologies. (DOI)] PoPETs 2020 | hb-instrument | getBidResponses() on 25 sites; bids vs persona → tracker–advertiser inference |
| [11Zeng, Eric; McAmis, Rachel; Kohno, Tadayoshi; Roesner, Franziska (2022): "What Factors Affect Targeting and Bids in Online Advertising? A Field Measurement Study", in: Proceedings of the ACM Internet Measurement Conference, pp. 210-229. (DOI)] IMC 2022 | hb-instrument | extension in 286 users' browsers; bids vs demographics/context |
| [12Zhang, Jiang; Psounis, Konstantinos; Haroon, Muhammad; Shafiq, Zubair (2022): "HARPO: Learning to Subvert Online Behavioral Advertising", in: Proceedings of the Network and Distributed System Security Symposium. (Link)] NDSS 2022 | hb-instrument | bids on 3 HB sites as the ad-targeting signal HARPO distorts |
| [2Musa, Maaz Bin; Nithyanand, Rishab (2022): "ATOM: Ad-network Tomography", in: Proceedings on Privacy Enhancing Technologies. (DOI)] PoPETs 2022 | hb-instrument | bids recorded incidentally; used to validate 1 of 11 inferred relationships. Borderline — kept because the paper's own text discusses HB's declining visibility |
| [13Iqbal, Umar; Bahrami, Pouneh Nikkhah; Trimananda, Rahmadi; Cui, Hao; Gamero-Garrido, Alexander; Dubois, Daniel J.; Choffnes, David R.; Markopoulou, Athina; Roesner, Franziska; Shafiq, Zubair (2023): "Tracking, Profiling, and Ad Targeting in the Alexa Echo Smart Speaker Ecosystem", in: Proceedings of the ACM Internet Measurement Conference. (DOI)] IMC 2023 | hb-instrument | OpenWPM extended to probe prebid.js version; 200 sites; bids vs smart-speaker persona |
| [14Liu, Zengrui; Iqbal, Umar; Saxena, Nitesh (2024): "Opted Out, Yet Tracked: Are Regulations Enough to Protect Your Privacy?", in: Proceedings on Privacy Enhancing Technologies. (DOI)] PoPETs 2024 | hb-instrument | 5,421 Prebid sites found, 352 audited; bids vs opt-out under GDPR/CCPA |
| [15Liu, Zengrui; Dani, Jimmy; Cao, Yinzhi; Wu, Shujiang; Saxena, Nitesh (2025): "The First Early Evidence of the Use of Browser Fingerprinting for Online Tracking", in: Proceedings of the ACM Web Conference. (DOI)] WWW 2025 | hb-instrument | pbjs.getBidResponses(); bids vs spoofed fingerprint |
| [16Lukić, Karlo; Papadopoulos, Lazaros (2026): "Privacy vs. Profit: The Impact of Google's Manifest Version 3 (MV3) Update on Ad Blocker Effectiveness", in: Proceedings on Privacy Enhancing Technologies. (Link)] PoPETs 2026 | hb-sampling | BuiltWith Prebid list to choose 1,000 sites; Prebid-aware extension counts ads; no bid values |
| [3Papadopoulos, Panagiotis; Rodríguez, Pablo Rodríguez; Kourtellis, Nicolas; Laoutaris, Nikolaos (2017): "If you are not paying for it, you are the product: how much do advertisers pay to reach you?", in: Proceedings of the ACM Internet Measurement Conference. (DOI)] IMC 2017 (forced) | rtb-price | nURL prices in 1,594 users' proxied traffic, 2015 |
| [17Papadopoulos, Panagiotis; Kourtellis, Nicolas; Markatos, Evangelos P. (2018): "The Cost of Digital Advertisement: Comparing User and Advertiser Views", in: Proceedings of the ACM Web Conference. (DOI)] WWW 2018 | rtb-price | same method, 1,270 users; 44,997 charge prices |
| [4Papadogiannakis, Emmanouil; Papadopoulos, Panagiotis; Markatos, Evangelos P.; Kourtellis, Nicolas (2022): "Leveraging Google's Publisher-Specific IDs to Detect Website Administration", in: Proceedings of the ACM Web Conference. (DOI)] WWW 2022 (forced) | related | Google publisher IDs from page source; no ads.txt at all (2 mentions, both in related work) |
| [18Poteat, Tara; Li, Frank (2021): "Who You Gonna Call? An Empirical Evaluation of Website security.txt Deployment", in: Proceedings of the ACM Internet Measurement Conference. (DOI)] IMC 2021 | cites | ads.txt as the robots.txt-like precedent for security.txt; incidental ads.txt files were discarded |
| Sun et al., CCS 2021 (mobile ad fraud via invalid traffic; not cited on the page) | cites | ads.txt / app-ads.txt in background only; measurement is industrial bid logs |
| Zhu et al., CCS 2024 (collusion-based ad attribution laundering; not cited on the page) | cites | one anecdotal app-ads.txt look-up in a case study; sellers.json never mentioned |
The three below-threshold papers that were read: Setting the Bar Low (PoPETs 2022, 3 mentions, all inside reference titles), Apophanies or Epiphanies (WWW 2020, 2 mentions, header bidding named as a crawl confound), Johnny Still Can't Opt-out (PoPETs 2024, 4 mentions, RTB as background and “prebid” inside a hostname). None changes the set.
Folding, and its residue
- Population source lists (Q15): alias rule
Alexa/alexa/i,Tranco/tranco/i,MediaBias/FactCheck/mbfc|mediabias|media bias/i,NextDNS/nextdns/i,Prolific,BuiltWith,Wayback / archive. Paper-counted. 30 strings unmapped, all printed in the output below — mostly “custom …” persona sets, the AOL query log, CJR / Golbeck / Zhou lists, Science Feedback, Reddit's piracy megathread, WHOIS-derived sets. None of them is a top list, so the mapped counts are not undercounts of the top lists; the residue is the long tail the page does not rank. - Vantage locations (Q16):
geo.mjs. 1 unmapped: “same country” ([3Papadopoulos, Panagiotis; Rodríguez, Pablo Rodríguez; Kourtellis, Nicolas; Laoutaris, Nikolaos (2017): "If you are not paying for it, you are the product: how much do advertisers pay to reach you?", in: Proceedings of the ACM Internet Measurement Conference. (DOI)]; the paper says Spain elsewhere and the folded table has Spain 2 from itsvantagetuples that do say so). - Ad-system names are not folded on this page — the page ranks no ad systems. Where a paper's ranking is quoted (Google 80.8%, AppNexus 52.5%, Index Exchange 49%) it is the paper's own, on the paper's own domain strings.
- Term probe — the regexes above are the fold. Width decisions:
RTBcase-sensitive to avoidrtbin URLs, but the phrase real-time bidding case-insensitive — the first version applied one case-sensitive flag to the whole alternation and undercounted the phrase (64 papers instead of 73; found by the figures reviewer);prebidcatchesPrebid.jsandprebid-server;schainalso catches “supply chain object” with any spacing. Nothing was widened after the first run, because the candidate set is hand-labelled and the labels absorbed the false positives.
Quotes and figures spot-checked against the papers
scripts/adstxt_quotecheck.mjs looks for every quoted phrase and every paper-sourced figure on the page in the cited paper's own paper.cols.txt (whitespace collapsed, ligatures and curly punctuation normalised), then falls back to paper.norm.txt, then to a proximity test — every token of the phrase, in order, each as a whole token, with at most 120 characters (one interleaved column fragment) between consecutive tokens. The first version of that test allowed any order inside a 750-character window (250 before and 500 after the first token); the figures reviewer mutation-tested it and 82 of 509 ±1 / ±10% numeric mutations still passed, so it was tightened (see Review). The check count went 167 → 170 because three spliced quotes are now checked as two halves each. The S&P 2024 paper is checked against the arXiv v3 text in out/vekaria2024_arxiv.txt.
Result on the final run: 170 of 170 pass — 146 verbatim in .cols, 0 rescued by .norm, 24 by proximity only. (The first revision reported 167 of 167 with the weaker any-order test.) The 24 are two-column splices in the repaired text (e.g. “the sustainability of KASHF takes a hit as publish[…other column…]ers migrate towards server side Header Bidding”); each was read in context and is a genuine quote. Two agent-supplied wordings did not check out as given and were replaced: a Cook et al. footnote that the child agent had de-spliced by hand (it exists, split across columns — “dependent on client-side implementa- … tion of prebid.js, which would not work for server-side imple-”), and a URL the text renders with a stray space (https://priv sec-research.github.io/alexaechos). Neither is on the page as a quotation.
What this does not cover. It checks presence, not context: a number that appears in the paper for a different reason would pass. The figures most exposed to that are the ones quoted from tables rather than sentences ([19Vekaria, Yash; Nithyanand, Rishab; Shafiq, Zubair (2024): "The Inventory is Dark and Full of Misinformation: Understanding Ad Inventory Pooling in the Ad-Tech Supply Chain", in: Proceedings of the IEEE Symposium on Security and Privacy. Not in the site's publication corpus (screened out at abstract stage); cited from the arXiv version 2210.06654v3 (DOI)]'s 46.1%/0.1% and 95.3%/62.6%; [17Papadopoulos, Panagiotis; Kourtellis, Nicolas; Markatos, Evangelos P. (2018): "The Cost of Digital Advertisement: Comparing User and Advertiser Views", in: Proceedings of the ACM Web Conference. (DOI)]'s 67.7%), and those were read in context by hand. The live sellers.json numbers are not paper figures and are covered by the external-check output instead.
- adstxt_quotecheck-output.txt
PASS cols IMC/2019 «we performed 26 crawls» PASS cols IMC/2019 «Overall, we performed 26 crawls» PASS cols IMC/2019 «January 15, 2018» PASS cols IMC/2019 «April 1, 2019» PASS cols IMC/2019 «100K websites on January 15, 2018 to 240K on April 1, 2019» PASS cols IMC/2019 «12.7% of websites adopting the standard, which grew steadily to 19.7%» PASS cols IMC/2019 «adoption has increased from 46.6% to 62.3%» PASS cols IMC/2019 «10% of the publishers have» PASS cols IMC/2019 «invalid record» PASS cols IMC/2019 «2,381 unique seller domains» PASS cols IMC/2019 «1,035 of the seller domains» PASS cols IMC/2019 «56.4% of the seller domains in the ads.txt files contained syntactic errors» PASS proximity IMC/2019 «distributed by 233 publishers» PASS cols IMC/2019 «median publisher listed 17 sellers» PASS cols IMC/2019 «top 20% of publishers listed» PASS cols IMC/2019 «42 unique sellers» PASS cols IMC/2019 «135M RTB ad inclusion chains» PASS cols IMC/2019 «rose from 46% in April 2018 to 77% in April 2019» PASS cols IMC/2019 «within 2-3 hours by parallelizing across a 16-node cluster» PASS proximity IMC/2019 «attempted to become a publisher in order to conduct controlled experiments» PASS cols IMC/2019 «is not perfect. We manually mapped 101 domains to 28 parent domains» PASS cols IMC/2019 «A separate study is required» PASS proximity IMC/2019 «only 59% of the publishers in our dataset whose impression inventory moved through» PASS cols IMC/2019 «https://personalization.ccs.neu.edu/Projects/Adstxt/» PASS cols IMC/2019 «https://github.com/sajjadium/DeepCrawling» PASS cols IMC/2019 «35,000» PASS cols IMC/2019 «14.28%» PASS cols IMC/2019 «20-23% of the top 5k websites» PASS cols IMC/2019 «798,629» PASS cols IMC/2019 «241,392» PASS cols IMC/2019 «84 unique Demand Partners» PASS cols IMC/2019 «more than 80% of publishers utilizing it» PASS cols IMC/2019 «Server-Side HB currently comprises the larger portion of the market with 48%» PASS cols IMC/2019 «Hybrid HB is second with 34.7%, and the Client-Side HB is third with 17.3%» PASS proximity IMC/2019 «median latency is about 600ms» PASS proximity IMC/2019 «4% of websites observe more than 5 seconds» PASS proximity IMC/2019 «median cost of 0.031 CPM» PASS cols IMC/2019 «period of 34 days» PASS cols IMC/2019 «https://www.github.com/mipach/HBDetector» PASS cols IMC/2019 «clean slate instance before visiting each website» PASS cols PETS/2020 «getBidResponses» PASS cols PETS/2020 «make up over 22% of all bids» PASS cols PETS/2020 «accuracy ranges from 75% for AppNexus to 83% for IX» PASS proximity PETS/2020 «11 potential server-side advertiser-tracker relationships that are not validated using client-side cookie syncing» PASS proximity PETS/2020 «we are able to validate 7» PASS cols PETS/2020 «25 most popular domains» PASS cols PETS/2020 «prefer server-side implementations due to performance reasons» PASS cols PETS/2020 «Alexa top 10K websites» PASS cols IMC/2022 «286» PASS cols IMC/2022 «finding 703 sites» PASS cols IMC/2022 «December 10-21, 2021» PASS cols IMC/2022 «we collected 41,032 ads» PASS cols IMC/2022 «25,764 of ads where a header bidding auction took place» PASS cols IMC/2022 «7,117» PASS cols IMC/2022 «mean value of $5.47 and median of $4.16» PASS cols IMC/2022 «getBidResponses()» PASS cols IMC/2022 «getAllWinningBids()» PASS cols IMC/2022 «getAllPrebidWinningBids()» PASS cols IMC/2022 «1-2 weeks before Christmas» PASS cols NDSS/2022 «bid values by 6.28» PASS cols NDSS/2022 «www.speedtest.net, www.kompas.com, and www.cnn.com» PASS cols NDSS/2022 «https://github.com/bitzj2015/Harpo-NDSS22» PASS cols PETS/2022 «takes a hit as publish» PASS cols PETS/2022 «ers migrate towards server side Header Bidding» PASS cols PETS/2022 «validate the relationship between Alphabet and Pubmatic» PASS cols PETS/2022 «nine of our 11 inferred data sharing relationships» PASS cols PETS/2022 «disabled tracking protection» PASS cols IMC/2023 «as much as 30» PASS cols IMC/2023 «stop the crawl as soon as we identify 200 prebid supported websites» PASS cols IMC/2023 «probe for prebid.js version» PASS cols IMC/2023 «sec-research.github.io/alexaechos» PASS cols WWW/2023 «198 fake news websites and 627 real news websites serving a valid ads.txt» PASS cols WWW/2023 «13 Dec 2021» PASS cols WWW/2023 «262 websites now serve ads.txt» PASS cols WWW/2023 «January 31, 2023» PASS cols WWW/2023 «80.8% of fake news websites have a direct business relationship with google.com, 49% of fake news websites with indexexchange.com, and 52.5% with appnexus.com» PASS cols WWW/2023 «direct business relationships with 27 ad systems, while surprisingly, real news websites do so with 41 systems» PASS cols WWW/2023 «12 Jan 2022» PASS cols WWW/2023 «74.3 - 80.8%» PASS cols WWW/2023 «1,044» PASS cols WWW/2023 «1,368» PASS proximity WWW/2023 «https://gitlab.com/papamano/scrape-titan» PASS proximity WWW/2023 «https://gitlab.com/papamano/who-funds-misinformation» PASS cols PETS/2024 «5421 websites are employing prebid.js with the standard API label pbjs» PASS cols PETS/2024 «i.e., 352» PASS cols PETS/2024 «do not consider personalized custom API labels (i.e., other than pbjs)» PASS cols PETS/2024 «calling the getBidResponses method» PASS cols PETS/2024 «calling the requestBids method» PASS cols PETS/2024 «Frankfurt» PASS cols PETS/2024 «Northern California» PASS cols PETS/2024 «nine times» PASS cols PETS/2024 «Amazon Transparent Ad Marketplace» PASS cols PETS/2024 «Exchange Bidding Dynamic Allocation» PASS proximity PETS/2024 «most personas receive higher bids compared to control when users opt-out» PASS cols WWW/2025 «more than 7M distinct domains during February-March 2023» PASS proximity WWW/2025 «ads.txt files of 456,971 domains and extracted 81,985,768 valid entries» PASS proximity WWW/2025 «591,546 distinct DIRECT publisher identifiers» PASS cols WWW/2025 «we find 185,535 distinct pools» PASS proximity WWW/2025 «nearly 15,000 distinct dark pools» PASS proximity WWW/2025 «59.6% of pools with at least one misinformation website are dark pools» PASS cols WWW/2025 «rises to an astounding 82%» PASS proximity WWW/2025 «92% of websites that serve an ads.txt file contain at least one DIRECT publisher ID issued by Google» PASS cols WWW/2025 «7,341,165 domains on March 24, 2023, and detected sellers.json files in 2,682 domains» PASS cols WWW/2025 «over 34 million sellers.json entries» PASS cols WWW/2025 «over 26K identifiers issued by 421 distinct advertising networks» PASS cols WWW/2025 «issued 1,277,156 identifiers, 75.53% of which are confidential» PASS cols WWW/2025 «33 ad networks that have been falsely registered as publishers» PASS cols WWW/2025 «167 fake news websites, 19 piracy websites and 4 illegal websites» PASS cols WWW/2025 «the direct identifier 100141 is» PASS cols WWW/2025 «sued by conversantmedia.com is found in 42,412 distinct websites» PASS cols WWW/2025 «we find 28 such domains» PASS cols WWW/2025 «owner data for 3,981 websites» PASS proximity WWW/2025 «as-is and only change the user-agent header so that we are not blocked by websites» PASS cols WWW/2025 «only reach each domain once per month» PASS cols WWW/2025 «an indication of misuse» PASS cols WWW/2025 «1,163» PASS cols WWW/2025 «1,395» PASS proximity WWW/2025 «https://gitlab.com/papamano/welcome-to-the-dark-side» PASS cols WWW/2025 «https://adsparency.ics.forth.gr/» PASS cols WWW/2025 «each individual file of the above two files may provide fake information, their intersection provides the truth» PASS cols WWW/2025 «approximately 2,500 misinformation websites on January 2024 and download 226,659 ads.txt entries coming from 1,132 misinformation websites» PASS cols WWW/2025 «461 misinformation websites with an ads.txt file in both datasets» PASS cols WWW/2025 «dropping 51%, 43%, and 37%» PASS cols WWW/2025 «985 (87%) misinformation websites with at least one substantiated business relationship» PASS cols WWW/2025 «over 8500 lines that contains verified DIRECT entries for 196 distinct ad networks» PASS cols WWW/2025 «December 2021» PASS proximity PETS/2025 «35 out of 383 IMSS sites (9.1%) serving a valid ads.txt file» PASS cols PETS/2025 «77.1% of IMSS sites (27 out of 35)» PASS proximity PETS/2025 «total of 188 direct seller entries, five entries» PASS proximity PETS/2025 «169 IDs are not found in the sellers.json, and 418 IDs have a domain mismatch» PASS cols PETS/2025 «remaining unique direct 587 entries» PASS cols PETS/2025 «August 2024» PASS proximity PETS/2025 «https://doi.org/10.17617/3.STVMDI» PASS cols WWW/2025 «pbjs.getBidResponses()» PASS cols WWW/2025 «Alexa top 10,000 websites» PASS cols WWW/2025 «reduces this number to 6,345» PASS cols WWW/2025 «36,000» PASS proximity PETS/2026 «BuiltWith on January 9, 2024, we selected the top 1,000 most popular websites» PASS cols PETS/2026 «924 of these websites» PASS cols PETS/2026 «Azerion Ad Expert» PASS cols IMC/2017 «1594» PASS cols IMC/2017 «373M HTTP requests» PASS cols IMC/2017 «entire year of 2015» PASS cols IMC/2017 «26%» PASS cols IMC/2017 «1.7» PASS cols IMC/2017 «median user costs» PASS cols WWW/2018 «1270 users» PASS cols WWW/2018 «44997 cleartext and encrypted charge prices» PASS proximity WWW/2018 «67.7% of the overall RTB auctions» PASS cols WWW/2022 «pub-[0-9]{9,}» PASS cols WWW/2022 «962K websites of the Tranco list» PASS cols WWW/2022 «we find that ∼10% of the most popular web» PASS cols WWW/2022 «sites monetize their content through an AdSense account» PASS cols WWW/2022 «2,369 communities» PASS cols CCS/2021 «app-ads» PASS cols CCS/2024 «app-ads.txt» PASS cols out/vekaria2024_arxiv.txt (arXiv 2210.06654v3, NOT in corpus) «crawled and processed ads.txt and sellers.json files in February 2022» PASS cols out/vekaria2024_arxiv.txt (arXiv 2210.06654v3, NOT in corpus) «over 98K relationships from ads.txt files and 2.4M relationships from sellers.json files» PASS cols out/vekaria2024_arxiv.txt (arXiv 2210.06654v3, NOT in corpus) «we observed 79K unique pools» PASS cols out/vekaria2024_arxiv.txt (arXiv 2210.06654v3, NOT in corpus) «Confidential sellers 0.1% 46.1%» PASS cols out/vekaria2024_arxiv.txt (arXiv 2210.06654v3, NOT in corpus) «Non-unique seller IDs 62.6% 95.3%» PASS cols out/vekaria2024_arxiv.txt (arXiv 2210.06654v3, NOT in corpus) «only 20.5% (3796) bid requests have included SCOs, all of which comprised only a single seller node» PASS cols out/vekaria2024_arxiv.txt (arXiv 2210.06654v3, NOT in corpus) «Of the 470 AdXs found to support misinformation websites» PASS cols out/vekaria2024_arxiv.txt (arXiv 2210.06654v3, NOT in corpus) «39 (8.3%) AdXs delisted at least one misinformation website by February 2022» PASS cols out/vekaria2024_arxiv.txt (arXiv 2210.06654v3, NOT in corpus) «dropped ∼87% of the total publisher domains» PASS cols out/vekaria2024_arxiv.txt (arXiv 2210.06654v3, NOT in corpus) «669 misinformation websites» PASS cols out/vekaria2024_arxiv.txt (arXiv 2210.06654v3, NOT in corpus) «251 websites that had an ads.txt file» PASS cols out/vekaria2024_arxiv.txt (arXiv 2210.06654v3, NOT in corpus) «nearly 20% more likely to attract ads from reputable brands» PASS cols out/vekaria2024_arxiv.txt (arXiv 2210.06654v3, NOT in corpus) «TABLE 6: Pools from D static using IDs of unknown owners» PASS cols out/vekaria2024_arxiv.txt (arXiv 2210.06654v3, NOT in corpus) «Tranco top-100K domains which contained an ads.txt file (C100K)» 170 PASS (verbatim in .cols 146, verbatim in .norm 0, proximity only 24), 0 FAIL of 170
External sources
Everything non-corpus the page leans on, how it was verified, and what was rejected. The fetch script scripts/adstxt_external_checks.sh re-runs the machine-checkable part; its output is below.
| Source | How verified | Verdict |
|---|---|---|
| ads.txt 1.1 specification (IAB Tech Lab) | PDF fetched and text-extracted with pypdf; “ads.txt Version 1.1 Released August 2022”; changelog 1.0 2017-06-27 → 1.0.1 → 1.0.2 (March 2019, app-ads.txt differentiation) → 1.0.3 (March 2021, INVENTORYPARTNERDOMAIN) → 1.1 (July 2022 final: OWNERDOMAIN, MANAGERDOMAIN). Root-domain and redirect rules quoted from §3.1. iabtechlab.com/standards/ads-txt/ lists 1.1 as current | Accepted; the page's version claims and the redirect rule come from here |
| sellers.json 1.0 (IAB Tech Lab) | PDF fetched; “1.0 July 2019 First Version”; /sellers.json path; seller_type enum; is_confidential semantics; “It is invalid for a seller_id to represent multiple entities” | Accepted |
| SupplyChain object 1.0 | github.com/InteractiveAdvertisingBureau/openrtb/blob/master/supplychainobject.md: version “1.0”; asi, sid, hp required; name/domain optional and “should NOT be included if it exists in the advertising system's sellers.json file”. IAB page dates finalisation 2019-07-31 | Accepted |
| OpenRTB version | iabtechlab.com/standards/openrtb/: latest 2.x is 2.6-202309; history on GitHub | Accepted; not load-bearing on the page |
| app-ads.txt | iabtechlab.com/standards/app-ads-txt/ gives only the Nov 2018 beta date; the ads.txt 1.1 changelog dates the app-ads.txt differentiation to March 2019, as does [5Bashir, Muhammad Ahmad; Arshad, Sajjad; Kirda, Engin; Robertson, William K.; Wilson, Christo (2019): "A Longitudinal Analysis of the ads.txt Standard", in: Proceedings of the ACM Internet Measurement Conference. (DOI)] | Accepted with both sources; page says “March 2019” via the paper |
Prebid.js: getBidResponses fields | docs.prebid.org/dev-docs/publisher-api-reference/getBidResponses.html | Accepted |
Prebid.js: globalVarName / defineGlobal | raw.githubusercontent.com/prebid/Prebid.js/master/README.md build-options table: default pbjs; “If false, do not set a global variable” | Accepted; this is what makes [14Liu, Zengrui; Iqbal, Umar; Saxena, Nitesh (2024): "Opted Out, Yet Tracked: Are Regulations Enough to Protect Your Privacy?", in: Proceedings on Privacy Enhancing Technologies. (DOI)]'s 5,421 a lower bound |
| Prebid Server | docs.prebid.org/overview/intro.html: “Use Prebid Server to do the processing rather than the client browser”. The first revision cited prebid-server/overview/prebid-server-overview.html with a paraphrase (“bid requests from the server rather than the browser”) that is not on that page — a WebFetch summary was quoted as if it were the source. Caught by the external-currency reviewer; corrected | Accepted after correction |
| Prebid.js latest release | GitHub API /releases/latest: tag 11.32.0, published 2026-09-01, prerelease: false. The release name reads “Prebid 11.31.1 Release” — a mismatch in Prebid's own metadata, not a transcription error here | Not on the page (a version number would be stale in a week); recorded |
| EasyList blocks Prebid | easylist.txt fetched: 68 lines match /prebid/i (e.g. .prebid-bundle.js$script); EasyPrivacy 7 | Accepted — supports “Prebid endpoints are on EasyList” |
Google sellers.json (live) | realtimebidding.google.com/sellers.json answers HTTP 302 → storage.googleapis.com/adx-rtb-dictionaries/sellers.json (200, 108,724,970 bytes). The first revision of this page and of the content page said the canonical URL “intermittently returns an empty 200 body”; that was this run's own curl without -L recording the 0-byte redirect body. The external-currency reviewer reproduced 12 of 12 clean 302s and noticed the script never captured the status code; the script now prints the status chain and follows the redirect. Parsed: 972,929 sellers, 690,433 confidential (70.96%), 972,347 PUBLISHER / 582 BOTH, 141,915 non-confidential entries with no domain, ext.notice “This file is a beta and is unverified.” | Accepted and put on the page as the 2026 companion to the paper's March-2023 75.53%, with the redirect stated correctly. The seller count fell from 1,277,156 to 972,929; the page does not interpret that |
PubMatic / OpenX sellers.json | 200 (937,874 B) / 403 then 200 (1,399,841 B) on a later fetch | Recorded only |
IAB adstxtcrawler | GitHub API: created 2017-05-26, pushed 2024-06-06, Python, no licence field, not archived. The embedded output of the second revision was rate-limited (“API rate limit exceeded … created None”) under a table asserting these values — the generic reviewer caught it. The script now authenticates with GH_TOKEN, refuses to print a rate-limited value, and exits non-zero; the output below is the authenticated re-run | Accepted |
| Bashir dataset page | personalization.ccs.neu.edu/Projects/Adstxt/ 200; one archive adstxt_2019_dataset.tar.xz; page text says compiled 2024-05-28 | Accepted |
| Vekaria code | github.com/Yash-Vekaria/ad-inventory-fraud-measurement: MIT, created 2022-10-13, pushed 2024-05-18 | Accepted |
| Papadogiannakis GitLab repos; AdSparency | all five repos 200; adsparency.ics.forth.gr 200 | Accepted |
| Sheaib dataset | doi.org/10.17617/3.STVMDI → edmond.mpg.de 200 | Accepted |
| Iqbal code page; Aziz repo | 200; MIT, pushed 2024-07-09 | Accepted (Aziz not on the page) |
| HBDetector | github.com/mipach/HBDetector 404; GitHub API “Not Found”; web search finds no relocation. Maintained equivalents: prebid/header-bidder-expert (Apache-2.0, last pushed 2022-09-12) and prebid/professor-prebid (Apache-2.0, pushed 2026-02-19) | Dead link recorded on the page |
| HARPO code | github.com/bitzj2015/Harpo-NDSS22 404 | Dead link recorded |
| DeepCrawling | redirects to github.com/sajjadium/Crawlium (MIT, pushed 2023-10-03) | Move recorded |
| ATOM archive | vitalstatistix.cs.uiowa.edu:2443/… connection failed (curl exit, status 000) | Not on the page's tools table; the paper's extraction lists it |
| Vekaria, Nithyanand, Shafiq — notification paper | arXiv 2406.06958 v1 2024-06-11, v2 2026-04-02; listed on eurosp2026.ieee-security.org/program.html (Lisbon, 6–10 July 2026) with the three authors. The external-currency reviewer found the IEEE Xplore record: DOI 10.1109/EuroSP68448.2026.00061 → ieeexplore.ieee.org/document/11624241 (302 confirmed here). Added to the footnote | Accepted, footnoted; EuroS&P is outside the corpus |
| Johnson & Neumann 2024 | PDF fetched from pep.gmu.edu and text-extracted: “March 21, 2024, Work in progress”; Prebid-configuration scans on a panel from a Tranco top-100K list (October 2022) | Footnoted only as a working paper |
| Alexa retirement | Not re-verified here; the page links website_selection, which carries the dated sources | Delegated |
| Search-surfaced explainers and trackers: verve.com, setupad.com, adtelligent.com, indexexchange.com, advelize.com, admetricspro.com, pixalate.com blog, tradehouse.media, publift.com, redvolcano.io, 6sense.com, headerbidding.co, adpushup.com, playwire.com, bidmatic.io, Statista header-bidding pages | Vendor or SEO material; adoption numbers without denominators or methods | Rejected. Do not re-add. |
- adstxt_external_checks-output.txt
github auth: token run: 2026-09-02T17:32Z == Google sellers.json (live) == canonical realtimebidding.google.com/sellers.json (no follow): HTTP 302, redirect_url=https://storage.googleapis.com/adx-rtb-dictionaries/sellers.json, body 0 bytes followed: HTTP 200, final https://storage.googleapis.com/adx-rtb-dictionaries/sellers.json, 108724970 bytes file size: 108724970 bytes (about 109 MB) version 1.0; ext.notice: This file is a beta and is unverified. sellers 972929; is_confidential=1: 690433 (70.96%) seller_type: {'PUBLISHER': 972347, 'BOTH': 582} non-confidential entries with no domain: 141915 == other sellers.json locations (HTTP status, bytes) == https://www.google.com/sellers.json 404 1573 https://storage.googleapis.com/adx-rtb-dictionaries/sellers.json 200 108724970 https://pubmatic.com/sellers.json 200 937874 https://openx.com/sellers.json 200 1399841 == artifact URLs cited by the measuring papers (HTTP status after redirects, final URL) == https://personalization.ccs.neu.edu/Projects/Adstxt/ 200 https://personalization.ccs.neu.edu/Projects/Adstxt/ https://github.com/sajjadium/DeepCrawling 200 https://github.com/sajjadium/Crawlium https://www.github.com/mipach/HBDetector 404 https://github.com/mipach/HBDetector https://github.com/bitzj2015/Harpo-NDSS22 404 https://github.com/bitzj2015/Harpo-NDSS22 https://gitlab.com/papamano/welcome-to-the-dark-side 200 https://gitlab.com/papamano/welcome-to-the-dark-side https://gitlab.com/papamano/who-funds-misinformation 200 https://gitlab.com/papamano/who-funds-misinformation https://gitlab.com/papamano/scrape-titan 200 https://gitlab.com/papamano/scrape-titan https://gitlab.com/papamano/before-after-data 200 https://gitlab.com/papamano/before-after-data https://gitlab.com/papamano/website-administration-graphs 200 https://gitlab.com/papamano/website-administration-graphs https://adsparency.ics.forth.gr/ 200 https://adsparency.ics.forth.gr/ https://doi.org/10.17617/3.STVMDI 200 https://edmond.mpg.de/citation?persistentId=doi:10.17617/3.STVMDI https://privsec-research.github.io/alexaechos 200 https://privsec-research.github.io/alexaechos/ https://github.com/Yash-Vekaria/ad-inventory-fraud-measurement 200 https://github.com/Yash-Vekaria/ad-inventory-fraud-measurement https://github.com/InteractiveAdvertisingBureau/adstxtcrawler 200 https://github.com/InteractiveAdvertisingBureau/adstxtcrawler https://vitalstatistix.cs.uiowa.edu:2443/maaz/atom-archive 000 https://vitalstatistix.cs.uiowa.edu:2443/maaz/atom-archive curl failed == GitHub API: repository state == InteractiveAdvertisingBureau/adstxtcrawler: ok; created 2017-05-26T14:45:39Z; pushed 2024-06-06T04:34:04Z; licence None; archived False Yash-Vekaria/ad-inventory-fraud-measurement: ok; created 2022-10-13T19:09:01Z; pushed 2024-05-18T21:25:09Z; licence MIT; archived False mipach/HBDetector: Not Found; created None; pushed None; licence None; archived None bitzj2015/Harpo-NDSS22: Not Found; created None; pushed None; licence None; archived None sajjadium/Crawlium: ok; created 2018-07-31T18:36:07Z; pushed 2023-10-03T16:46:32Z; licence MIT; archived False prebid/header-bidder-expert: ok; created 2018-02-20T06:03:37Z; pushed 2022-09-12T16:56:28Z; licence Apache-2.0; archived False prebid/professor-prebid: ok; created 2020-06-03T14:27:58Z; pushed 2026-02-19T08:11:09Z; licence Apache-2.0; archived False == Prebid.js latest release (GitHub API /releases/latest) == tag 11.32.0; name "Prebid 11.31.1 Release"; published 2026-09-01T16:35:07Z; prerelease False == EuroS&P 2026 notification paper: DOI resolution == HTTP/2 302 location: https://ieeexplore.ieee.org/document/11624241/ == EasyList / EasyPrivacy rules naming prebid == easylist.txt lines: 80937; lines matching /prebid/i: 68 easyprivacy.txt lines: 56775; lines matching /prebid/i: 7 /ads/gam_prebid-$script ! prebid scripts .prebid-bundle.js$script .prebid.$domain=~prebid.org /ads/prebid8-$script == IAB spec PDFs: version lines == out/adstxt_spec_1_1.pdf [found] ads.txt Version 1.1 Released August 2022 [found] 1.1 April 2022 public comment July 2022 final release Added the “managerdomain” and “ownerdomain” variables (more details in 3 [found] if and only if the redirect is within scope of the original root domain [found] Crawlers should incorporate Public Suffix list out/sellersjson_spec.pdf [found] 1.0 July 2019 First Version [found] It is invalid for a seller_id to represent multiple entities [found] is_confidential exit status (3 = a GitHub call was rate-limited): 0
Bibliography
Checked against a fresh export of bibliography (373,499 bytes, 816 entries) immediately before appending. Key-string, DOI and title-fragment collision scans all clean. 10 entries added; 8 keys reused (cook2020_headerbidding, zeng2022_factors, musa2022_atom, iqbal2023_tracking, liu2024_opted, lukic2026_mv3, papadogiannakis2025_before, papadopoulos2018_cost).
bibgen.mjsfailed loudly on the PoPETs slug (no authors in the index); authors taken from the PoPETs landing pagepetsymposium.org/popets/2025/popets-2025-0053.php(Sheaib, Feldmann, Dao).- HARPO has no DOI in the index; cited by the NDSS URL, as
bibgendoes for NDSS. Its index record lists four authors (Zhang, Psounis, Haroon, Shafiq) where the PDF header the child agent saw named two; the index is the publisher's metadata and was kept. vekaria2024_darkpoolingwritten by hand (not in the index's extracted set, but the index record supplied the DOI10.1109/sp54263.2024.00003); itsnotefield says it is cited from arXiv v3.lukic2026_mv3lists a second author (“Papadopoulos, Lazaros”) whom the.colsheader does not show; the citations reviewer confirmed the author frompaper.norm.txtand the PoPETs landing page. The entry is correct; the doubt was a rendering artefact.- A first attempt to generate the entries in a shell loop produced an empty file —
zshdoes not word-split$kv— and was re-run one call per key. Recorded because “the file was empty” is a failure mode that looks like “no output yet”.
- bib_additions_ads_txt.bib
@inproceedings{pachilakis2019_waterfalls, author = {Pachilakis, Michalis and Papadopoulos, Panagiotis and Markatos, Evangelos P. and Kourtellis, Nicolas}, title = {No More Chasing Waterfalls: A Measurement Study of the Header Bidding Ad-Ecosystem}, booktitle = {Proceedings of the ACM Internet Measurement Conference}, year = {2019}, series = {IMC 2019}, doi = {10.1145/3355369.3355582}, } @inproceedings{bashir2019_adstxt, author = {Bashir, Muhammad Ahmad and Arshad, Sajjad and Kirda, Engin and Robertson, William K. and Wilson, Christo}, title = {A Longitudinal Analysis of the ads.txt Standard}, booktitle = {Proceedings of the ACM Internet Measurement Conference}, year = {2019}, series = {IMC 2019}, doi = {10.1145/3355369.3355603}, } @inproceedings{papadogiannakis2023_whofunds, author = {Papadogiannakis, Emmanouil and Papadopoulos, Panagiotis and Markatos, Evangelos P. and Kourtellis, Nicolas}, title = {Who Funds Misinformation? A Systematic Analysis of the Ad-related Profit Routines of Fake News Sites}, booktitle = {Proceedings of the ACM Web Conference}, year = {2023}, series = {TheWebConf 2023}, doi = {10.1145/3543507.3583443}, } @inproceedings{papadogiannakis2025_darkside, author = {Papadogiannakis, Emmanouil and Kourtellis, Nicolas and Papadopoulos, Panagiotis and Markatos, Evangelos P.}, title = {Welcome to the Dark Side: Analyzing the Revenue Flows of Fraud in the Online Ad Ecosystem}, booktitle = {Proceedings of the ACM Web Conference}, year = {2025}, series = {TheWebConf 2025}, doi = {10.1145/3696410.3714899}, } @inproceedings{liu2025_fingerprinting, author = {Liu, Zengrui and Dani, Jimmy and Cao, Yinzhi and Wu, Shujiang and Saxena, Nitesh}, title = {The First Early Evidence of the Use of Browser Fingerprinting for Online Tracking}, booktitle = {Proceedings of the ACM Web Conference}, year = {2025}, series = {TheWebConf 2025}, doi = {10.1145/3696410.3714548}, } @inproceedings{zhang2022_harpo, author = {Zhang, Jiang and Psounis, Konstantinos and Haroon, Muhammad and Shafiq, Zubair}, title = {HARPO: Learning to Subvert Online Behavioral Advertising}, booktitle = {Proceedings of the Network and Distributed System Security Symposium}, year = {2022}, series = {NDSS 2022}, url = {https://www.ndss-symposium.org/ndss-paper/auto-draft-209/}, } @inproceedings{papadopoulos2017_paying, author = {Papadopoulos, Panagiotis and Rodríguez, Pablo Rodríguez and Kourtellis, Nicolas and Laoutaris, Nikolaos}, title = {If you are not paying for it, you are the product: how much do advertisers pay to reach you?}, booktitle = {Proceedings of the ACM Internet Measurement Conference}, year = {2017}, series = {IMC 2017}, doi = {10.1145/3131365.3131397}, } @inproceedings{papadogiannakis2022_publisherids, author = {Papadogiannakis, Emmanouil and Papadopoulos, Panagiotis and Markatos, Evangelos P. and Kourtellis, Nicolas}, title = {Leveraging Google's Publisher-Specific IDs to Detect Website Administration}, booktitle = {Proceedings of the ACM Web Conference}, year = {2022}, series = {TheWebConf 2022}, doi = {10.1145/3485447.3512124}, } @inproceedings{sheaib2025_unmasking, author = {Sheaib, Hussein and Feldmann, Anja and Dao, Ha}, title = {Unmasking the Shadows: A Cross-Country Study of Online Tracking in Illegal Movie Streaming Services}, booktitle = {Proceedings on Privacy Enhancing Technologies}, year = {2025}, series = {PoPETs 2025}, doi = {10.56553/popets-2025-0053}, } @inproceedings{vekaria2024_darkpooling, author = {Vekaria, Yash and Nithyanand, Rishab and Shafiq, Zubair}, title = {The Inventory is Dark and Full of Misinformation: Understanding Ad Inventory Pooling in the Ad-Tech Supply Chain}, booktitle = {Proceedings of the IEEE Symposium on Security and Privacy}, year = {2024}, series = {IEEE S\&P 2024}, doi = {10.1109/SP54263.2024.00003}, note = {Not in the site's publication corpus (screened out at abstract stage); cited from the arXiv version 2210.06654v3}, }
What could not be established
- How much of header bidding is still client-side. The only split is February 2019 (17.3 / 34.7 / 48). Every later bids paper is conditioned on the sites that expose the auction, and none reports what fraction of its candidates that was. The page names this as the top open question rather than guessing.
- Adoption of OWNERDOMAIN / MANAGERDOMAIN. Zero papers; not measured here either (it would need a crawl, not a corpus query). Left as the page's “cheapest open measurement”.
- Whether the arXiv v3 figures match the S&P camera-ready. Not checked.
app-ads.txt. Nothing in the seven venues; the page says so and does not reach outside for it.- Precision of the candidate threshold. 15 of the 18 above-threshold papers were substantive (measures or related); all 3 “cites” came in on mention count alone. With the two forced-in papers, 17 of 20. (A first version of this bullet said 18 of 20 and “2 of the 3”; the generic reviewer redid the arithmetic.) Recall below the threshold is unknown for 18 papers; their per-term counts are printed so a later run can read them.
- Why Google's
sellers.jsoncount fell from 1,277,156 (March 2023, per the paper) to 972,929 (this run). Not investigated; the page states both numbers without a trend claim.
Mistakes caught during the run
- A child agent's quotation of a Cook et al. footnote could not be found as given; the sentence exists, spliced across columns. The checker's proximity level was added because of this, and 27 of 167 checks rely on it — which is a statement about
.colsrendering, not about the quotes. - The published “empty 200 body” claim about Google's
sellers.jsonwas wrong. The run'scurldid not follow redirects; the canonical URL is a 302, and the 0-byte redirect body was read as an empty file — first blamed on the User-Agent, then on the URL, then published. The external-currency reviewer reproduced clean 302s and pointed out the script recorded byte counts but no status codes. Both pages, the script and the run's memory note were corrected. Lesson: record%{http_code}and%{redirect_url}, never a byte count alone. - A
WebFetchsummary was quoted as a primary source. The Prebid Server sentence on the first revision was the fetch tool's paraphrase, attributed to a page that does not contain it. Replaced with the sentence that exists, on the page where it exists. - The quote checker's first proximity test was too weak (any-order tokens in a 500-character window). The figures reviewer mutation-tested it: 82 of 509 small numeric mutations passed. Tightened to in-order whole tokens with ≤120 characters between them; three quotes then failed and were re-located as split words across column splices. 24 of 170 checks rely on the proximity level.
- One probe regex carried a case-sensitive flag over a whole alternation, undercounting the phrase real-time bidding (64 → 73 papers). Context-only term; no page count depended on it except the reach table's context row, now corrected.
- The first draft's by-venue sentence claimed the three venues “split it by observable”; counting the labels showed 3 of 7 bids papers at PoPETs, not most. Rewritten with the counts.
- The first draft said “100× lower” for 0.031 vs 4.16 CPM (it is ~134×); now “more than a hundred times”.
- The first draft said two below-threshold papers were read; three were. The report script now prints which.
- The
check_page_numberswhole-page pass initially flagged the live Google figures and a URL path fragment (“2022/04/”) as unaccounted; the figures were moved into the external-check script's output and the footnote now cites the standards page rather than the PDF path.
Review
Four reviewers, all told the context might not be exhaustive and all handed the page text, the report script, its unedited output, the quote-check and external-check scripts with their outputs, and this log. The three focused ones ran in parallel on the frozen first revision (rev 1788368710); their accepted fixes were applied and republished before the generic pass.
| Reviewer | Finding | Action |
|---|---|---|
| figures-vs-script (sonnet) | Report script and quote-check reproduce their committed outputs byte-for-byte. Every corpus figure on the page (5,869 / 41 / 18 / 20 / 16 / 13, the venue and year tables including the 1,047 bucket, the six-family table, the crawl-config, population-source, vantage and artifact counts, the live sellers.json figures) matches the output. The nine-row method table's paper counts and year ranges are derivable from the script's LABELS plus the label table here. No figure names a population other than the one the script computes. | Noted; no change |
| figures-vs-script (sonnet) | Defect. The quote checker's proximity fallback (any-order tokens in a 500-character window) was mutation-tested on a sandboxed copy: 82 of 509 ±1 / ±10% numeric mutations of real quoted figures still passed, including some whose originals are verbatim .cols matches. So “167 of 167 pass” was weaker evidence than it read. | Accepted. Tightened to in-order whole tokens with ≤120 characters between consecutive tokens; 170 of 170 pass on the final run (an intermediate run showed 169 before the last split quote was added), 24 by proximity, and the three quotes that the tighter test rejected were re-located as words split by column splices and are checked as their two halves |
| figures-vs-script (sonnet) | Defect (context term). The real-time bidding / RTB regex carried one case-sensitive flag over the whole alternation; the phrase was undercounted, 64 papers instead of 73 (≥5: 19 → 21). Not a CORE term; no candidate, family, venue or year figure depends on it. | Accepted. Split into a case-insensitive phrase regex and a case-sensitive acronym regex; reach table and Q2 corrected |
| external-currency (sonnet) | Wrong citation. “bid requests from the server rather than the browser” does not appear on the Prebid Server overview page cited (nor in five Wayback snapshots). The sentence that exists is on overview/intro.html: “Use Prebid Server to do the processing rather than the client browser”. | Accepted. Quote and URL replaced on the page; the first revision had quoted a WebFetch paraphrase as if it were the page |
| external-currency (sonnet) | Not reproducible. “Google's canonical sellers.json URL intermittently returns an empty 200 body”: 12 of 12 fetches returned a clean HTTP 302 to the Cloud Storage copy. The external-check script captured byte counts but never a status code, so it could not tell an empty body from an unfollowed redirect. | Accepted — the page was wrong. The run's curl had no -L. Footnote, crawl-configuration bullet, tools-table cell, this page and the run's memory note corrected; the script now prints the status chain and follows the redirect |
| external-currency (sonnet) | Everything else current as of 2026-09-02: ads.txt 1.1 with no 1.2, sellers.json 1.0, SupplyChain 1.0, app-ads.txt 1.0, root-domain / redirect / 7-day cache text verbatim in the spec, buyers.json and ads.cert dormant, Prebid getBidResponses fields, globalVarName / defineGlobal, Prebid.js 11.32.0 with the “11.31.1” release-name mismatch, 68 EasyList prebid rules, HBDetector and HARPO dead with no relocation found by GitHub search, all live tool URLs, Alexa retirement dated on website_selection, Protected Audience withdrawal correctly hedged. | Noted; no change |
| external-currency (sonnet) | Supersession. The EuroS&P 2026 notification paper now has an IEEE Xplore DOI, 10.1109/EuroSP68448.2026.00061. | Accepted. Added to the footnote (DOI resolution to Xplore document 11624241 confirmed here) |
| external-currency (sonnet) | Johnson & Neumann: no peer-reviewed version; a 2025 Crossref record from a research-video platform 404s and is not a supersession. | Noted; the “working paper” framing stands |
| citations-and-quotes (sonnet) | Misattribution. The page said [1Cook, John; Nithyanand, Rishab; Shafiq, Zubair (2020): "Inferring Tracker-Advertiser Relationships in the Online Advertising Ecosystem using Header Bidding", in: Proceedings on Privacy Enhancing Technologies. (DOI)] and [2Musa, Maaz Bin; Nithyanand, Rishab (2022): "ATOM: Ad-network Tomography", in: Proceedings on Privacy Enhancing Technologies. (DOI)] “disabled protections in OpenWPM and say so”; only ATOM does. Cook et al. discuss browsers' default anti-tracking protection as a caveat and never state they disabled it. | Accepted. Sentence rewritten to attribute the statement to ATOM alone |
| citations-and-quotes (sonnet) | Denominator splice. “Of 188 DIRECT entries, 5 could be confirmed; 169 IDs were absent and 418 had a domain mismatch” welds two counts the paper keeps apart (5 of 188 verified; 169 + 418 = 587 “remaining unique direct” entries) and the arithmetic does not close. Confirmed against a clean pypdf extraction: the paper's own wording is the source of the confusion. | Accepted. The page now gives both totals and says the paper does not reconcile them |
| citations-and-quotes (sonnet) | The tightened quote checker produced 3 FAILs at review time where this page claimed 0; the reviewer verified all three as genuine quotes broken by hyphenation merges (“under”+“has” → “underhas”) in the column-repaired text. | Accepted. Those three are now checked as their two verbatim halves; 170 of 170 pass on the final run, 24 by proximity |
| citations-and-quotes (sonnet) | All 18 keys resolve exactly once; no DOI or title duplicates; every added entry's authors and DOI verified. The three author-list doubts recorded above — HARPO's four authors, Lukić's second author (Papadopoulos), Sheaib's hand-filled list — are all correct as published (side-by-side bylines in paper.norm.txt and the PoPETs landing page). check_attributions –prose reproduces the four false-positive SUSPECTs. Sampled figures and denominators in the Pick the Unit and Three Observables tables and all 15 dark-pooling citations check out. | Noted; the “pre-existing hygiene issue” wording about lukic2026_mv3 under Bibliography is withdrawn |
| generic (fable) | All 15 findings accepted; the highest-yield pass. (1) A universal negative the page's own Pick the Unit table contradicted: “none of [the bids papers] reports what fraction of its candidate list” exposed Prebid — [14Liu, Zengrui; Iqbal, Umar; Saxena, Nitesh (2024): "Opted Out, Yet Tracked: Are Regulations Enough to Protect Your Privacy?", in: Proceedings on Privacy Enhancing Technologies. (DOI)] (5,421 of 100K) and [11Zeng, Eric; McAmis, Rachel; Kohno, Tadayoshi; Roesner, Franziska (2022): "What Factors Affect Targeting and Bids in Online Advertising? A Field Measurement Study", in: Proceedings of the ACM Internet Measurement Conference, pp. 210-229. (DOI)] (703 of 10,000) do. | Fixed in the superseded bullet and the What to Report item; the true claim (the client / hybrid / server split among HB sites is unmeasured since 2019) kept |
| generic (fable) | (2) The three non-crawl measuring papers were described from a literal string in the report script (“extension, proxy, industrial logs”) — the third is a cites-only paper; the real three are two passive proxies and one extension. Also “fraud detected from an ad network's own bidding logs” misdescribed the CCS 2024 app-analysis paper. | Fixed on the page; the script now prints the slugs with crawlConfig === null instead of a string |
| generic (fable) | (3) “Every PETS paper since” named an IMC and a TheWebConf paper. | Fixed — “every paper in these venues” |
| generic (fable) | (4) The embedded external-check output was rate-limited (“API rate limit exceeded … created None”) under an External sources table asserting the values as Accepted. | Fixed — authenticated re-run embedded; the script refuses to print a rate-limited value and exits non-zero |
| generic (fable) | (5) Precision arithmetic: “18 of 20 … 2 of the 3 cites above threshold” — all three cites were above threshold and one forced-in paper is related; 17 of 20, threshold precision 15 of 18. | Fixed |
| generic (fable) | (6) The 48 / 34.7 / 17.3 header-bidding split was given the unit “HB sites” three times; the paper never states whether it counts sites or auctions. | Fixed in all three places |
| generic (fable) | (7) “Not because prices rose” compared a median bid for one slot size from a stateless crawler with a median winning bid from real users on ten news sites before Christmas, and drew a causal conclusion no paper makes; “real users beat crawlers here more than anywhere else on this site” was a comparison the site has not made. | Fixed — both figures now carry their units and the confounds are named |
| generic (fable) | (8) Revision history (“this page's first revision mistook…”, “caught by the external-currency reviewer”) had leaked into two footnotes and a bullet on the content page. | Fixed — removed; it lives here |
| generic (fable) | (9) “Three years old” for the August-2022 ads.txt 1.1 fields; the intersection shift dated 2022, 2023 and 2023–2025 in three places; “the field has settled” resting on four papers, three from one group. | Fixed — four years; dated consistently from the 2022 crawl with the in-corpus start in 2023; the one-group dependence stated |
| generic (fable) | (10) Four universals without the “in these venues” qualifier (“no paper, in or out of the corpus”; “the only paper anywhere in this literature”; “nobody has published the join”). | Fixed — qualified |
| generic (fable) | (11) “Every instrumenting paper since 2020” probes pbjs.version (three do; Zeng, ATOM and HARPO do not say); “every treatment design runs a control persona” (Zeng is an observational field study). | Fixed — named papers; the family row now covers the field-study case |
| generic (fable) | (12) Bashir adoption row said the denominator “grew to 240K”; the percentage is over a 100K set and 240K is the union crawled. | Fixed |
| generic (fable) | (13) “A Firefox profile with tracking protection on sees no auction” had no evidence (ETP uses Disconnect lists, not EasyList). | Fixed — stated as unmeasured |
| generic (fable) | (14) Stale numbers on this page after the quote-checker change (27 vs 24; 500 vs 750-character window; 169 vs 170). | Fixed |
| generic (fable) | (15) Minor: “18 do so substantively” (3 are cites); the 2010–2016 zero explained by ads.txt's birth alone; “every exchange refused” without “they contacted”; header-bidder-expert called maintained (last push 2022); this page's run table already claimed the generic pass had run. | All fixed |
Report output, unedited
- report_ads_txt-output.txt
=== PASS A — corpus reach === papers with a readable paper.cols.txt: 5869 <-- denominator for pass A term >=1 papers >=5 papers ads.txt 12 0.2% 8 0.1% app-ads.txt 3 0.1% 1 0.0% sellers.json 5 0.1% 4 0.1% header bidding 24 0.4% 7 0.1% prebid 11 0.2% 6 0.1% openrtb 13 0.2% 2 0.0% schain / supply chain object 0 0.0% 0 0.0% buyers.json 0 0.0% 0 0.0% ads.cert 2 0.0% 0 0.0% nURL / win notice 4 0.1% 2 0.0% real-time bidding (incl. RTB) 73 1.2% 21 0.4% dark pool(ing) 8 0.1% 4 0.1% any CORE term (ads.txt, app-ads.txt, sellers.json, header bidding, prebid, openrtb, schain / supply chain object) at least once: 41 (0.7%) CORE terms summed >= 5: 18 (0.3%) === PASS A — by year, CORE terms (2025 thin at the edges; 2026 provisional: CCS/IMC 2026 not held, IEEE S&P/WWW 2026 incompletely indexed) === year papers core>=1 core>=5 ads.txt>=1 sellers.json>=1 header-bidding>=1 2010–2016 bucket (as printed on the page): 1047 papers, 0 with any core mention 2010 118 0 0 0 0 0 2011 116 0 0 0 0 0 2012 151 0 0 0 0 0 2013 125 0 0 0 0 0 2014 165 0 0 0 0 0 2015 190 0 0 0 0 0 2016 182 0 0 0 0 0 2017 232 1 0 0 0 0 2018 254 2 1 0 0 0 2019 402 4 2 1 1 2 2020 402 5 1 0 0 4 2021 380 3 2 2 0 1 2022 546 8 3 2 0 6 2023 720 4 2 1 1 3 2024 701 6 2 2 0 3 2025 770 7 4 4 3 4 2026 415 1 1 0 0 1 === PASS A — by venue (denominator: that venue's papers with full text) === CCS 989 papers 3 core>=1 (0.3%) 2 core>=5 (0.2%) IEEE-SP 779 papers 1 core>=1 (0.1%) 0 core>=5 (0.0%) IMC 637 papers 9 core>=1 (1.4%) 5 core>=5 (0.8%) NDSS 701 papers 1 core>=1 (0.1%) 1 core>=5 (0.1%) PETS 510 papers 12 core>=1 (2.4%) 5 core>=5 (1.0%) USENIX 1410 papers 2 core>=1 (0.1%) 0 core>=5 (0.0%) WWW 843 papers 13 core>=1 (1.5%) 5 core>=5 (0.6%) === PASS B — candidate set and hand labels === candidates (CORE terms summed >= 5, plus 2 forced in): 20 labelled "measures" (reads ads.txt/sellers.json or observes bids): 16 labelled "related" (sibling method, no ads.txt): 1 labelled "cites only": 3 UNLABELLED RESIDUE: 0 labels written for papers NOT in the candidate set: 0 === PASS B — below-threshold residue: papers with 1–4 CORE mentions === 21 papers; 3 of them read (all passing mentions), 18 NOT read for this page. Columns: ads.txt | app-ads.txt | sellers.json | header bidding | prebid | openrtb not read IMC/2018/tracing-cross-border-web-tracking 0 | 0 | 0 | 0 | 0 | 2 not read WWW/2019/before-and-after-gdpr-the-changes-in-third-party-presence-at-public-and-private 0 | 0 | 0 | 4 | 0 | 0 not read WWW/2019/nameles-an-intelligent-system-for-real-time-filtering-of-invalid-ad-traffic 0 | 0 | 0 | 0 | 0 | 4 not read IEEE-SP/2020/do-cookie-banners-respect-my-choice-measuring-legal-compliance-of-banners-from-i 0 | 0 | 0 | 0 | 0 | 4 not read PETS/2020/the-price-is-not-right-comparing-privacy-in-free-and-paid-apps 0 | 0 | 0 | 1 | 0 | 0 read WWW/2020/apophanies-or-epiphanies-how-crawlers-impact-our-understanding-of-the-web 0 | 0 | 0 | 2 | 0 | 0 not read WWW/2020/stop-tracking-me-bro-differential-tracking-of-user-demographics-on-hyper-partisa 0 | 0 | 0 | 2 | 0 | 0 not read WWW/2021/user-tracking-in-the-post-cookie-era-how-websites-bypass-gdpr-consent-to-track-u 0 | 0 | 0 | 1 | 0 | 0 not read CCS/2022/cart-ology-intercepting-targeted-advertising-via-ad-network-identity-entanglemen 0 | 0 | 0 | 1 | 0 | 0 read PETS/2022/setting-the-bar-low-are-websites-complying-with-the-minimum-requirements-of-the 3 | 0 | 0 | 0 | 0 | 0 not read USENIX/2022/khaleesi-breaker-of-advertising-and-tracking-request-chains 0 | 0 | 0 | 1 | 0 | 0 not read WWW/2022/investigating-advertisers-domain-changing-behaviors-and-their-impacts-on-ad-bloc 0 | 0 | 0 | 1 | 0 | 0 not read PETS/2023/usability-and-enforceability-of-global-privacy-control 0 | 0 | 0 | 0 | 0 | 3 not read WWW/2023/the-hitchhikers-guide-to-facebook-web-tracking-with-invisible-pixels-and-click-i 0 | 0 | 0 | 1 | 0 | 0 not read PETS/2024/client-side-and-server-side-tracking-on-meta-effectiveness-and-accuracy 0 | 0 | 0 | 0 | 1 | 0 not read PETS/2024/interest-disclosing-mechanisms-for-advertising-are-privacy-exposing-not-preservi 0 | 0 | 0 | 1 | 0 | 0 read PETS/2024/johnny-still-cant-opt-out-assessing-the-iab-ccpa-compliance-framework 2 | 0 | 0 | 0 | 2 | 0 not read USENIX/2024/fledging-will-continue-until-privacy-improves-empirical-analysis-of-googles-priv 0 | 0 | 0 | 3 | 0 | 0 not read IMC/2025/cookieguard-characterizing-and-isolating-the-first-party-cookie-jar 0 | 0 | 0 | 1 | 0 | 0 not read IMC/2025/somesite-i-used-to-crawl-awareness-agency-and-efficacy-in-protecting-content-cre 2 | 0 | 0 | 0 | 0 | 0 not read PETS/2025/echoes-of-privacy-uncovering-the-profiling-practices-of-voice-assistants 0 | 0 | 0 | 2 | 0 | 0 === PASS B — the 16 measuring papers, by family === 7 43.8% hb-instrument 3 18.8% adstxt-instrument 2 12.5% rtb-price 2 12.5% adstxt-object 1 6.3% hb-object 1 6.3% hb-sampling === PASS B — the same set, by year and family (core mentions in brackets) === 2017 IMC rtb-price [ 4] if-you-are-not-paying-for-it-you-are-the-product-how-much-do-advertisers-pay-to 2018 WWW rtb-price [ 6] the-cost-of-digital-advertisement-comparing-user-and-advertiser-views 2019 IMC adstxt-object [249] a-longitudinal-analysis-of-the-ads-txt-standard 2019 IMC hb-object [ 64] no-more-chasing-waterfalls-a-measurement-study-of-the-header-bidding-ad-ecosyste 2020 PETS hb-instrument [ 37] inferring-tracker-advertiser-relationships-in-the-online-advertising-ecosystem-u 2022 IMC hb-instrument [ 41] what-factors-affect-targeting-and-bids-in-online-advertising-a-field-measurement 2022 NDSS hb-instrument [ 5] auto-draft-209 2022 PETS hb-instrument [ 27] atom-ad-network-tomography 2023 IMC hb-instrument [ 20] tracking-profiling-and-ad-targeting-in-the-alexa-echo-smart-speaker-ecosystem 2023 WWW adstxt-instrument [ 43] who-funds-misinformation-a-systematic-analysis-of-the-ad-related-profit-routines 2024 PETS hb-instrument [ 56] opted-out-yet-tracked-are-regulations-enough-to-protect-your-privacy 2025 PETS adstxt-instrument [ 31] unmasking-the-shadows-a-cross-country-study-of-online-tracking-in-illegal-movie 2025 WWW adstxt-instrument [ 75] before-after-the-effect-of-eus-2022-code-of-practice-on-disinformation 2025 WWW hb-instrument [ 30] the-first-early-evidence-of-the-use-of-browser-fingerprinting-for-online-trackin 2025 WWW adstxt-object [164] welcome-to-the-dark-side-analyzing-the-revenue-flows-of-fraud-in-the-online-ad-e 2026 PETS hb-sampling [ 7] privacy-vs-profit-the-impact-of-googles-manifest-version-3-mv3-update-on-ad-bloc === PASS B — first / most recent year of each family (in the seven venues) === rtb-price first 2017, most recent 2018, papers 2 adstxt-object first 2019, most recent 2025, papers 2 hb-object first 2019, most recent 2019, papers 1 hb-instrument first 2020, most recent 2025, papers 7 adstxt-instrument first 2023, most recent 2025, papers 3 hb-sampling first 2026, most recent 2026, papers 1 === PASS C — extraction fields for the 16 measuring papers === of which have a crawlConfig record: 13 without a crawlConfig record (3): IMC/2017/if-you-are-not-paying-for-it-you-are-the-product-how-much-do-advertisers-pay-to temporal.mode=passive-collection,active-probing WWW/2018/the-cost-of-digital-advertisement-comparing-user-and-advertiser-views temporal.mode=passive-collection IMC/2022/what-factors-affect-targeting-and-bids-in-online-advertising-a-field-measurement temporal.mode=live-crawl crawlConfig.statefulness (denominator: 13 measuring papers that crawled) 6 46.2% stateless 5 38.5% stateful 1 7.7% not-stated <-- sentinel, not an answer 1 7.7% both crawlConfig.consentAction (denominator: 13 measuring papers that crawled) 5 38.5% no-interaction 3 23.1% not-stated <-- sentinel, not an answer 2 15.4% accept-all 1 7.7% accept-and-reject 1 7.7% cmp-specific-choices 1 7.7% not-applicable <-- sentinel, not an answer crawlConfig.interactionDepth (denominator: 13 measuring papers that crawled) 4 30.8% landing-plus-subpages 4 30.8% landing-page-only 3 23.1% single-target-page 2 15.4% not-stated <-- sentinel, not an answer crawlConfig.headless (denominator: 13 measuring papers that crawled) 10 76.9% not-stated <-- sentinel, not an answer 2 15.4% headful 1 7.7% headless temporal.mode (denominator: 16 measuring papers) 14 87.5% live-crawl 4 25.0% active-probing 2 12.5% passive-collection 2 12.5% existing-dataset 1 6.3% web-archive artifacts.availability (denominator: 16 measuring papers) 10 62.5% public 4 25.0% none-mentioned <-- sentinel 2 12.5% promised-not-yet-available === PASS C — population source lists named by the measuring papers (free text, paper-counted, folded by a short alias rule; residue printed) === 8 Alexa 5 Tranco 3 MediaBias/FactCheck 2 NextDNS piracy list 1 Prolific 1 BuiltWith unmapped residue (30): !! IMC/2017/if-you-are-not-paying-for-it-you-are-the-product-how-much-do-advertisers-pay-to: custom volunteer proxy dataset !! IMC/2017/if-you-are-not-paying-for-it-you-are-the-product-how-much-do-advertisers-pay-to: custom volunteer proxy dataset !! IMC/2017/if-you-are-not-paying-for-it-you-are-the-product-how-much-do-advertisers-pay-to: controlled ad-campaigns in Spain !! IMC/2017/if-you-are-not-paying-for-it-you-are-the-product-how-much-do-advertisers-pay-to: controlled ad-campaign A1 !! IMC/2017/if-you-are-not-paying-for-it-you-are-the-product-how-much-do-advertisers-pay-to: controlled ad-campaign A2 !! WWW/2018/the-cost-of-digital-advertisement-comparing-user-and-advertiser-views: 1270 volunteering users !! WWW/2018/the-cost-of-digital-advertisement-comparing-user-and-advertiser-views: 1270 volunteering users' mobile HTTP traffic !! NDSS/2022/auto-draft-209: AOL dataset !! NDSS/2022/auto-draft-209: TrackThis !! NDSS/2022/auto-draft-209: custom synthetic persona generator !! NDSS/2022/auto-draft-209: custom synthetic persona generator !! NDSS/2022/auto-draft-209: AOL dataset !! PETS/2022/atom-ad-network-tomography: custom curated interest-group website lists !! PETS/2022/atom-ad-network-tomography: custom persona set !! PETS/2022/atom-ad-network-tomography: custom ATOM test-deployment personas !! IMC/2023/tracking-profiling-and-ad-targeting-in-the-alexa-echo-smart-speaker-ecosystem: dataset released in [30] !! WWW/2023/who-funds-misinformation-a-systematic-analysis-of-the-ad-related-profit-routines: Columbia Journalism Review (CJR) !! WWW/2023/who-funds-misinformation-a-systematic-analysis-of-the-ad-related-profit-routines: Golbeck et al. !! WWW/2023/who-funds-misinformation-a-systematic-analysis-of-the-ad-related-profit-routines: Zhou et al. !! WWW/2023/who-funds-misinformation-a-systematic-analysis-of-the-ad-related-profit-routines: sources of Section 3.1 !! PETS/2025/unmasking-the-shadows-a-cross-country-study-of-online-tracking-in-illegal-movie: Piracy Megathread on Reddit !! WWW/2025/before-after-the-effect-of-eus-2022-code-of-practice-on-disinformation: previous academic work [45] !! WWW/2025/before-after-the-effect-of-eus-2022-code-of-practice-on-disinformation: previous academic work [55] !! WWW/2025/before-after-the-effect-of-eus-2022-code-of-practice-on-disinformation: FakeNewsNet !! WWW/2025/before-after-the-effect-of-eus-2022-code-of-practice-on-disinformation: custom merged list !! WWW/2025/before-after-the-effect-of-eus-2022-code-of-practice-on-disinformation: Science Feedback !! WWW/2025/the-first-early-evidence-of-the-use-of-browser-fingerprinting-for-online-trackin: Google search results !! WWW/2025/the-first-early-evidence-of-the-use-of-browser-fingerprinting-for-online-trackin: custom seed list !! WWW/2025/welcome-to-the-dark-side-analyzing-the-revenue-flows-of-fraud-in-the-online-ad-e: WHOIS records from domains inside pools !! WWW/2025/welcome-to-the-dark-side-analyzing-the-revenue-flows-of-fraud-in-the-online-ad-e: hidden-intermediary client websites === PASS C — vantage locations, folded (geo.mjs); residue printed === measuring papers stating at least one vantage location: 11 of 16 6 United States 3 Europe 3 Germany 2 Spain 1 Australia 1 Brazil 1 India 1 South Africa 1 Sweden 1 Netherlands 1 Greece unmapped residue (1): !! IMC/2017/if-you-are-not-paying-for-it-you-are-the-product-how-much-do-advertisers-pay-to: same country === PASS C — measured results: detection[].prevalence on tuples naming an observable === The denominator is NOT in this field: it has to be read out of the paper. -- IMC/2017/if-you-are-not-paying-for-it-you-are-the-product-how-much-do-advertisers-pay-to [RTB price notifications] share of mobile RTB ads => approximately 26% used encrypted price nURLs [Encrypted RTB prices] relative median price => encrypted prices were approximately 1.7× higher than cleartext prices [User advertising cost] annual cumulative CPM per user => median user cost was approximately 25 CPM; 73% cost under 100 CPM [RTB traffic composition] share by operating system => (none reported) -- WWW/2018/the-cost-of-digital-advertisement-comparing-user-and-advertiser-views [RTB advertiser costs] cost per impression and total CPM => 44,997 charge prices across users and over 770 advertisers and ad-networks [User versus advertiser monetary cost] average cost per impression => median user paid 0.0022 Euros per ad versus 0.00071 Euros for advertisers [RTB market concentration] portion of RTB auctions won => top five companies won 67.7% of auctions -- IMC/2019/a-longitudinal-analysis-of-the-ads-txt-standard [ads.txt adoption] share of websites adopting ads.txt => 20% of Alexa Top-100K websites; 62% of RTB-ad publishers by April 2019 [ads.txt record errors] share of publishers with invalid records => 10% of publishers had at least one invalid record [RTB advertisements] number of RTB ad inclusion chains => 135M RTB ad inclusion chains [ads.txt compliance] weighted and unweighted non-compliant tuple percentage => Percentage of completely compliant publishers rose from 46% in April 2018 to 77% in April 2019 [ad-exchange domains] unique valid seller domains => 1,035 unique seller domains -- IMC/2019/no-more-chasing-waterfalls-a-measurement-study-of-the-header-bidding-ad-ecosyste [Header-bidding adoption] share of crawled websites => 14.28% of top websites [Header-bidding auctions] number of auctions => 798,629 auctions detected [Received bids] number of bids => 241,392 bids detected [Header-bidding latency] median latency and percentiles => median about 600ms; 10% exceed 3 seconds [Late bids] share of bids arriving too late => 10% of auctions have 80% or more late bids [Ad-slot bid prices] CPM bid price => 300x250 median cost 0.031 CPM -- PETS/2020/inferring-tracker-advertiser-relationships-in-the-online-advertising-ecosystem-u [advertiser bidding behavior] median CPM bid values and intent/no-intent bid ratios => (none reported) [tracker–advertiser relationships] classification accuracy => 75–83% accuracy; 15 relationships inferred, including 11 not detected by cookie syncing [zero bidding] percentage of zero bids => over 22% of all bids; 24.21% for no-intent and 19.44% for intent personas -- IMC/2022/what-factors-affect-targeting-and-bids-in-online-advertising-a-field-measurement [winning bid values] mean and median CPM => Mean $5.47 CPM; median $4.16 CPM across rendered winning bids [demographic effects on bids] estimated CPM difference and significance => Male participants received $0.58 CPM lower bids than women [self-reported retargeting] share of ads reporting prior visit => Participants answered “Yes” for 18.3% of ads [retargeting-associated bid premiums] estimated CPM increase => Prior-visit “yes” responses increased bids by $1.07 CPM [extreme bid outliers] share of ads above threshold => 127 ads, or the top 1.8% by bid value, exceeded $20 CPM -- NDSS/2022/auto-draft-209 [ad-targeting bid distortion] L3 increase in high bids; L4 average bid-value ratio => H ARPO increased high bids by 43.30% and bid values by 6.28×. -- PETS/2022/atom-ad-network-tomography [validation of inferred sharing relationships] validated relationships => 9 of 11 inferred relationships were validated. -- IMC/2023/tracking-profiling-and-ad-targeting-in-the-alexa-echo-smart-speaker-ecosystem [Cookie syncing] number of advertisers and third parties => 41 advertisers synced cookies with Amazon and 247 other third parties [Ad bid targeting] relative CPM bid values => Bids reached 30× the vanilla mean for Health & Fitness and 27× for Fashion & Style -- WWW/2023/who-funds-misinformation-a-systematic-analysis-of-the-ad-related-profit-routines [direct ad-network relationships] share of fake news websites => 80.8% Google, 49% IndexExchange, and 52.5% AppNexus [seller relationships] share of fake news websites => 67.71–73.73% had reseller relationships with major ad networks -- PETS/2024/opted-out-yet-tracked-are-regulations-enough-to-protect-your-privacy [Advertiser data usage after opt-out] advertiser bid CPM distributions => Most personas received higher bids than control after opting out under GDPR and CCPA. [Server-side data sharing] mean bid CPM relative to control => Advertisers not explicitly leaked user interests often still bid higher than control. [Pre-opt-out tracking] bids and cookie syncing events => Advertisers continued using data and syncing cookies after pre-opt-out. [CMP and prebid deployment] number of websites => 352 websites supported selected CMPs and client-side header bidding. -- PETS/2025/unmasking-the-shadows-a-cross-country-study-of-online-tracking-in-illegal-movie [Shared website administration] shared identifiers and site pairs => 17 IDs shared among multiple IMSS sites [Authorized digital sellers] share of sites serving valid ads.txt => 35 sites (9.1%); 27 of 35 list Google DIRECT -- WWW/2025/before-after-the-effect-of-eus-2022-code-of-practice-on-disinformation [direct ad-network relationships] number and percentage of websites with verified relationships => 461 misinformation websites had at least one relationship in the longitudinal intersection. -- WWW/2025/the-first-early-evidence-of-the-use-of-browser-fingerprinting-for-online-trackin [fingerprinting-based ad tracking] bid values, trends, means, medians, and maxima => Substantial bid-value differences after changing browser fingerprints. -- WWW/2025/welcome-to-the-dark-side-analyzing-the-revenue-flows-of-fraud-in-the-online-ad-e [identifier pooling] number of pools and pool size => 185,535 distinct pools [dark pools] share of objectionable-content pools => 59.6% of misinformation pools and 82% of piracy pools were dark pools [identifier pooling involving misinformation] participating websites and pools => 211 fake-news websites participated in pools; over 5,000 pools contained misinformation websites [identifier pooling involving piracy] participating websites and pools => 121 piracy websites participated in pools; over 2,000 pools contained piracy websites [hidden intermediaries] number of verified ad networks => 33 ad networks were falsely registered as publishers [hidden-intermediary clients] number of client websites => 167 fake-news, 19 piracy, and 4 illegal websites [ads.txt relationship mismatches] mismatched identifiers and networks => over 26,000 identifiers issued by 421 advertising networks -- PETS/2026/privacy-vs-profit-the-impact-of-googles-manifest-version-3-mv3-update-on-ad-bloc (no matching detection tuple) === PASS C — artifact links the measuring papers say are their own (artifacts.links[].belongsToAuthors) === IMC/2017/if-you-are-not-paying-for-it-you-are-the-product-how-much-do-advertisers-pay-to (none flagged as the authors' own) WWW/2018/the-cost-of-digital-advertisement-comparing-user-and-advertiser-views (none flagged as the authors' own) IMC/2019/a-longitudinal-analysis-of-the-ads-txt-standard dataset https://personalization.ccs.neu.edu/Projects/Adstxt/ source-code https://github.com/sajjadium/DeepCrawling IMC/2019/no-more-chasing-waterfalls-a-measurement-study-of-the-header-bidding-ad-ecosyste source-code https://www.github.com/mipach/HBDetector PETS/2020/inferring-tracker-advertiser-relationships-in-the-online-advertising-ecosystem-u (none flagged as the authors' own) IMC/2022/what-factors-affect-targeting-and-bids-in-online-advertising-a-field-measurement (none flagged as the authors' own) NDSS/2022/auto-draft-209 source-code https://github.com/bitzj2015/Harpo-NDSS22 PETS/2022/atom-ad-network-tomography dataset https://vitalstatistix.cs.uiowa.edu:2443/maaz/atom-archive IMC/2023/tracking-profiling-and-ad-targeting-in-the-alexa-echo-smart-speaker-ecosystem code-and-data https://privsec-research.github.io/alexaechos WWW/2023/who-funds-misinformation-a-systematic-analysis-of-the-ad-related-profit-routines source-code https://gitlab.com/papamano/scrape-titan code-and-data https://gitlab.com/papamano/who-funds-misinformation PETS/2024/opted-out-yet-tracked-are-regulations-enough-to-protect-your-privacy (none flagged as the authors' own) PETS/2025/unmasking-the-shadows-a-cross-country-study-of-online-tracking-in-illegal-movie code-and-data https://doi.org/10.17617/3.STVMDI WWW/2025/before-after-the-effect-of-eus-2022-code-of-practice-on-disinformation dataset https://gitlab.com/papamano/before-after-data WWW/2025/the-first-early-evidence-of-the-use-of-browser-fingerprinting-for-online-trackin dataset https://tamucs-my.sharepoint.com/:f:/g/personal/lzr_tamu_edu/EtA94fEfURxHsH6Qixvrvn4BnLJWHzMoM_EHeF4Vx3n78A?e=xhavnq WWW/2025/welcome-to-the-dark-side-analyzing-the-revenue-flows-of-fraud-in-the-online-ad-e code-and-data https://gitlab.com/papamano/welcome-to-the-dark-side web-demo-or-service https://adsparency.ics.forth.gr/ PETS/2026/privacy-vs-profit-the-impact-of-googles-manifest-version-3-mv3-update-on-ad-bloc (none flagged as the authors' own) === PASS D — the IEEE S&P 2024 dark-pooling paper: in the venue index, screened out, not in the corpus === venue index (corpus2/.meta/IEEE-2024.json): PRESENT — The Inventory is Dark and Full of Misinformation: Understanding Ad Inventory Pooling in the Ad-Tech Supply Chain. — doi 10.1109/sp54263.2024.00003 screening label (labels/run1/labels.jsonl): {"securityMeasurement":false,"privacyMeasurement":false,"manualAnalysis":false,"domains":[],"crawlers":[],"laws":[],"darkPatterns":false,"model":"gpt-5.6-luna"} extraction record: ABSENT; full text on disk: ABSENT => every field of the label is false/empty, so the selection rule ("any field set") excluded it. Cited on the page from the arXiv text (2210.06654v3), not from the corpus.
References
- [1]
- Cook, John; Nithyanand, Rishab; Shafiq, Zubair (2020): "Inferring Tracker-Advertiser Relationships in the Online Advertising Ecosystem using Header Bidding", in: Proceedings on Privacy Enhancing Technologies. (DOI)
- [2]
- Musa, Maaz Bin; Nithyanand, Rishab (2022): "ATOM: Ad-network Tomography", in: Proceedings on Privacy Enhancing Technologies. (DOI)
- [3]
- Papadopoulos, Panagiotis; Rodríguez, Pablo Rodríguez; Kourtellis, Nicolas; Laoutaris, Nikolaos (2017): "If you are not paying for it, you are the product: how much do advertisers pay to reach you?", in: Proceedings of the ACM Internet Measurement Conference. (DOI)
- [4]
- Papadogiannakis, Emmanouil; Papadopoulos, Panagiotis; Markatos, Evangelos P.; Kourtellis, Nicolas (2022): "Leveraging Google's Publisher-Specific IDs to Detect Website Administration", in: Proceedings of the ACM Web Conference. (DOI)
- [5]
- Bashir, Muhammad Ahmad; Arshad, Sajjad; Kirda, Engin; Robertson, William K.; Wilson, Christo (2019): "A Longitudinal Analysis of the ads.txt Standard", in: Proceedings of the ACM Internet Measurement Conference. (DOI)
- [6]
- Papadogiannakis, Emmanouil; Kourtellis, Nicolas; Papadopoulos, Panagiotis; Markatos, Evangelos P. (2025): "Welcome to the Dark Side: Analyzing the Revenue Flows of Fraud in the Online Ad Ecosystem", in: Proceedings of the ACM Web Conference. (DOI)
- [7]
- Papadogiannakis, Emmanouil; Papadopoulos, Panagiotis; Markatos, Evangelos P.; Kourtellis, Nicolas (2023): "Who Funds Misinformation? A Systematic Analysis of the Ad-related Profit Routines of Fake News Sites", in: Proceedings of the ACM Web Conference. (DOI)
- [8]
- Papadogiannakis, Emmanouil; Papadopoulos, Panagiotis; Kourtellis, Nicolas; Markatos, Evangelos P. (2025): "Before & After: The Effect of EU's 2022 Code of Practice on Disinformation", in: Proceedings of the ACM Web Conference. (DOI)
- [9]
- Sheaib, Hussein; Feldmann, Anja; Dao, Ha (2025): "Unmasking the Shadows: A Cross-Country Study of Online Tracking in Illegal Movie Streaming Services", in: Proceedings on Privacy Enhancing Technologies. (DOI)
- [10]
- Pachilakis, Michalis; Papadopoulos, Panagiotis; Markatos, Evangelos P.; Kourtellis, Nicolas (2019): "No More Chasing Waterfalls: A Measurement Study of the Header Bidding Ad-Ecosystem", in: Proceedings of the ACM Internet Measurement Conference. (DOI)
- [11]
- Zeng, Eric; McAmis, Rachel; Kohno, Tadayoshi; Roesner, Franziska (2022): "What Factors Affect Targeting and Bids in Online Advertising? A Field Measurement Study", in: Proceedings of the ACM Internet Measurement Conference, pp. 210-229. (DOI)
- [12]
- Zhang, Jiang; Psounis, Konstantinos; Haroon, Muhammad; Shafiq, Zubair (2022): "HARPO: Learning to Subvert Online Behavioral Advertising", in: Proceedings of the Network and Distributed System Security Symposium. (Link)
- [13]
- Iqbal, Umar; Bahrami, Pouneh Nikkhah; Trimananda, Rahmadi; Cui, Hao; Gamero-Garrido, Alexander; Dubois, Daniel J.; Choffnes, David R.; Markopoulou, Athina; Roesner, Franziska; Shafiq, Zubair (2023): "Tracking, Profiling, and Ad Targeting in the Alexa Echo Smart Speaker Ecosystem", in: Proceedings of the ACM Internet Measurement Conference. (DOI)
- [14]
- Liu, Zengrui; Iqbal, Umar; Saxena, Nitesh (2024): "Opted Out, Yet Tracked: Are Regulations Enough to Protect Your Privacy?", in: Proceedings on Privacy Enhancing Technologies. (DOI)
- [15]
- Liu, Zengrui; Dani, Jimmy; Cao, Yinzhi; Wu, Shujiang; Saxena, Nitesh (2025): "The First Early Evidence of the Use of Browser Fingerprinting for Online Tracking", in: Proceedings of the ACM Web Conference. (DOI)
- [16]
- Lukić, Karlo; Papadopoulos, Lazaros (2026): "Privacy vs. Profit: The Impact of Google's Manifest Version 3 (MV3) Update on Ad Blocker Effectiveness", in: Proceedings on Privacy Enhancing Technologies. (Link)
- [17]
- Papadopoulos, Panagiotis; Kourtellis, Nicolas; Markatos, Evangelos P. (2018): "The Cost of Digital Advertisement: Comparing User and Advertiser Views", in: Proceedings of the ACM Web Conference. (DOI)
- [18]
- Poteat, Tara; Li, Frank (2021): "Who You Gonna Call? An Empirical Evaluation of Website security.txt Deployment", in: Proceedings of the ACM Internet Measurement Conference. (DOI)
- [19]
- Vekaria, Yash; Nithyanand, Rishab; Shafiq, Zubair (2024): "The Inventory is Dark and Full of Misinformation: Understanding Ad Inventory Pooling in the Ad-Tech Supply Chain", in: Proceedings of the IEEE Symposium on Security and Privacy. Not in the site's publication corpus (screened out at abstract stage); cited from the arXiv version 2210.06654v3 (DOI)
