Viewing 2 replies - 1 through 2 (of 2 total)
  • Hi jayPEG,

    I’m going to give short answers (TL;DR version) to the questions, then at the end, go into a bit more detail that may help your assessment a bit more.

    1) No known issues with bots, with one caveat. Bots generally see both the “ad blocker detected” content, and the “no blocker detected content.” This means if one of those content items is determined to be important content by the bot, it will treat that as part of the page. This may be a problem if you put a text plea at the top of your page, before the main content, as the bot may think that’s part of your content. It does not, however, upset or interfere with the bot itself in any way.

    2) No known issues with front-end proxies. However, it is possible, if the front-end proxy blocks JavaScript, that Ad Blocking Detector will not be able to detect ad blockers, but that blockage often causes numerous other problems on websites anyway. In this edge case, Ad Blocking Detector will fall back on its default assumption of no ad blocker present.

    3) No known issues with caching plugins. However, other performance improvement methods may cause problems. A few users have had issues with JavaScript enhancement plugins that load files asynchronously, and plugins that minify and/or combine JavaScript files.

    —–

    Now the longer version.

    Ad blocker detection is accomplished via JavaScript. Using JavaScript, the plugin looks at the page for items that should appear on the page, if not blocked by ad blockers. If any of the items are not present, Ad Blocking Detector assumes an ad blocker is to blame.

    JavaScript is code executed client-side, meaning by the visitor’s web browser. This means that if the visitor’s web browser is properly (more on this in a moment) receiving and executing JavaScript, everything should work without issue.

    GoogleBot, and most bots, do not execute JavaScript. This means Ad Blocking Detector does not function for those bots. It does not change page content. Understanding how this affects the bots, then, requires understanding how Ad Blocking Detector outputs content to the pages in the first place. That is the focus of this article on the plugin’s website: https://adblockingdetector.johnmorris.me/how-this-plugin-works/. Basically, both potential pieces of content are in place on the page, but the ad blocker detected content is visually hidden until Ad Blocking Detector unhides it. Since Ad Blocking Detector does not function, the ad blocker detected content is never visually unhidden. However, just because something isn’t visible on the page, does not mean the bot will ignore it. That just depends on how smart the bot is. Most are pretty dumb in this regard, including GoogleBot as of this time, and swallow everything, visible or not.

    Front-end proxies should not cause any problems unless they stop or interfere with JavaScript. Some have this as an option, many (most?) do nothing in this regard by default. IF the proxy allows JavaScript through, there should be no problem as all ad blocker detection is done client-side, after passing through the proxy. Proxies can slightly skew Ad Blocking Detector’s statistics collection if widespread and using regularly changing IP addresses.

    Pure caching plugins shouldn’t cause a problem, because they still serve the JavaScript files normally. Performance plugins, however, may cause problems if they alter JavaScript files. Understanding this requires a bit more depth of understanding of one detection method… JavaScript file blocking detection.

    One way Ad Blocking Detector finds ad blockers is by looking for a JavaScript file that many ad blockers will stop from loading due to its name (advertisement.js). It determines whether the file loads or not by having that file set a variable. If the variable is present and set, it assumes the file loaded. If the variable is not present or unset, it assumes the file did not load. So, if some well-meaning plugin comes in and prevents the file from loading, delays the file from loading until after the rest of Ad Blocking Detector, or renames the variable in the file without renaming it the same way in Ad Blocking Detector’s other file, Ad Blocking Detector will yield a false-positive.

    The false-positives can be stopped by disabling JavaScript file detection (an option in the plugin settings). This decreases the detection effectiveness. The decrease can be more than offset by providing a CSS wrapper as detailed on the plugin’s website here: https://adblockingdetector.johnmorris.me/detection-improvement-user-defined-wrapper-css-selectors/. This is a recommended step, if situationally possible, anyway.

    —–

    I hope this helped. Let me know if something needs clarification or you have further questions.

    Thread Starter jayPEG

    (@jaypeg)

    John,
    Thank you so much for the very detailed explanation of your Plugin.

    I’ve tested it on the small-scale already and it appears to work really well.

    I’ll let you know if I run into any issues, but so far, so good.

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘General Plugin Usage Questions’ is closed to new replies.