Adblocker
Efficient
· Minimal
· JavaScript
· TypeScript
· uBlock Origin- and Easylist-compatible
Node.js
· Puppeteer
· Electron
· WebExtension
The Ghostery adblocker is a JavaScript library for blocking ads, trackers, and annoyances with a strong focus on efficiency. It was designed with compatibility in mind and integrates seamlessly with the following environments:
- Block ads in Puppeteer,
- Block ads in Electron,
- Block ads in Chrome and Firefox,
- Or as a standalone JavaScript library.
Getting Started
The Ghostery adblocker is the easiest and most efficient way to block ads and trackers in your project. Only a few lines of code are required to integrate smoothly with Puppeteer, Electron, a Chrome- and Firefox-compatible browser extension, or any environment supporting JavaScript (e.g. Node.js or React Native).
Here is how to do it in two steps for a Chrome- and Firefox-compatible WebExtension:
- Install:
npm install --save @cliqz/adblocker-webextension
- Add the following in your background script:
`
js import { WebExtensionBlocker } from '@cliqz/adblocker-webextension';
WebExtensionBlocker.fromPrebuiltAdsAndTracking().then((blocker) => { blocker.enableBlockingInBrowser(browser); });
Congratulations, you are now blocking all ads and trackers! :tada:
## Compatibility
The library supports 99% of all filters from the Easylist and uBlock Origin projects. Check [the compatibility matrix](https://github.com/ghostery/adblocker/wiki/Compatibility-Matrix) on the wiki for more details.
## Contributing
This project makes use of [lerna](https://github.com/lerna/lerna) and [yarn workspaces](https://yarnpkg.com/lang/en/docs/workspaces/) under the hood. Quickly get started with:
1. Fork and clone the repository,
2. Enable corepack: `corepack enable`,
3. Install dependencies: `yarn install --immutable`,
4. Build: `yarn build`,
5. Test: `yarn test`,
For any question, feel free to [open an issue](https://github.com/ghostery/adblocker/issues/new) or a pull request to get some help!
## Who is using it?
This library is the building block technology used to power the adblockers from [Ghostery](https://www.ghostery.com/) and [Cliqz](https://cliqz.com/) on both *desktop* and *mobile* platforms. It is already running in production for millions of users and has been battle-tested to satisfy the following use-cases:
* Mobile-friendly adblocker in react-native, WebExtension, or custom JavaScript context: [Ghostery for iOS](https://github.com/ghostery/user-agent-ios).
* Ads and trackers blocker in [Electron](https://github.com/wexond/desktop) applications, [Puppeteer](https://github.com/Kikobeats/browserless) headless browsers, Cliqz browser, [ghostery](https://github.com/ghostery/ghostery-extension/) and [standalone](https://github.com/remusao/blockrz)).
* Batch requests processing in Node.js, HTML fuzzy keywork matcher, and more.
The innovative algorithms and architecture designed and implemented in this project have been shown to be among the [most efficient](https://whotracks.me/blog/adblockers_performance_study.html) ways to implement ad-blockers and have been used in other projects to implement highly performant adblockers such as [Brave](https://github.com/brave/adblock-rust).
## Swag
Show the world you're using `ghostery/adblocker` → [](https://github.com/ghostery/adblocker)
```md
[](https://github.com/ghostery/adblocker)
Or HTML:
<a href="https://github.com/ghostery/adblocker/" target="_blank" rel="noopener noreferrer">
<img alt="powered by Ghostery" src="https://img.shields.io/badge/ghostery-powered-blue?logo=ghostery">
</a>