This repository contains the source code used in our privacy and utility analysis of the Topics API for the Web from the Privacy Sandbox.
With the Topics API for the Web, Google aims to replace third-party cookies for personalized advertising. Find more details about our analysis in our paper Interest-disclosing Mechanisms for Advertising are Privacy-Exposing (not Preserving):
@inproceedings{topicsweb24_beugin,
title={Interest-disclosing Mechanisms for Advertising are Privacy-Exposing (not Preserving)},
author={Yohan Beugin and Patrick McDaniel},
booktitle={Proceedings on {Privacy} {Enhancing} {Technologies} {Symposium} ({PETS})},
year={2024},
month={july},
doi={10.56553/popets-2024-0004}
}Requirement: Docker Engine
-
Clone this topics_analysis repository and the sandbox_dependencies submodule at once with:
git clone --recurse-submodules git@github.com:yohhaan/topics_analysis.git(SSH)git clone --recurse-submodules https://github.com/yohhaan/topics_analysis.git(HTTPS)
-
Note: the
.devcontainer/directory contains the config for integration with VS Code (see guide here). -
Then, follow either set of instructions (or install dependencies manually):
Using the Docker image from the Container Registry
This GitHub workflow automatically builds and pushes the Docker image to GitHub's Container Registry when the
Dockerfileor therequirements.txtfiles are modified.
- Pull the Docker image:
docker pull ghcr.io/yohhaan/topics_analysis:main
- Launch the Docker container, attach the current working directory (i.e., run from the root of the cloned git repository) as a volume, set the context to be that volume, and provide an interactive bash terminal:
docker run --rm -it -v ${PWD}:/workspaces/topics_analysis \ -w /workspaces/topics_analysis \ --entrypoint bash ghcr.io/yohhaan/topics_analysis:main
Using a locally built Docker image
- Build the Docker image:
docker build -t topics_analysis:main .
- Launch the Docker container, attach the current working directory (i.e., run from the root of the cloned git repository) as a volume, set the context to be that volume, and provide an interactive bash terminal:
docker run --rm -it -v ${PWD}:/workspaces/topics_analysis \ -w /workspaces/topics_analysis \ --entrypoint bash topics_analysis:main
Note: some commands to reproduce our results may take a long time to execute depending on the amount of resources of your machine. We recommend running the above command to deploy a Docker container in a screen session that you can then detach and attach to your terminal as needed.
- Fetch the required Privacy Sandbox dependencies:
cd sandbox_dependencies
./fetch_all.sh
cd ..
Refer to the instructions provided in petsymposium-artifact2024.1/template.md to reproduce our analysis of the Topics API for the Web.