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

Ordinary People

Post a Comment

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.