Adblock Detection
Two years ago, I wrote a blog article about Adblock Detection using JavaScript only. Since then, I maintain a NodeJS library to detect Adblock Plus and uBlock Origin. If you want to use the Adblock Detection Library on your own website, you can learn how to include it by visiting the project pages:
Live Demo
Adblock Plus Detected:
uBlock Origin Detected:
Source Code
This is the source code which detects uBlock Origin, Adblock Plus and AdBlocker Ultimate with JavaScript only:
/**
* Author: Nikolai Tschacher
* Updated: 11th August 2026
* Website: https://incolumitas.com/
*
* Detects uBlock Origin, Adblock Plus and AdBlocker Ultimate with JavaScript only.
*
* Usage: detectAdblock().then((res) => { console.log(res) });
*
*/
function detectAdblock() {
const adblockTests = {
// Bait rule "/piwik." from EasyPrivacy, which uBlock Origin
// enables by default (Adblock Plus does not):
// https://github.com/easylist/easylist/blob/master/easyprivacy/easyprivacy_general.txt
uBlockOrigin: {
url: 'https://incolumitas.com/data/piwik.js',
id: '837jlaBksSjd9jh',
},
// Bait rule "/pagead/conversion.js" from EasyList:
// https://github.com/easylist/easylist/blob/master/easylist/easylist_general_block.txt
adblockPlus: {
url: 'https://incolumitas.com/data/pagead/conversion.js',
id: 'hfuBadsf3hFAk',
},
};
function canLoadRemoteScript(obj) {
return new Promise(function (resolve, reject) {
var script = document.createElement('script');
script.onload = function () {
if (document.getElementById(obj.id)) {
resolve(false);
} else {
resolve(true);
}
}
script.onerror = function () {
resolve(true);
}
script.src = obj.url;
document.body.appendChild(script);
});
}
return new Promise(function (resolve, reject) {
let promises = [
canLoadRemoteScript(adblockTests.uBlockOrigin),
canLoadRemoteScript(adblockTests.adblockPlus),
];
Promise.all(promises).then((results) => {
resolve({
uBlockOrigin: results[0],
adblockPlus: results[1],
usingAdblock: (results[0] === true) || (results[1] === true),
});
}).catch((err) => {
reject(err);
});
});
}
Use the above function:
detectAdblock().then((res) => { console.log(res) });