A project aimed at identifying ad networks with the fastest and slowest performing ad's on the internet through crowd-sourced, easy to understand, and openly accessible benchmarking data. Inspired by Lightbeam, the Site Sonar browser extension (hosted in this repository) locates and benchmarks ad content silently while you browse. It is then sent to Site-Sonar's servers, where the data is aggregated and displayed on our public dashboard (repo).
Clone the repository by running:
git clone https://github.com/FrancescoSTL/Site-Sonar.git
Download and install Node.js
Once you've cloned the repo and installed Node.js, you can start Site-Sonar by running:
npm install
npm run bundle
web-ext
If you're using web-ext, you'll need to do so with a pre-release version of Firefox for now, as it is only supported in Firefox 49 or higher.
web-ext
if
you haven't alreadyweb-ext run --firefox-binary=/Path/to/your/FirefoxDeveloperEdition/or/FirefoxBeta/or/FirefoxNightly.app
OR
web-ext
about:debugging
git clone -b Chrome-and-Opera-Version https://github.com/FrancescoSTL/Site-Sonar.git
chrome://extensions
git clone -b Chrome-and-Opera-Version https://github.com/FrancescoSTL/Site-Sonar.git
extensions
Using Disconnect's Blacklist of ad domains, Site-Sonar will benchmark and collect the following information about each ad asset in your browser:
assetCompleteTime Integer
Amount of time (in milliseconds) that the network took to respond to the HTTP request for the asset. This is calculated using a time diff between onSendHeaders and onHeadersReceived.
originUrl String
The URL from which the HTTP request originated. In many cases, this will be the hostUrl, however, sometimes ads will trigger their own HTTP requests. For example, checkout the following example from some real world data we pulled in Site-Sonar Issue #17
hostUrl String
The top level host URL from which the HTTP request originated. For example, if you have 3 tabs open and one request originates from the first tab (lets say, youtube.com
), the top level host would always be said tab's url (youtube.com
).
adNetworkUrl String
The host URL of the ad asset.
assetType String
Can be anything recieved by webRequest.ResourceType.
fileSize Integer
File size in octets of bits.
timeStamp Integer
Time when the asset was requested (in milliseconds) since the epoch
method String
Either "GET" or "POST".
statusCode Integer
Standard HTTP status code returned by the server. Ex: 200
, 404
, 301
, etc
adNetwork String
The Ad Network for which the asset belongs.
Site-Sonar is a browser extension currently supported in Firefox, Chrome, and Opera, which silently collects data about how ad's are performing in your browser. After collecting that data, it will be sent to Site-Sonar's server to aggregate (unless you opt out) and keep ad networks accountable through publicly accessible performance information.
Sort of. Once installed, Site-Sonar collects the host url of any website you browse that hosts ad content. Read more in our Privacy Policy or Summary of Data Collection.
Check out our installation instructions and then head to our Github Issues page for either the Site-Sonar web extension (this repo), or the Site-Sonar Dashboard.
A group of humans interested in making the internet a better place through a pragmatic approach to problems on the web.
Specifically:
Visit our Contact Page.