Схема цілком

Шлях одного візиту: від кліка до вердикту

Усередині немає нічого магічного. Скрипт на вашому домені збирає сигнали візиту, ваш сервер пересилає їх нам, детектор кожні 10 хвилин зважує їх за 12 ознаками і пише причину словами. Нижче — увесь ланцюг, без чорної скриньки.

Дані спершу потрапляють на ваш домен · запис поведінки — лише для рекламних візитів

FIRST-PARTY browser cg-tracker.safe.js your-site.com/cg/collect.php sadalclik.com 10 min score · reasons · IP list

Шість кроків, які проходить кожен візит

Перші чотири займають частки секунди. П’ятий і шостий — фонова робота на нашому боці.

  1. Сторінка відкриваєтьсяGoogle Tag Manager спрацьовує на All Pages і підвантажує cg-tracker.safe.js з вашого ж домену. Файл менший за 20 КБ, завантаження асинхронне — сторінка його не чекає і не гальмує.
  2. Скрипт збирає профіль візитуАдреса сторінки, реферер, gclid і utm-мітки, мова, часовий пояс, розмір екрана, тип пристрою, час на сторінці та глибина прокручування. Для візитів з реклами — ще й рух указівника.
  3. Пакет іде на ваш доменPOST на /cg/collect.php — це файл на вашому хостингу, а не стороння адреса. Для браузера це звичайний запит сайту до самого себе.
  4. Ваш сервер пересилає пакет намcollect.php додає IP відвідувача — браузер своєї зовнішньої адреси не знає, її бачить лише сервер по з’єднанню, — підписує пакет ключем акаунта і відправляє на sadalclik.com. Якщо наш сервер недоступний, пакет чекає черги на вашому.
  5. Візит лягає в базу як єСирий запис: факти без оцінки. Вердикту на цьому кроці ще немає, і панель показує візит як необроблений.
  6. Детектор проходить по нових візитахКожні 10 хвилин. Ставить оцінку за 12 ознаками, дописує причини звичайними словами й оновлює список поганих IP. З цього моменту візит видно в журналі з поясненням.

З чого складається оцінка

Чому через ваш домен, а не напряму

Три причини тримати приймач у вас

🔗

Блокувальники не ріжуть свій домен

Запит на /cg/collect.php вашого сайту для браузера не відрізняється від будь-якого іншого запиту сайту до себе. Скрипти й приймачі на чужих доменах списки блокування та режими приватності знімають насамперед — і частина візитів до аналітики просто не доїжджає.

🗄

Дані спершу ваші

Пакет лягає на ваш хостинг раніше, ніж потрапляє до нас: він видний у логах вашого сервера. Пересилання вимикається правкою одного рядка в collect.php, і збір при цьому далі працює локально.

🎯

IP підставляє сервер, а не браузер

Своєї зовнішньої адреси браузер не знає. Її бачить лише ваш сервер по встановленому з’єднанню — тому адресу не можна підробити з боку клієнта, а це головна ознака в оцінці.

GTM сам PHP-файл не створить

Тег у Google Tag Manager додає на сторінку тільки JavaScript. Теку /cg/ з cg-tracker.safe.js і collect.php треба один раз залити по FTP у корінь домену. Це єдина дія, для якої потрібен доступ до хостингу — далі правок у сайті не буде.

Інструкція по GTM

Що знімається з візиту і що не знімається

Список закритий: скрипт збирає рівно те, що потрібно для оцінки кліка, і нічого понад.

Знімаємо

  • Адреса сторінки, реферер, 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. Паролів на сайті ми не заводимо.

Подивіться на свій трафік

Акаунт створюється безкоштовно, без картки — платна підписка сама не вмикається. Ми нічого не блокуємо, просто показуємо, хто до вас приходить.