Схема цілком
Шлях одного візиту: від кліка до вердикту
Усередині немає нічого магічного. Скрипт на вашому домені збирає сигнали візиту, ваш сервер пересилає їх нам, детектор кожні 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. Паролів на сайті ми не заводимо.
Подивіться на свій трафік
Акаунт створюється безкоштовно, без картки — платна підписка сама не вмикається. Ми нічого не блокуємо, просто показуємо, хто до вас приходить.