Asmin

Asmin
Рейтинг
85
Регистрация
25.07.2021

Самсунг .... айфон...

Я глянул статистику по одному из мох сайтов. Так люди ещё на  Nokia N97 (20x) сидят. Правда посетитель с Китая. 

Lastwarrior #:

По опыту выкуп будет наоборот дешевле или даже вообще не будет дохода.

С чего такие выводы?

Тоже сегодня получил такое письмо.

Новая версия блокировки рекламы адсенс при обнаружении включённого VPN у пользователя.

Старая версия сильно быстро жрала лимит api ключей. Запрос шёл при каждом переходе на следующую страницу. 

🔹 Преимущества этого метода:

Снижает нагрузку на API – не делает повторные запросы в течение 5 минут.
Не требует cookies или баз данных – кэшируется прямо в файлах и sessionStorage .
Быстрее загружается сайт – браузер использует локальный кэш вместо запроса к серверу.

Теперь VPN проверяется только раз в 5 минут на пользователя, что значительно экономит API-запросы! 🚀

🔹 В корне сайта ( public_html или /var/www/html/ ), создайте папку:
vpn_storage

🔹 Дайте ей права записи: 777

В эту папку будут записываться файлы кеширования. 

Новый файл  check_vpn.php:

<?php
header('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>
AdSGO #:
сверху который

Где сверху ?

Кайдал #:
Подскажите, можно ли открыть аккаунт Адсенс с чистого листа, чтобы потом привязать его к каналу с монетизацией. Или у меня не выйдет открыть Адсенс без указания сайта/канала?

Можете. Если Вы не с РФ или Белорусии. Добавление сайта, канала при создании адсенса не обязательное. Добавить можно и потом. 

AdSGO #:
у меня стоит антибот

О каком антиботе идёт речь ? 

master32 #:
на гитхабе vpn+detect+js, помоему от создателей фингерпринта.js

Спасибо. Это в поиске привело меня к более менее рабочему решению.

Если кому то будет интересно то сделал так :

  • Получите API-ключ на vpnapi.io.
  • Создайте серверный PHP-скрипт, который проверяет, используется ли VPN.
  • Подключите этот скрипт на клиентской стороне (в браузере), чтобы блокировать рекламу.
  • Шаг 1: Создаём серверный PHP-скрипт ( check_vpn.php )

    Этот скрипт будет проверять IP-адрес пользователя через API vpnapi.io :

    <?php
    header('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;

    // Отправляем ответ в формате JSON
    echo json_encode(['vpn' => $is_vpn]);
    ?>

    📌 Этот файл ( check_vpn.php ) загрузите в корень вашего сайта ваш сайт.com .


    Шаг 2: Добавляем проверку в HTML

    Теперь на клиентской стороне (в браузере) мы будем запрашивать этот 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>

    🔹 Как это работает

    1. Скрипт запрашивает check_vpn.php , который использует API vpnapi.io для проверки IP.
    2. Если обнаружен VPN ( data.vpn === true ), удаляются все рекламные элементы Google AdSense.
    3. AdSense блокируется только для пользователей с VPN, но остаётся видимым для обычных пользователей.

    📌 Где разместить файлы

    • check_vpn.php — загрузить в корень сайта ( https://ваш сайт.com/check_vpn.php ).
    • JavaScript-код — вставить в <head> или перед </body> на страницах, где нужно скрыть рекламу.

    Этот метод не влияет на SEO и не нарушает правила AdSense, так как он просто скрывает рекламу для определённых пользователей. 🚀

    Проверил с разными VPN программами. На разных браузерах. 
    Для теста есть 1000 бесплатных запросов.
    19 дол в месяц за 10000 запросов в день.

    29 дол за 50000 запросов в день.

    Работает лучше чем ipinfo.io

    P.S

    Инструкцию писал чат жпт.

    master32 #:
    все что есть грузит проц и хромает точность

    К примеру ?

    master32 #:
    1vds

    Такого в поиске не наблюдается. Наверно сильно топовый. 

    Всего: 879