Продолжим тему. Раз пошла такая пьянка, раскрою некоторые безопасные фокусы, использовать вам их или нет - дело ваше личное. Наверное уже некоторые убедились, что уничтожение ботов на своем сайте работает. Тут правда надо учитывать еще и качество сайта, ибо ГС и генеренные с ИИ все равно мало актуальны для яндекса и тем более для рекламодателей.
<script>// ID вашего RTB-блока (из кода Яндекса)const BLOCK_ID = 'R-A-1234567-1'; // ← замените на свойlet refreshCount = 0;const MAX_REFRESHES = 30; // сколько раз обновить за сессию (защита от бесконечного цикла)const REFRESH_INTERVAL = 40000; // 40 секунд — самый безопасный интервал.function refreshYandexRTB() { if (refreshCount >= MAX_REFRESHES) return; if (typeof Ya !== 'undefined' && Ya.adfoxCode) { Ya.adfoxCode.reload(BLOCK_ID, { onlyIfInViewport: true }); refreshCount++; }}// Запускаем через 40 секунд после загрузки страницыsetTimeout(() => { refreshYandexRTB(); // Дальше каждые 40 секунд, только если пользователь ещё на странице setInterval(() => { if (document.visibilityState === 'visible') { refreshYandexRTB(); } }, REFRESH_INTERVAL);}, REFRESH_INTERVAL);</script>
Более грамотный вариант, ротация только при видимости...
<script>const BLOCK_ID = 'R-A-1234567-1';let refreshed = false;const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting && !refreshed && entry.intersectionRatio > 0.5) { setTimeout(() => { if (typeof Ya !== 'undefined' && Ya.adfoxCode) { Ya.adfoxCode.reload(BLOCK_ID); refreshed = true; } }, 35000); // обновляем через 35 сек после появления в зоне видимости } });}, { threshold: 0.5 });// Находим контейнер блока по data-id или классуconst blockContainer = document.querySelector(`div[data-id="${BLOCK_ID}"]`) || document.querySelector('.yandex-rtb-block');if (blockContainer) observer.observe(blockContainer);</script>
Ротация при скролле вниз если статья длинная...
<script>const BLOCK_ID = 'R-A-1234567-2'; // блок в середине или внизу статьиlet lastScrollY = 0;let refreshes = 0;window.addEventListener('scroll', () => { if (refreshes >= 15) return; const scrolled = window.scrollY + window.innerHeight; const pageHeight = document.body.scrollHeight; // Если проскроллили больше 70% страницы — обновляем if (scrolled > pageHeight * 0.7 && window.scrollY > lastScrollY) { lastScrollY = window.scrollY; setTimeout(() => { if (typeof Ya !== 'undefined' && Ya.adfoxCode) { Ya.adfoxCode.reload(BLOCK_ID); refreshes++; } }, 30000); }});</script>
Автоматическая ротация липких блоков, например боковая колонка...
<script>const BLOCK_ID = 'R-A-1234567-3';let timeOnPage = 0;const interval = setInterval(() => { timeOnPage += 30; if (timeOnPage >= 30 && timeOnPage % 40 === 0) { // каждые 40 сек if (document.visibilityState === 'visible') { Ya.adfoxCode.reload(BLOCK_ID, { onlyIfInViewport: false }); } } if (timeOnPage > 1200) clearInterval(interval); // останавливаем через 20 минут}, 30000);</script>
Проблема сего общества озвучена, они будут тратить время на флейм и хейт на чужих ресурсах, но заняться своим не могут ....
Каждая вложенная минута в своей ресурс, на дистанции дает доход.
Поставил по приколу на один сайт по инструкции. Доход не изменился (сюрприз-сюрприз).
Выводы делайте сами)
Вывод делается после ввода. Второй теоретик - пройдите мимо. 😀
Или подробней ...что сделано, как. Ссылки покажи на ресурс.
и CPMV в районе 1000р?
Что за тематика такая?
Комплексная ошибка начинающего вебмастера. Я об этом сказал чуть раньше, но придется разжевать. Все эти CPMW хотя и имеют какой-то смысл, но это следствие ваших действий или бездействия. Это просто статистика, то есть прошлое, которое не вернуть и опираться на него - это топтаться на месте. Нужно было спросить, "что ты сделал, чтобы улучшить статистику?" А вопрос про тематику меня добил - честно.
Большая комплексная ошибка в том, что вы читаете всякую ерунду про то, что вот на такой тематике можно заработать, а потом на вот такой - вот все кто гонится за этим, как правило делают ГС. Все просто - они не разбираются в тематике и просто чего-то там делают, наваливают кучу мусора и потирают ручки в надежде заработать. Ну чего, много заработали? 😀
Открываю самый главный секрет. Делайте сайты только по той тематике, в которой вы настоящий специалист!
Если вы разбираетесь как делать табуретки или гравировать чугунные сковородки - предайте людям свой опыт, они вас оценят. Расскажите им все свои секреты, про оборудование и тонкости производства.... только в таком случае ваш сайт будет привлекать посетителей, они будут его помнить и постоянно возвращаться на него. Нет никакой тематики, которая дает огромный доход, это все было 10 лет назад, сейчас в это верят только новички. Рекламодатели не лохи, они знают где есть реальный полезный контент и реальная целевая аудитория по их профилю.. Так что.
И открою еще секрет... Если у вас реальный сайт с настоящей полезной информацией в которой вы хорошо разбираетесь, то рекламодатели сами будут вам писать письма чтобы разместить рекламу напрямую!
И тогда дам совет... Если размещаете прямую рекламу, не соглашайтесь работать с "крохоборами", требующими "лиды"... Требующие обязательных действий, покупок и так далее при переходе с вашего сайта. Это не рекламодатели, а чаще... ну вы поняли да? Для этого как раз у вас есть РСЯ... ставите ее и все. При продаже места на сайте договаривайтесь исключительно место-время размещения, покажите статистику трафика рекламодателю и все. Почему так?
Все на самом деле просто. Вы бесплатно поработаете.... Вот есть у вас сайт, где постоянно трутся 500 бабусь занимающихся вязанием... Рекламодатель захочет прорекламировать нитки для вязания, но поставит условия, что мол сперва пусть купят, а потом я тебе заплачу! Вот тут ваш просчет... догадываетесь в чем? 500 Бабусь почитает эту рекламу, месяц-два... у них уже на подкорке название ниток записано, а потом, когда-то потом месяца через три вспомнят! Ой ля... надо такие нитки купить и купит, попросит внучка заказать в том магазине что на вон нашем вязальном сайте. Бабуля купила - рекламодатель получил профит = вы в пролете! Так что, думайте наперед.
Почему я поделился своим опытом?
Я такой же как и вы меркантильный человек и люблю зарабатывать, причем не обязательно на сайтах, сайты - это больше пассивный заработок, хобби, для души... Сейчас существует реальная проблема, которую можно решить только навалившись всей толпой. Она заключается в том, что развитие ботоферм и ИИ превращает интернет в откровенную помойку. Я старый человек и помню все этапы развития рунета и даже желтые странички.... да, были такие! Так вот, пока вы работаете на автоматизированные инфопомойки, создавая свои горбом (вебмастера не редко горбатые ибо сидят в раскоряку) уникальный полезный контент для людей - кто-то уже давно вас сливает за три копейки. Если вы позволите вас парсить, тренировать на ваших сайтах ИИ модели, позволять скликивать рекламу - вы ничего не заработаете и реклама будет только дешеветь, причем абсолютно для всех Нас! Прощелыги от темной стороны могут легко из вашего отличного сайта сделать невидимое серое убожество, которое никогда не будет приносить доход, а он ведь вам нужен? Думаю, что люди вваливающие деньги в рекламу сейчас меня поняли полностью, они знают как сливаются бюджеты.... Если вы думаете, что какой-то DDOS проблема, то это проблема прошлого десятилетия, сейчас конкуренты заказывают бототрафик, который никогда не уронит ваш сайт, но будет всячески создавать различные технические и финансовые проблемы... подробности я упущу дабы не повадно стало....
Если мы, сообща начнем действовать не по плану жуликов - они останутся без работы и РУнет будет развиваться нормальным естественным путем.
1 Выносите из огорода всех ботов!
2 Не верьте всяким "раскрутчикам" сайтов, не платите денег за фейковые улучшения, я вам могу такой трафик нарисовать на счетчиках, что в гугле обзавидуются, но это будет фейк, созданный ботами. Наверное многие из заказчиков сталкивались, что заказали раскрутку, трафик прет, а лидов не прибавилось! Поздравляю - вас .... ну вы поняли 😀
3 Не пользуйтесь генераторами ИИ для контента - это могила для вашего проекта. ИИ неплох для поиска информации, для работы с графикой, музыкой или сбором статистики, но контент - это жесть. И кстати перевод на другие языки автоматическими переводчиками 100% детект не уникальности вашего сайта! ИИ не умеет переводить, он "плывет" уже на третьей-пятой странице и сочинит вам таких небылиц.... Но это знают только те, кто знает иностранные языки. Так что, если заказываете импортный рерайт, лучше не поскупитесь и заплатите живым переводчикам, предварительно осведомившись об их образовании.... останетесь в выигрыше..
Это у вас сейчас с одного уникального посетителя больше 20 коп ?
Разве бывают такие цифры?
В случае с мобильными сетями однозначного ответа не будет, так как необходимо изучать вашу ситуацию. Хотя, можно воткнуть капчу .. Например есть у того же яндекса https://yandex.cloud/ru/docs/smartcaptcha/concepts/invisible-captcha Но это зависимость в некотором смысле...
Короче... один из вариантов... ставим капчу по ASN!
Основные ASN мобильных операторов России Из баз BGP (whois, ipinfo.io, bgp.he.net):
МТС (PJSC MTS): AS8359, AS28840, AS43804, AS25478, AS31324, AS43690
МегаФон (PJSC MegaFon): AS31133, AS50923, AS31286, AS41203, AS42116, AS47463
Билайн (PJSC VimpelCom): AS3216, AS8402, AS15835, AS1299 (частично), AS9002
Tele2 (T2 Mobile / Rostelecom): AS39374, AS49102, AS201848, AS43612, AS48740
Yota использует сеть МегаФон (AS31133)
Подключаем рекапчу версия 3...
<!-- В <head> всех страниц --><script src="https://www.google.com/recaptcha/api.js?render=6LeIxAcTAAAAAAAAAAAAAAAA"></script><script>grecaptcha.ready(function() { grecaptcha.execute('6LeIxAcTAAAAAAAAAAAAAAAA', {action: 'homepage'}).then(function(token) { document.getElementById('g-recaptcha-response').value = token; });});</script>
<!-- Скрытое поле в <form> или в body --><input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response">
Делаем файлик типа /check_recaptcha_asn.php (включаем на всех страницах через include):
<?php// check_recaptcha_asn.phpsession_start();$RECAPTCHA_SECRET = '6LeIxAcT.....'; // ваш секрет$MOBILE_ASNS = [8359,28840,43804,25478,31324,43690,31133,50923,31286,41203,42116,47463,3216,8402,15835,1299,9002,39374,49102,201848,43612,48740];$ip = $_SERVER['REMOTE_ADDR'];// 1. Получаем ASN по IP (кешируем на 24ч)function get_asn($ip) { $cache_file = sys_get_temp_dir() . '/asn_' . md5($ip); if (file_exists($cache_file) && filemtime($cache_file) > time() - 86400) { return file_get_contents($cache_file); } $data = @json_decode(file_get_contents("https://api.bgpview.io/ip/$ip"), true); $asn = $data['data']['asns'][0]['asn'] ?? 0; file_put_contents($cache_file, $asn); return $asn;}$asn = get_asn($ip);// 2. Если ASN мобильный — включаем строгую проверкуif (in_array($asn, $MOBILE_ASNS)) { if (!isset($_SESSION['recaptcha_passed_mobile'])) { if (isset($_POST['g-recaptcha-response'])) { $response = $_POST['g-recaptcha-response']; $verify = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$RECAPTCHA_SECRET&response=$response"); $captcha_success = json_decode($verify); if ($captcha_success->success && $captcha_success->score >= 0.5 && $captcha_success->action == 'homepage') { $_SESSION['recaptcha_passed_mobile'] = true; } else { // НЕ ПРОШЁЛ — показываем капчу заново die('<meta charset="utf-8"><title>Проверка</title> <h2>Подождите, проверяем...</h2> <script src="https://www.google.com/recaptcha/api.js?render=6LeIxAcTAAAAAAAAAAAAAAAA"></script> <script> grecaptcha.ready(function() { grecaptcha.execute("6LeIxAcTAAAAAAAAAAAAAAAA", {action: "homepage"}).then(function(token) { let form = document.createElement("form"); form.method = "POST"; form.innerHTML = `<input type="hidden" name="g-recaptcha-response" value="${token}">`; document.body.appendChild(form); form.submit(); }); }); </script>'); } } else { // Первый заход — заставляем пройти reCAPTCHA die('<meta charset="utf-8"><title>Проверка</title> <h2>Одну секунду...</h2> <script src="https://www.google.com/recaptcha/api.js?render=6LeIxAcTAAAAAAAAAAAAAAAA"></script> <script> grecaptcha.ready(function() { grecaptcha.execute("6LeIxAcTAAAAAAAAAAAAAAAA", {action: "homepage"}).then(function(token) { let form = document.createElement("form"); form.method = "POST"; form.innerHTML = `<input type="hidden" name="g-recaptcha-response" value="${token}">`; document.body.appendChild(form); form.submit(); }); }); </script>'); } }}// Если прошли — продолжаем загрузку сайта?>
Применение:
<?php include 'check_recaptcha_asn.php'; ?><!DOCTYPE html><html><head>…</head><body> Ваш сайт работает как обычно</body></html>
Для вордпресов примерно так ...
Воткнуть в functions.php:
add_action('wp_head', function() { if (isset($_SESSION['recaptcha_passed_mobile'])) return; $ip = $_SERVER['REMOTE_ADDR']; $asn = @json_decode(file_get_contents("https://api.bgpview.io/ip/$ip"))->data->asns[0]->asn ?? 0; $mobile_asns = [8359,28840,43804,25478,31324,43690,31133,50923,31286,41203,42116,47463,3216,8402,15835,1299,9002,39374,49102,201848,43612,48740]; if (in_array($asn, $mobile_asns)) { echo '<script src="https://www.google.com/recaptcha/api.js?render=6LeIxAcTAAAAA"></script>'; }});add_action('init', function() { if (isset($_POST['g-recaptcha-response'])) { $secret = '6LeIxAcT.....'; $response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=".$_POST['g-recaptcha-response']); $result = json_decode($response); if ($result->success && $result->score >= 0.5) { $_SESSION['recaptcha_passed_mobile'] = true; } }});
Можно конечно и через Fail2Ban запилить с GEO ...но там надо смотреть по ситуации и вообще все ситуации уникальны...
пс. Перед втыканием гугловской капчи не забудьте получить ключи....
Ребят, вы все смотрите под нос, но вокруг не оглядываетесь. Основные тезисы я уже озвучил ранее и в первой моей теме кстати кто-то просил скрины мол покажи роботов. У меня всего три небольших сайта, хорошо, вот скрины.
Итак: Я вчера немного ненадолго открутил гайки на сервере и пустил погулять ботов. Вот так это выглядит ...
А вот так выглядит с правильными настройками...
Как видите, вообще чисто. Но это еще не все! Яндекс прекрасно знает правильных ботов (своих, гугла и других пс) и не учитывает в моем случае ибо я сам вырубил их из отчета, но это можно увидеть в другом отчете...
Почему нужно это сделать?
1 Потому, что рекламодатели платят только за реальный трафик.
2 Потому, что инструменты Яндекса уже работают как надо и все видят... никакие накрутки и подобные панипуляции не работают, а только отпускают ваши проекты на дно интернета.
3 Потому, что вы отрежете доступ практически всем ботам (но есть моменты)... в 90% случаев ваш уникальный контент уже не будет использован в сети паразитами, в том числе автоматическими парсерами и рерайтерами на основе ИИ.
4 Потому, что Яндекс легко вычисляет и материалы созданные ИИ и ваш сайт с каждым новым таким материалом будет отпускаться на то же дно, в том числе сайты с голимым рерайтом. Они уже научились вычленять ГС .....
5 На этом форуме практически каждый из вас конкурент каждому, многие из вас даже неведая об этом часто таскают материалы и идеи друг друга в свои проекты, многие пользуются как раз ИИ для ускорения процесса. Потому знайте - ИИ Бой!
Всем желаю удачи, новых красивых проектов, хорошего заработка в новом году!