Схема целиком
Путь одного визита: от клика до вердикта
Внутри нет ничего магического. Скрипт на вашем домене собирает сигналы визита, ваш сервер пересылает их нам, детектор каждые 10 минут взвешивает их по 12 признакам и пишет причину словами. Ниже — вся цепочка, без чёрного ящика.
Данные сначала попадают на ваш домен · запись поведения — только для рекламных визитов
Шесть шагов, которые проходит каждый визит
Первые четыре занимают доли секунды. Пятый и шестой — фоновая работа на нашей стороне.
- Страница открываетсяGoogle Tag Manager срабатывает на All Pages и подгружает cg-tracker.safe.js с вашего же домена. Файл меньше 20 КБ, загрузка асинхронная — страница его не ждёт и не тормозит.
- Скрипт собирает профиль визитаАдрес страницы, реферер, gclid и utm-метки, язык, часовой пояс, размер экрана, тип устройства, время на странице и глубину прокрутки. Для визитов с рекламы — ещё и движение указателя.
- Пакет уходит на ваш доменPOST на /cg/collect.php — это файл на вашем хостинге, а не сторонний адрес. Для браузера это обычный запрос сайта к самому себе.
- Ваш сервер пересылает пакет намcollect.php добавляет IP посетителя — браузер свой внешний адрес не знает, его видит только сервер по соединению, — подписывает пакет ключом аккаунта и отправляет на sadalclik.com. Если наш сервер недоступен, пакет ждёт очереди на вашем.
- Визит ложится в базу как естьСырая запись: факты без оценки. Вердикта на этом шаге ещё нет, и панель показывает визит как необработанный.
- Детектор проходит по новым визитамКаждые 10 минут. Ставит оценку по 12 признакам, дописывает причины обычными словами и обновляет список плохих IP. С этого момента визит виден в журнале с объяснением.
Почему через ваш домен, а не напрямую
Три причины держать приёмник у вас
Блокировщики не режут свой домен
Запрос на /cg/collect.php вашего сайта для браузера неотличим от любого другого запроса сайта к себе. Скрипты и приёмники на чужих доменах списки блокировки и режимы приватности снимают в первую очередь — и часть визитов до аналитики просто не доезжает.
Данные сначала ваши
Пакет ложится на ваш хостинг раньше, чем попадает к нам: он виден в логах вашего сервера. Пересылка выключается правкой одной строки в collect.php, и сбор при этом продолжает работать локально.
IP подставляет сервер, а не браузер
Свой внешний адрес браузер не знает. Его видит только ваш сервер по установленному соединению — поэтому адрес нельзя подделать со стороны клиента, а это главный признак в оценке.
GTM сам PHP-файл не создаст
Тег в Google Tag Manager добавляет на страницу только JavaScript. Папку /cg/ с cg-tracker.safe.js и collect.php нужно один раз залить по FTP в корень домена. Это единственное действие, для которого нужен доступ к хостингу — дальше правок в сайте не будет.
Что снимается с визита и что не снимается
Список закрытый: скрипт собирает ровно то, что нужно для оценки клика, и ничего сверх.
Снимаем
- Адрес страницы, реферер, gclid и utm-метки
- IP-адрес и сеть: провайдер, дата-центр, VPN, узел Tor
- Устройство, ОС, браузер, размер экрана, язык, часовой пояс
- Время на странице, глубина прокрутки, клики по ссылкам
- Движение указателя — только для визитов с рекламы
- Идентификатор визита, живущий столько же, сколько журнал тарифа
Не снимаем
- Содержимое полей форм: имена, телефоны, почту, адреса
- Пароли и платёжные данные — маскируются в самом скрипте, до отправки
- Cookie других сервисов и ваши собственные
- Данные с других вкладок, сайтов и из истории браузера
- Визиты на страницы, где тега нет: админку можно оставить чистой
Роль сторон юридически: владелец данных — вы, SadalClik их обрабатывает по вашему поручению. Что и сколько хранится, и как удалить всё разом — в политике конфиденциальности. Политика конфиденциальности
Шаг шестой, подробно
Что именно взвешивает детектор
Двенадцать признаков, собранных в пять групп. Ни один из них не выносит приговор в одиночку — они складываются в оценку, а порог вы задаёте сами.
| Группа | Что смотрим | Как это выглядит в журнале |
|---|---|---|
| Сеть | Кому принадлежит IP и не числится ли адрес в чёрных списках: домашний провайдер, мобильный оператор, дата-центр, VPN, выходной узел Tor. Шесть источников: Tor, FireHOL, IPsum, Spamhaus, blocklist.de, AbuseIPDB | «IP дата-центра Hetzner, адрес в двух чёрных списках» |
| Отпечаток | Браузер, ОС, экран, язык, часовой пояс и согласованы ли они между собой | «один отпечаток — семь разных адресов» |
| Поведение | Время на странице, прокрутка, движение указателя, клики | «мгновенный уход, 0 с, прокрутки нет» |
| Частота | Сколько раз этот адрес и этот отпечаток приходили с рекламы за сутки и не повторяется ли один gclid | «11 кликов с одного адреса за час» |
| Строка браузера | Что заявляет о себе User-Agent: краулеры, curl и библиотеки, признаки headless, версии, которых не существует | «в строке браузера python-requests» |
Причина пишется словами и хранится вместе с визитом. Через месяц можно открыть спорный клик и увидеть не оценку «87», а ровно тот набор фактов, из которого она сложилась.
Результат
Так выглядит одна строка журнала
Это не сводка за месяц и не процент фрода. Это один конкретный клик, за который вы заплатили, и причины, по которым он помечен.
14:32:07 185.xxx.xxx.14 Hetzner Online
/posluhy/?gclid=Cj0KCQjw... Chrome 127 · Windows
время на странице: 0 с · прокрутка: нет
оценка: 91 / 100
причины: IP дата-центра · в 2 чёрных списках · мгновенный уход · 7-й клик за сутки
- Панель: журнал с фильтрами по дате, кампании, сети и оценке, плюс запись движения мыши для рекламных визитов
- Отчёты: сводка за период в Telegram и на почту, без захода в панель
- Выгрузка: список плохих IP файлом — его вы загружаете в исключения кампании
Где цепочка обрывается — честно
Последний шаг, загрузку списка в Google Ads, сегодня делает человек. Пока это так, обещать «блокируем автоматически» мы не будем.
Автоотправка исключений в Ads — в разработке
Список плохих адресов детектор формирует, показывает с причинами и отдаёт файлом. В рекламный кабинет его загружаете вы или ваш специалист. Выгрузка конверсий в Ads не работает вообще — этого в системе сейчас нет.
Потолок Google Ads: 500 исключений на кампанию
Выше этого числа новые блокировки просто перестают действовать — без ошибки и без предупреждения, адреса продолжают кликать. Поэтому при выгрузке детектор ставит в начало худшие адреса, а не выкидывает всё подряд. Это же и ответ на «я и руками заблокирую»: руками вы упрётесь в потолок и не заметите.
Google признаёт недействительной лишь часть кликов и не объясняет, какие именно. Наш детектор на тех же кампаниях помечает заметно больше. Это не спор о возврате денег: мы показываем адреса и причины, чтобы вы перестали платить за них заранее.
Первую неделю аккаунт стоит держать в режиме наблюдения — система показывает, кого бы заблокировала, но ничего не блокирует. Так видно цену ошибки до того, как она случится.
Регистрация и подтверждение — только через Telegram-бот @sadalclik_bot. Паролей на сайте мы не заводим.
Посмотрите на свой трафик
Аккаунт создаётся бесплатно, без карты — платная подписка сама не включается. Мы ничего не блокируем, просто показываем, кто к вам приходит.