An ad-tracking extension for Chrome and Firefox

MyAdPrice allows you to track how much money advertisers bid to show you ads as you surf the Web. It utilizes hooks in the Prebid library along with other methods to track this activity. By default, it sends out no data from the user's device. However, users can opt-in to send specific, anonymized statistics to our servers to help in our research.

MyAdPrice is a product of research at Duke University, MPI Informatics, UIUC, and ETH Z├╝rich. Find out more.

First slide

Please note that ad blockers must be uninstalled/disabled for MyAdPrice to track ad activity.

Community Coverage

MyAdPrice has received considerable attention from the ad tech community. Web site developers optimizing their strategy tend to find MyAdPrice and the information it provides useful. They use it to observe the bids and request timing they get from different ad exchanges. Here are some reviews of MyAdPrice from the ad tech community:


GDPR Compliance

MyAdPrice is GDPR compliant. By default, we do not store any information about our users. We do not use cookies.

Data Collection

By default, MyAdPrice sends out no data from your browser. The extension uses the browser's local storage to store data pertaining to ad slots in different pages and the bids received for each. You may opt in to share data including domain names of web pages you visit, i.e., only those that use header bidding, ad slots on the pages, exchanges contacted for ads, bids received, timing information on various phases of the in-browser auction, and, lastly, their geographical location at city level. The data shared does not have any information to uniquely identify a user. We do not learn anything about you.

When you opt in, the following data is sent to our servers:

  • The domain names of the websites you visit that use Prebid.js
  • The city, state, and country of your browser
  • Number of ad slots on the page, their labels, and sizes
  • Responses from ad exchanges, their bid amounts and latencies
  • Breakdown of timing of these responses---by domain lookup, connection setup, etc.

MyAdPrice stores on your device using the browser's local storage:

  • Average bid prices for websites you visit
  • Revenue these websites have earned by showing you ads

If the above does not address your privacy concerns adequately, please let us know at waqeel [at] cs [dot] duke [dot] edu

Source code

MyAdPrice is an open source project, licensed under GPLv3. The source code can be accessed here.

Most Web sites that show ads use some libraries to facilitate the serving and display of ads. Prebid.js is one such library. MyAdPrice works by probing well-known elements of Prebid.js and displaying the obtained information in a convenient format. This means that MyAdPrice does not do anything when you visit a website that does not show ads, or does not use Prebid.js to show ads.

For more details, please see the MyAdprice research paper titled "Untangling Header Bidding Lore". This paper was published at the Passive and Active Measurements Conference 2020.

We have collected and analyzed 8 months of data from around 400 users. Our users come from 60 countries, and over 430 cities. It consists of over 700,000 auctions recorded on over 3000 websites. A version of this dataset can be downloaded here.

We analyzed these measurements and the resulting study was published at the 20th International Passive and Active Measurements Conference (PAM).

In our analysis, we verified the central trade-off in header bidding, that is, contacting more ad exchanges indeed increases revenue as well as total auction duration. Fig. (a) shows median CPM received across ad slots on all websites against the number of ad exchanges that were contacted for the slot. As apparent, median CPM more than doubles as we increase the number of exchanges from 1 to 8. About 90% of our data resides in that interval. On the other hand, Fig. (b) shows that there is a correlation between auction duration and number of ad exchanges contacted for a slot. Auctions tend to take longer if more exchanges are contacted, which results in delay in showing ads to the user.

Fig. (c) shows that 80% of bids arrive at least 300ms after the auction starts. Fig. (d) breaks down this delay into the time taken in each step: DNS resolution, TCP handshake, TLS handshake, Time to first byte, and downloading response. A large fraction of this delay stems from TCP and TLS handshakes. We found that this is because of poor deployment of lower-RTT protocol enhancements such as TCP Fast Open, TLS 1.3, and QUIC. We also found out that auctions at some ad exchanges were unoptimized, almost doubling the duration before the exchange can respond with bids. Some ad exchanges were also suffering from poor request routing, for example, needlessly sending US East Coast users to servers on the West Coast.

We conclude that the large delays experienced in client-side header bidding are easily addressable. As header bidding puts the browser, and hence the user, in complete control of the advertising process, it should be seen as opportunity for protecting user privacy while still supporting the dominant ad-based revenue model of online publishers.



Please refer to the full paper for more details.

MyAdPrice is a project of the CSpeed Team. The authors of this tool and paper are: Waqar Aqeel, Debopam Bhattacherjee, Balakrishnan Chandrasekaran, P. Brighten Godfrey, Gregory Laughlin, Bruce Maggs, and Ankit Singla.

Please feel free to contact waqeel [at] cs [dot] duke [dot] edu for any questions or feedback.