Самсунг .... айфон...
Я глянул статистику по одному из мох сайтов. Так люди ещё на Nokia N97 (20x) сидят. Правда посетитель с Китая.
По опыту выкуп будет наоборот дешевле или даже вообще не будет дохода.
С чего такие выводы?
Новая версия блокировки рекламы адсенс при обнаружении включённого VPN у пользователя.
Старая версия сильно быстро жрала лимит api ключей. Запрос шёл при каждом переходе на следующую страницу.
🔹 Преимущества этого метода:
✅ Снижает нагрузку на API – не делает повторные запросы в течение 5 минут.✅ Не требует cookies или баз данных – кэшируется прямо в файлах и sessionStorage .✅ Быстрее загружается сайт – браузер использует локальный кэш вместо запроса к серверу.
Теперь VPN проверяется только раз в 5 минут на пользователя, что значительно экономит API-запросы! 🚀
🔹 В корне сайта ( public_html или /var/www/html/ ), создайте папку:vpn_storage
🔹 Дайте ей права записи: 777
В эту папку будут записываться файлы кеширования.
Новый файл check_vpn.php:
<?phpheader('Content-Type: application/json');$api_key = '890472aa17264****************'; // Вставьте ваш API-ключ$user_ip = $_SERVER['REMOTE_ADDR']; // Получаем IP пользователя$cache_dir = __DIR__ . "/vpn_storage/";if (!file_exists($cache_dir)) { mkdir($cache_dir, 0777, true);}$cache_file = $cache_dir . "cache_vpn_{$user_ip}.json";$cache_time = 300; // 5 минут (300 секунд)// Если есть кэш и он не устарел, возвращаем данные из негоif (file_exists($cache_file) && (time() - filemtime($cache_file) < $cache_time)) { echo file_get_contents($cache_file); exit;}// Запрашиваем данные с vpnapi.io$api_url = "https://vpnapi.io/api/{$user_ip}?key={$api_key}";$response = file_get_contents($api_url);$data = json_decode($response, true);// Проверяем, является ли IP VPN$is_vpn = $data['security']['vpn'] ?? false;// Сохраняем результат в кэш$cache_data = json_encode(['vpn' => $is_vpn]);file_put_contents($cache_file, $cache_data);// Отправляем ответecho $cache_data;?>
Новый скрипт для вставки на страницы сайта:
<script>(function() { const CHECK_INTERVAL = 5 * 60 * 1000; // Кэш на 5 минут const now = Date.now(); const cachedData = sessionStorage.getItem("vpnCheckResult"); const cachedTime = sessionStorage.getItem("vpnCheckTime"); if (cachedData && cachedTime && now - parseInt(cachedTime) < CHECK_INTERVAL) { console.log("Читаем кэш:", cachedData); handleVPNCheck(JSON.parse(cachedData)); } else { fetch("https://ваш сайт.com/check_vpn.php") .then(response => response.json()) .then(data => { sessionStorage.setItem("vpnCheckResult", JSON.stringify(data)); sessionStorage.setItem("vpnCheckTime", now.toString()); console.log("VPN проверен:", data); handleVPNCheck(data); }) .catch(error => console.error("Ошибка VPN:", error)); } function handleVPNCheck(data) { if (data.vpn) { console.log("VPN обнаружен! Блокируем рекламу."); // Останавливаем загрузку AdSense window.adsbygoogle = window.adsbygoogle || []; window.adsbygoogle.push = function() {}; // Удаляем уже загруженные рекламные блоки document.querySelectorAll("script[src*='adsbygoogle.js']").forEach(el => el.remove()); document.querySelectorAll("ins.adsbygoogle").forEach(el => el.remove()); // Блокируем дальнейшее добавление рекламы const observer = new MutationObserver(() => { document.querySelectorAll("ins.adsbygoogle").forEach(el => el.remove()); }); observer.observe(document.body, { childList: true, subtree: true }); console.log("AdSense заблокирован."); } else { console.log("VPN не найден, реклама остаётся."); } }})();</script>
Где сверху ?
Можете. Если Вы не с РФ или Белорусии. Добавление сайта, канала при создании адсенса не обязательное. Добавить можно и потом.
О каком антиботе идёт речь ?
Спасибо. Это в поиске привело меня к более менее рабочему решению.
Если кому то будет интересно то сделал так :
Этот скрипт будет проверять IP-адрес пользователя через API vpnapi.io :
<?phpheader('Content-Type: application/json');$api_key = 'ВАШ_API_КЛЮЧ'; // Вставьте ваш API-ключ$user_ip = $_SERVER['REMOTE_ADDR']; // Получаем IP пользователя$api_url = "https://vpnapi.io/api/{$user_ip}?key={$api_key}";// Запрашиваем данные с vpnapi.io$response = file_get_contents($api_url);$data = json_decode($response, true);// Проверяем, является ли IP VPN$is_vpn = $data['security']['vpn'] ?? false;// Отправляем ответ в формате JSONecho json_encode(['vpn' => $is_vpn]);?>
📌 Этот файл ( check_vpn.php ) загрузите в корень вашего сайта ваш сайт.com .
Теперь на клиентской стороне (в браузере) мы будем запрашивать этот PHP-скрипт и, если обнаружен VPN, блокировать рекламу:
<script>fetch("https://ваш сайт.com/check_vpn.php") .then(response => response.json()) .then(data => { if (data.vpn) { console.log("VPN обнаружен! Удаляем рекламу."); // Удаляем все скрипты AdSense document.querySelectorAll("script[src*='adsbygoogle.js']").forEach(el => el.remove()); // Удаляем рекламные блоки AdSense document.querySelectorAll("ins.adsbygoogle").forEach(el => el.remove()); } }) .catch(error => console.error("Ошибка при проверке VPN:", error));</script>
Этот метод не влияет на SEO и не нарушает правила AdSense, так как он просто скрывает рекламу для определённых пользователей. 🚀
Проверил с разными VPN программами. На разных браузерах. Для теста есть 1000 бесплатных запросов.19 дол в месяц за 10000 запросов в день.
29 дол за 50000 запросов в день.
Работает лучше чем ipinfo.io
P.S
Инструкцию писал чат жпт.
К примеру ?
Такого в поиске не наблюдается. Наверно сильно топовый.