Reproduction kit
These files recompute the block-list cross-check and the ad-flag counts in What a free browser game really downloads. They need Python 3 and nothing else.
Start with README.md. The kit also reads entities.json and supplement.csv from the study folder.
- README.md: How to run the kit, what each file is, and the definitions used.
- RESULTS.md: The article's figures set against the reproduction, one by one.
- requests-noquery.csv.gz: Every request of every load (3.1 MB). Addresses are published without their parameters, apart from the two ad flags.
- fetch_lists.py: Rebuilds the EasyList and EasyPrivacy lists at the pinned commit.
- crosscheck.py: Compares our advertising and tracking labels with the lists.
- count_ad_flags.py: Counts the non-personalised and child-directed flags on ad requests.
- build_requests_table.py: Builds the request table from a folder of captures.
- studylib.py: Shared functions used by the scripts above.
- public_suffix_list.dat: The Public Suffix List, used to group addresses by domain.
- summary.json: Output: the cross-check totals.
- crosscheck.csv: Output: the verdict for each domain.
- ad_flags.csv: Output: ad-flag counts per portal.
- ad_flag_requests.csv: Output: each ad-server request and its flags.
- url_scan_report_noquery.json: The check that the published table holds no private details.
Data free to reuse under CC BY 4.0. If a figure looks wrong, email [email protected].