Ad Blocking Detector Implementations
A list of websites that use ad blocker detectors, broken down by the checks they run. A "Bait Check" involves creating a container with a class name/id formulated to be detected by filter lists (the Bait Name) and then uses a series of functions to check whether the container has been blocked (the Bait Functions). A "Load Error" involves directly checking whether an external resource has been loaded; we note the resources loaded and the type of check used to detect the failure to load. A "Variable Check" involves loading a script designed to be blocked by filter lists. The script gives the variable a value, and that variable is checked in the main code to ensure the target script has been loaded.
Site | Bait Check | Bait Name | Bait Functions | Load Error | Resource Loaded | Type of check | Variable Check | Script Name | Variable Name | Checked Against | Other | Description |
---|---|---|---|---|---|---|---|---|---|---|---|---|
8muses.com (article) | No | Yes | ads2.contentabc.com/ads? | error: (jQuery ajax) | No | No | ||||||
anghami.com | Yes | pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links | clientHeight, clientWidth, getPropertyValue("display"), getPropertyValue("visibility"), offsetHeight, offsetLeft, offsetTop, offsetWidth | No | No | No | ||||||
benchmark.pl | No | No | No | Yes | Check for 'ctrl', 'fctrl' cookeis | |||||||
bild.de | Yes | fullBanner; powerplace; subchannelBanner1_1; subchannelBanner1_2; ads; cbErotikContentbar15; contentbar; eyecatcher; footerbar; jetzt_aufnehmen; rectangle; servicelinks; tea-rectangle; txe; yield; adspecial | offsetHeight, offsetParent, offsetWidth | Yes | cdn1.smartadserver.com/... | require | Yes | oneTag.js | asmi, asmi.sas, asmi.pageSet | check boolean | Yes | Cookie Check |
bitcoin-gator.com | Yes | #tester | getElementById exists | No | No | No | ||||||
businessinsider.com (article) | No | No | No | Yes | Check for __pac, __adblock cookies | |||||||
buysellads.com | No | No | No | Yes | Include core css in a file called adblock.css, which is blocked | |||||||
comunidadiptv.org | Yes | "#adsense.an-sponsored .an-advert-banner" and others | outerHeight [jQuery] | No | No | No | ||||||
croydonguardian.co.uk | No | Yes | budgetedbauer.com, ad.doubleclick.net | load event handler | No | No | ||||||
cultofmac.com | Yes | pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links | clientHeight, clientWidth, getPropertyValue("display"), getPropertyValue("visibility"), offsetHeight, offsetLeft, offsetTop, offsetWidth | No | No | No | ||||||
desktopsolution.org (article) | Yes | pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links | clientHeight, clientWidth, getPropertyValue("display"), getPropertyValue("visibility"), offsetHeight, offsetLeft, offsetTop, offsetWidth | No | No | No | ||||||
elcorreo.com | No | No | Yes | adframe.js, adfrm.js | Vocento.checkAdBlock | typeof == 'undefined' | No | |||||
forbes.com | Yes | random set | .height() [jQuery], .css("display") == "none" | No | No | No | ||||||
game-state.com | No | No | Yes | adblock.js | adblock | check boolean | No | |||||
gry.pl | Yes | #spilAdvert | getBoundingClientRect().left | No | No | No | ||||||
hornmatters.com | Yes | .footer_ad | height() [jQuery] == 0 | No | No | No | ||||||
hubturkey.net | No | No | Yes | ads-13-9.js | koddostu_com_adblock_yok | === undefined | No | |||||
itsupportguides.com | Yes | .adsbygoogle | height() [jQuery] == 0 | No | No | No | ||||||
kbb.com | Yes | #porkchopExpress | display === "none", visibility === "hidden" | No | No | No | ||||||
kingofshrink.com | Yes | random set of classes | offsetParent == null; display == "none" using either getComputedStyle or getPropertyValue | Yes | pagead2.googlesyndication.com/..., js.adscale.de/getads.js, get.mirando.de/mirando.js | on "loaded", set variable to null | No | No | ||||
larioja.com | No | No | Yes | adfrm.js | Vocento.checkAdBlock | typeof == 'undefined' | No | |||||
lasprovincias.es | No | No | Yes | adfrm.js | Vocento.checkAdBlock | typeof == 'undefined' | No | |||||
maxcheaters.com | Yes | AdDiv, Zergnet, adbg_ad_0, admod2, ads728top, big_ads, largeAds, ad, ads, adsense | offsetParent == null, getStyle(getElementBy()).display == "none" | Yes | /adgallery1., /admeld_, /core/ad/ad, /dart_ads/ad, /dartcall., /predictad., /scripts/ad_, /toigoogleads., _files/ad., _480x60 | onerror | No | No | ||||
mid-day.com (article) | Yes | .AdSense | clientHeight | No | No | No | ||||||
mx.dk | Yes | #leaderboard div, .adsense | display and getElementById exists | No | No | No | ||||||
myanimelist.net | Yes | pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links | clientHeight, clientWidth, getPropertyValue("display"), getPropertyValue("visibility"), offsetHeight, offsetLeft, offsetTop, offsetWidth | No | No | No | ||||||
narcity.com (article) | No | No | Yes | ads.advert.js | ADBLOCK_NOT_PRESENT | typeof == 'undefined' | No | |||||
netaffiliation.com | Yes | ads_bottom | getElementById() == null | No | No | No | ||||||
news.at | No | No | No | Yes | uabpdl check on the window object | |||||||
opensnow.com | Yes | pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links | clientHeight, clientWidth, getPropertyValue("display"), getPropertyValue("visibility"), offsetHeight, offsetLeft, offsetTop, offsetWidth | No | No | No | ||||||
pokewatchers.com | No | No | Yes | adsbygoogle.js | a div | check for div's existence with getElementByID | No | |||||
pornhub.com | No | No | Yes | holiday-promo.js (trafficjunky.net) | page_params.holiday_promo | typeof == 'undefined' | No | |||||
rewbux.com | No | No | Yes | advertise.js | window.adblock | !('adblock' in window) | No | |||||
seokhazana.com | Yes | adlabel, advertbox3, bottomAd, mini-ad, rightAd, sky_advert, top_ad_game, ad, ads, adsense | offsetParent == null, getStyle(getElementBy()).display == "none" | Yes | .nz/ads/, /adiframetop., /ads/footer_, /bigads/ad, /googlead., /iframe_ads/ad, /includes/ad_, /kredit-ad., /pagepeelads., _adshare. | onerror | No | No | ||||
siamfishing.com | No | No | Yes | adsbygoogle.js?v1 | is_noadblock | != "yes" | No | |||||
sitenable.info | No | No | Yes | google script | window.google_pub_config | check boolean | No | |||||
speedof.me | No | No | Yes | google script | adsbygoogle["loaded"] | check boolean | No | |||||
spoiler.net | No | No | No | Yes | Background images are behind all ads; hiding ads reveals these images | |||||||
standard.co.uk | Yes | .adsbox | offsetHeight === 0 | No | No | No | ||||||
sueddeutsche.de | Yes | "AdProduct", "GalleryViewerAdSuppress", "EzAdsSearchPro", "MBoxAdRight", "OuterAdvertisingContainer", "TimelineAd", "abAdPositionBoxB", "aboveCommentAdsWrapper", "ad-companion", "adengageadzone" | getPropertyValue("display"), getPropertyValue("height"), getPropertyValue("visibility"), getPropertyValue("width"), | No | Yes | ads.js | adblock.ads | "1337" !== adblock.ads | No | |||
theargus.co.uk | No | Yes | budgetedbauer.com, ad.doubleclick.net | load event handler | No | No | ||||||
thewizardsmanse.com | No | No | Yes | No | ||||||||
time.com | Yes | pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links | clientHeight, clientWidth, getPropertyValue("display"), getPropertyValue("visibility"), offsetHeight, offsetLeft, offsetTop, offsetWidth | No | No | No | ||||||
titulky.com | Yes | pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links | clientHeight, clientWidth, getPropertyValue("display"), getPropertyValue("visibility"), offsetHeight, offsetLeft, offsetTop, offsetWidth | No | No | No | ||||||
trucksim.org | Yes | .adsbygoogle, links with href including admuncher.com | is(":hidden") [jQuery] | No | Yes | google script | adsbygoogle | adsbygoogle && adsbygoogle .hasOwnProperty("push") | No | |||
ultraporn.biz | No | No | Yes | site_ads.js | _site_ads_ns | === undefined | No | |||||
urlex.org | Yes | .adsbox | offsetHeight === 0 | No | No | No | ||||||
wasabisyrup.com | Yes | pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links | clientHeight, clientWidth, getPropertyValue("display"), getPropertyValue("visibility"), offsetHeight, offsetLeft, offsetTop, offsetWidth | No | No | No | ||||||
youporn.com | No | No | Yes | holiday-promo.js (trafficjunky.net) | page_params.holiday_promo | check boolean | No | |||||
yourlifeupdated.net | Yes | banner_ad | clientHeight, clientWidth, display, opacity, visibility | No | No | No | ||||||
zwergenstadt.com | Yes | adInteractive4', 'ad_728x90_container', 'adv-300', 'lower_ad', 'ns_ad2', 'rh_tower_ad', 'topadzone', 'ad', 'ads', 'adsense' | getElementByID or getElementsByTagName | No | No | No |
Number of Bait Checks: 28
Number of Load Errors: 7
Number of Variable Checks: 18
Number of Others: 6
Broadly Similar Sites: (2, 10, 11, 26, 30, 43, 44, 48); (9, 41); (12, 21, 22, 27, 32); (14, 36, 37); (16, 18); (17, 46); (23, 34); (39, 47)
Strictly Similar Sites(2, 10, 11, 26, 30, 43, 44, 48); (9, 41); (12, 21, 22); (39, 47)
Distinct Implementations (broad): 33
Distinct Implementations (strict): 40