AdBlock is the great add-on in most of the cases as the Internet full of scam, spam, and inappropriate ads. Sadly for other, good side of the Internet, publishers are losing revenue. Track how many of your website visitors are using AdBlock browser extension with ostr.io web analytics.
Two options:
Install ostrio-analytics
library:
# For CommonJS (Browser/Node.js):
npm install ostrio-analytics --save
# For Meteor.js
meteor add ostrio:analytics
Run test and report AdBlock usage to analytics:
// For CommonJS (Browser/Node.js):
const analyticsTracker = new (require('ostrio-analytics'))('trackingId');
// For Meteor.js:
// import Analytics from 'meteor/ostrio:analytics';
// import adblockDetect from 'adblock-detect';
// const analyticsTracker = new Analytics('trackingId');
let adBlockEnabled = false;
const testAd = document.createElement('div');
testAd.innerHTML = ' ';
testAd.className = 'adsbox';
document.body.appendChild(testAd);
setTimeout(function() {
if (testAd.offsetHeight === 0) {
adBlockEnabled = true;
}
testAd.remove();
if (adBlockEnabled) {
analyticsTracker.pushEvent('AdBlock', 'active');
}
}, 128);
Install adblock-detect
and ostrio-analytics
NPM packages:
# For CommonJS (Browser/Node.js):
npm install ostrio-analytics --save
npm install adblock-detect --save
# For Meteor.js
meteor add ostrio:analytics
meteor npm install adblock-detect --save
Check AdBlock usage with adblock-detect
and send result to analytics:
// For CommonJS (Browser/Node.js):
const analyticsTracker = new (require('ostrio-analytics'))('trackingId');
const adblockDetect = require('adblock-detect');
adblockDetect(function(adblockDetected) {
if (adblockDetected) {
analyticsTracker.pushEvent('AdBlock', 'active');
}
});
// For Meteor.js:
import { Meteor } from 'meteor/meteor';
import Analytics from 'meteor/ostrio:analytics';
import adblockDetect from 'adblock-detect';
const analyticsTracker = new Analytics('trackingId');
Meteor.startup(() => {
adblockDetect(function(adblockDetected) {
if (adblockDetected) {
analyticsTracker.pushEvent('AdBlock', 'active');
}
});
});