Features request for Plus UI Update Request
Hostinger

Prevent Adsense from Click Bombing using Vanilla JavaScript - Cookie Based

Please wait 0 seconds...
Scroll Down and click on Go to Link for destination
Congrats! Link is Generated

Hello, Bloggers! Welcome to Fineshop Design.

If you have an Adsense approved site, you might have faced the issues of Ad-limits due to invalid clicks. Adsense may restrict showing Ads on your site for a limited time. If you want to control clicks on Adsense by your visitors, you should try the codes I am going to share today.

Adsense Click Anti Bomb Script
© Fineshop Design | Adsense Click Anti Bomb Script

How does it work?

Basically, we will set Cookies in visitors' browser with value based on how may times they have clicked on Ads. Let's understand with an example.

Suppose you have set 3 maximum clicks. Whenever, he/she will click on Ads, a cookie with desired key (i.e. "MAX_CLICKS") with value based on the clicks will set in their browsers, and the value will increment 1 after every click. So, when they will have reached the limit (i.e. 3 times) and again clicks on the Ads, the ads will disappear. Now, they will not see any Ads for a time, you set.

Clearing cookies will still allow users to click on Ads. So, it will not totally prevent from Click Bombing but it will help you to control the clicks.

Before we start let's take a look at its Demo.

Getting Started

Important!Before we start adding codes in XML, I will recommend you to take a Backup of your current theme. By chance if any problem occurs, you can restore it later.

Step 1: First of all Login to your Blogger Dashboard.

Step 2: On Blogger Dashboard, click Theme.

Step 3: Click the arrow down icon next to 'customize' button.

Step 4: Click Edit HTML, you will be redirected to editing page.

Step 5: Now search the code </head> and paste the following JavaScript Codes just above to it.

<script>
  /*<![CDATA[*/
  /* Cookie functions */
  const Cookie = {
    get: (e) => { e = document.cookie.match(new RegExp("(?:^|; )" + e.replace(/([.$?*|{}()[\]\\/+^])/g, "$1") + "=([^;]*)")); return e ? decodeURIComponent(e[1]) : void 0 },
    set: (e, n, o = {}) => { o = { path: "/", ...o }, o.expires instanceof Date && (o.expires = o.expires.toUTCString()); let c = unescape(encodeURIComponent(e)) + "=" + unescape(encodeURIComponent(n)); for (var t in o) { c += "; " + t; var a = o[t]; !0 !== a && (c += "=" + a) } document.cookie = c },
    rem: (e) => { Cookie.set(e, "", { "max-age": -1 }) }
  }

  /* Anti bomb config */
  const antiBombSet = {
    timeOut: 3600, /* Timeout in seconds, when to ads appear after maximum clicks */
    maxClick: 3, /* No of maximum clicks */
    cookieKey: "MAX_CLICKED", /* Cookie key to set */
    adsSelectors: "ins.adsbygoogle", /* Ads selectors */
    iframeSelectors: "ins.adsbygoogle iframe", /* Ads iframe selectors */
    callback: () => {
      /* Runs only one time if/when clicked maximum times on ads */
      if (antiBombSet.executed === undefined) {
        antiBombSet.executed = !0;

        /* Prevent clicks on ads placement with pointer-events:none | You can also try display:none */
        if (document.getElementById("mxAds_stl") == null) {
          var stl = document.createElement("style");
          stl.id = "mxAds_stl";
          stl.innerHTML = (antiBombSet.adsSelectors || ".adsbygoogle") + "{pointer-events:none}";
          document.head.appendChild(stl);
        }

        /* Add your js below to execute if/when clicked maximum times on ads */
        /* console.warn("You have clicked the maximum times on ads. Don't click on ads if you don't want to support us."); */

      }
    }
  };

  if (Cookie.get(antiBombSet.cookieKey || "ADS_CLICK") != undefined && parseInt(Cookie.get(antiBombSet.cookieKey || "ADS_CLICK")) >= (antiBombSet.maxClick || 3)) {
    antiBombSet.callback()
  };
  /*]]>*/
</script>

Step 6: Search the code </body> and paste the following JavaScript Codes just above to it.

<script>
  /*<![CDATA[*/
  ! function () {
    function n(e, o) {
      return null != (e = Cookie.get(e)) && parseInt(e) >= o
    }
    var l = antiBombSet.cookieKey || "ADS_CLICK",
      e = antiBombSet.adsSelectors || ".adsbygoogle",
      i = antiBombSet.timeOut || 7200,
      c = antiBombSet.maxClick || 3;
    0 < document.querySelectorAll(e).length && document.querySelectorAll(e).forEach(e => {
      e.addEventListener("click", function () {
        var e, o;
        n(l, c) ? antiBombSet.callback() : (e = l, null != (o = Cookie.get(e)) ? (o = parseInt(o) + 1, Cookie.set(e, o.toString(), {
          secure: !0,
          "max-age": i
        })) : Cookie.set(e, "1", {
          secure: !0,
          "max-age": i
        }))
      })
    }), window.addEventListener("blur", function () {
      n(l, c) && antiBombSet.callback();
      for (var e, o, t = document.querySelectorAll(antiBombSet.iframeSelectors || ".adsbygoogle iframe"), a = 0; a < t.length; a++) document.activeElement == t[a] && (n(l, c) ? antiBombSet.callback() : (e = l, null != (o = Cookie.get(e)) ? (o = parseInt(o) + 1, Cookie.set(e, o.toString(), {
        secure: !0,
        "max-age": i
      })) : Cookie.set(e, "1", {
        secure: !0,
        "max-age": i
      })))
    })
  }();
  /*]]>*/
</script>

About the Author

[Offline] Hey there! My name is Deo Kumar aka Dev, a professional Web Designer, Graphic Designer, UI / UX Designer as well as Content Creator from Bihar, India. I love to Code and create interesting things while playing with it.

Buy me a Coffee

Advertisements

Post a Comment

To avoid SPAM, all comments will be moderated before being displayed.
Don't share any personal or sensitive information.
Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.