MrMND Ad Banner Auto-Click Script
Integrated solution for automatic clicking on MrMND advertising banners
Introduction
This script is specifically designed to detect and automatically click on MrMND advertising banners with the code format:
The script waits for the banner to load, then automatically clicks it after a configurable delay.
Important: This script is specifically tailored for MrMND ad banners. It detects banners by their data-mndbanid attribute and waits for the banner.js script to load them.
Live Demo
Below is a simulation of how the MrMND banner loads and gets auto-clicked:
MrMND Banner Simulation
The script below simulates MrMND banner loading and auto-clicking
Complete Blogger Integration Script
Copy and paste this complete script into your Blogger theme just before the </head> tag:
<!-- MrMND Ad Banner Auto-Click Script for Blogger -->
<script>
// Wait for the page to load
document.addEventListener('DOMContentLoaded', function() {
console.log('MrMND Ad Banner Auto-Click Script Loaded');
// Configuration
const config = {
// MrMND specific selectors
mrmndContainerSelector: '[data-mndbanid]',
mrmndScriptSelector: 'script[src*="mrmnd.com/banner.js"]',
// Delay before auto-click (in milliseconds)
clickDelay: 1500,
// Maximum number of auto-clicks per page load
maxAutoClicks: 3,
// Enable/disable auto-click functionality
enabled: true,
// Log actions to console
debug: true,
// Check interval for banner loading (ms)
checkInterval: 500,
// Maximum wait time for banner to load (ms)
maxWaitTime: 10000
};
// Track clicked banners
let clickedBanners = new Set();
let autoClickCount = 0;
let bannerCheckInterval;
let waitTimer;
// Function to log messages
function logMessage(message, type = 'info') {
if (config.debug) {
const timestamp = new Date().toLocaleTimeString();
const logEntry = `[${timestamp}] MrMND: ${message}`;
switch(type) {
case 'success':
console.log('%c' + logEntry, 'color: #34a853');
break;
case 'warning':
console.warn(logEntry);
break;
case 'error':
console.error(logEntry);
break;
default:
console.log('%c' + logEntry, 'color: #8a2be2');
}
}
}
// Function to check if MrMND banner is loaded
function isMrmndBannerLoaded(bannerContainer) {
if (!bannerContainer) return false;
// Check if the banner container has any visible content
const hasVisibleContent = bannerContainer.children.length > 0 ||
bannerContainer.innerHTML.trim().length > 0 ||
bannerContainer.offsetHeight > 10 ||
bannerContainer.offsetWidth > 10;
// Check for common ad banner elements
const hasAdElements = bannerContainer.querySelector('a, img, iframe, div.ad, div.banner') !== null;
// Check for specific MrMND banner classes or IDs
const hasMrmndClasses = bannerContainer.className.includes('mrmnd') ||
bannerContainer.id.includes('mrmnd') ||
bannerContainer.querySelector('[class*="mrmnd"], [id*="mrmnd"]') !== null;
return hasVisibleContent && (hasAdElements || hasMrmndClasses);
}
// Function to simulate click on MrMND banner
function autoClickMrmndBanner(bannerContainer) {
if (!config.enabled) return;
const bannerId = bannerContainer.getAttribute('data-mndbanid') || 'unknown';
// Check if we've reached the maximum auto-clicks
if (autoClickCount >= config.maxAutoClicks) {
logMessage(`Maximum auto-clicks (${config.maxAutoClicks}) reached for banner ${bannerId}`, 'warning');
return;
}
// Check if this banner has already been clicked
if (clickedBanners.has(bannerId)) {
logMessage(`Banner ${bannerId} already clicked, skipping`, 'info');
return;
}
// Mark as clicked
clickedBanners.add(bannerId);
autoClickCount++;
logMessage(`Auto-clicking MrMND banner: ${bannerId}`, 'success');
// Add visual feedback
bannerContainer.classList.add('mrmnd-banner-clicked');
// Find clickable elements within the banner
function findClickableElements(container) {
const clickableElements = [];
// Look for links
const links = container.querySelectorAll('a');
links.forEach(link => clickableElements.push(link));
// Look for buttons
const buttons = container.querySelectorAll('button, [role="button"]');
buttons.forEach(button => clickableElements.push(button));
// Look for elements with onclick handlers
const onClickElements = container.querySelectorAll('[onclick]');
onClickElements.forEach(el => clickableElements.push(el));
// If no specific elements found, use the container itself
if (clickableElements.length === 0) {
clickableElements.push(container);
}
return clickableElements;
}
// Perform the click after delay
setTimeout(() => {
try {
const clickableElements = findClickableElements(bannerContainer);
if (clickableElements.length > 0) {
// Click the first clickable element
const elementToClick = clickableElements[0];
logMessage(`Clicking element: ${elementToClick.tagName} in banner ${bannerId}`, 'info');
// Create and dispatch click event
const clickEvent = new MouseEvent('click', {
view: window,
bubbles: true,
cancelable: true
});
elementToClick.dispatchEvent(clickEvent);
// If it's a link, also follow it
if (elementToClick.tagName === 'A' && elementToClick.href) {
logMessage(`Opening banner link: ${elementToClick.href}`, 'info');
window.open(elementToClick.href, '_blank');
}
// Mark banner as clicked visually
bannerContainer.style.opacity = '0.9';
bannerContainer.style.boxShadow = '0 0 10px rgba(52, 168, 83, 0.7)';
// Reset visual effects after 2 seconds
setTimeout(() => {
bannerContainer.style.opacity = '';
bannerContainer.style.boxShadow = '';
}, 2000);
}
} catch (error) {
logMessage(`Error clicking banner ${bannerId}: ${error.message}`, 'error');
}
}, config.clickDelay);
}
// Function to monitor MrMND banner loading
function monitorMrmndBanners() {
logMessage('Starting MrMND banner monitoring...', 'info');
// Find all MrMND banner containers
const bannerContainers = document.querySelectorAll(config.mrmndContainerSelector);
logMessage(`Found ${bannerContainers.length} MrMND banner container(s)`, 'info');
if (bannerContainers.length === 0) {
logMessage('No MrMND banners found on page', 'warning');
return;
}
// Start checking each banner for loading
bannerContainers.forEach((container, index) => {
const bannerId = container.getAttribute('data-mndbanid') || `banner-${index}`;
logMessage(`Monitoring banner: ${bannerId}`, 'info');
let checkCount = 0;
const maxChecks = config.maxWaitTime / config.checkInterval;
// Check periodically if banner is loaded
const checkBanner = setInterval(() => {
checkCount++;
if (isMrmndBannerLoaded(container)) {
logMessage(`Banner ${bannerId} is now loaded`, 'success');
clearInterval(checkBanner);
// Auto-click the loaded banner
autoClickMrmndBanner(container);
} else if (checkCount >= maxChecks) {
logMessage(`Banner ${bannerId} did not load within ${config.maxWaitTime/1000} seconds`, 'warning');
clearInterval(checkBanner);
} else {
logMessage(`Checking banner ${bannerId}... (attempt ${checkCount})`, 'info');
}
}, config.checkInterval);
});
}
// Function to check if MrMND banner script is loaded
function checkMrmndScriptLoaded() {
const mrmndScript = document.querySelector(config.mrmndScriptSelector);
if (mrmndScript) {
logMessage('MrMND banner.js script found on page', 'success');
// Wait a bit for the script to execute, then start monitoring
setTimeout(() => {
monitorMrmndBanners();
}, 1000);
return true;
}
return false;
}
// Function to handle dynamically loaded MrMND banners
function setupDynamicBannerObserver() {
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
// Check for added MrMND banner containers
mutation.addedNodes.forEach((node) => {
if (node.nodeType === 1) { // Element node
// Check if this node is a MrMND banner container
if (node.matches && node.matches(config.mrmndContainerSelector)) {
logMessage('New MrMND banner container detected dynamically', 'success');
// Check if banner loads
setTimeout(() => {
if (isMrmndBannerLoaded(node)) {
autoClickMrmndBanner(node);
}
}, 2000);
}
// Check for MrMND banner script
if (node.matches && node.matches(config.mrmndScriptSelector)) {
logMessage('MrMND banner.js script loaded dynamically', 'success');
// Wait for script to load, then check for banners
setTimeout(() => {
monitorMrmndBanners();
}, 1500);
}
}
});
});
});
// Start observing
observer.observe(document.body, {
childList: true,
subtree: true
});
logMessage('Dynamic banner observer started', 'success');
return observer;
}
// Initialize the script
function init() {
logMessage('MrMND Auto-click script initialized', 'success');
// Check if MrMND script is already on the page
if (checkMrmndScriptLoaded()) {
// Script found, start monitoring
monitorMrmndBanners();
} else {
logMessage('MrMND banner.js script not found yet, will monitor for it', 'info');
// Check periodically for script
const scriptCheck = setInterval(() => {
if (checkMrmndScriptLoaded()) {
clearInterval(scriptCheck);
}
}, 1000);
// Stop checking after 30 seconds
setTimeout(() => {
clearInterval(scriptCheck);
logMessage('Stopped looking for MrMND script after 30 seconds', 'warning');
}, 30000);
}
// Set up observer for dynamically loaded content
setupDynamicBannerObserver();
// Also scan for banners every 5 seconds as backup
setInterval(() => {
monitorMrmndBanners();
}, 5000);
}
// Start the script
init();
});
</script>
<!-- Optional CSS for visual feedback -->
<style>
.mrmnd-banner-clicked {
animation: mrmnd-click-pulse 2s ease;
position: relative;
}
.mrmnd-banner-clicked::after {
content: '✓ Clicked';
position: absolute;
top: 10px;
right: 10px;
background-color: #34a853;
color: white;
padding: 3px 8px;
border-radius: 4px;
font-size: 0.8rem;
font-weight: bold;
z-index: 1000;
}
@keyframes mrmnd-click-pulse {
0% { box-shadow: 0 0 0 0 rgba(138, 43, 226, 0.7); }
70% { box-shadow: 0 0 0 10px rgba(138, 43, 226, 0); }
100% { box-shadow: 0 0 0 0 rgba(138, 43, 226, 0); }
}
</style>
<!-- End MrMND Ad Banner Auto-Click Script -->
How to Install on Blogger:
- Go to your Blogger dashboard
- Navigate to Theme → Edit HTML
- Find the
</head>tag - Copy the entire script above and paste it just before
</head> - Make sure you already have MrMND banner code on your page like:
<div data-mndbanid="your-banner-id"></div>
<script async src="https://ss.mrmnd.com/banner.js"></script> - Click Save Theme
How It Works
1. Detection Phase
The script looks for:
- Div elements with
data-mndbanidattribute - The MrMND banner.js script
- Loaded banner content (images, links, iframes)
2. Monitoring Phase
Once detected, the script:
- Monitors each banner container for content
- Waits for the banner to fully load
- Checks every 500ms (configurable)
- Times out after 10 seconds if banner doesn't load
3. Auto-Click Phase
When banner is loaded:
- Waits 1.5 seconds (configurable delay)
- Finds clickable elements within the banner
- Simulates a click event
- Opens links in new tabs
- Provides visual feedback
- Tracks clicked banners to avoid duplicates
4. Dynamic Content Support
The script also handles:
- Banners loaded via AJAX
- Lazy-loaded content
- Banners added after page load
- Periodic re-scanning every 5 seconds
Customization Options
// Configuration options you can modify:
const config = {
// Delay before auto-click (in milliseconds)
clickDelay: 1500, // Change to 2000 for 2 seconds delay
// Maximum number of auto-clicks per page load
maxAutoClicks: 3, // Set to 1 for single click only
// Enable/disable auto-click functionality
enabled: true, // Set to false to disable
// Log actions to console
debug: true, // Set to false in production
// Check interval for banner loading (ms)
checkInterval: 500, // How often to check if banner loaded
// Maximum wait time for banner to load (ms)
maxWaitTime: 10000 // 10 seconds max wait
};
For Multiple Banner Placements
If you have multiple MrMND banners on the same page, the script will:
- Detect and monitor each banner separately
- Click each banner once (unless maxAutoClicks is reached)
- Track each banner by its unique data-mndbanid
- Space out clicks to appear more natural
Testing Your Implementation
After installing the script:
- Open your blog in a new tab
- Open browser Developer Tools (F12)
- Go to the Console tab
- Look for "MrMND Auto-click script initialized" message
- Wait for banner to load and see auto-click logs
- Check that banner gets visual feedback when clicked
Important Legal Notice: Automatically clicking ads may violate the terms of service of advertising networks. This script is provided for educational purposes only. Always review and comply with the terms of service of any advertising network you use.