Фильтры¶
Фильтры отвечают на вопрос «подходит ли этот клик потоку». Поток типа
regular или forced рассматривается, только если условия дали true.
У default-потока фильтры не проверяются вообще — он всегда запасной вариант.
Два режима¶
Простой режим — плоский список условий с общей логикой:
- Все (AND) — должны совпасть все условия;
- Любое (OR) — достаточно одного.
Дерево правил — вложенные группы AND/OR для произвольной логики:
Переключение — кнопками Простой режим / Дерево правил. Переход из дерева в простой режим теряет вложенные группы, трекер об этом предупредит. Редактор даёт вкладывать группы до 5 уровней.
Что имеет приоритет
Непустое дерево правил всегда важнее плоского списка: если у потока есть и то и другое, на клике считается дерево. Пустое дерево — как будто его нет: берётся плоский список. Внутри дерева группа без условий не ограничивает ничего и считается пройденной.
Операторы и значения¶
Операторов два: is и is not (инверсия — «страна НЕ Россия»). Несколько значений в одном условии — это OR между ними.
Форма значения:
| Форма | Пример | Смысл |
|---|---|---|
| точное | US |
равенство, регистр не важен |
| glob | chrome*, ios1? |
* — любая строка, ? — любой символ |
| regex | /^mozilla.*bot/ |
регулярное выражение между слэшами |
@empty |
@empty |
значение отсутствует (пустая страна, пустой sub) |
Флаги regex — не после слэша
Значение считается регулярным выражением, только если оно и начинается, и
заканчивается слэшем. Хвост вида /…/i не сработает — регистронезависимость
задаётся внутри: /(?i)^mozilla.*bot/.
Сопоставление зависит от типа условия — glob и regex понимают не все. Для
ip_list и ua_list правила относятся к значениям самого списка:
| Как сопоставляется | Типы условий |
|---|---|
точно / glob / regex / @empty |
country region city device isp search_engine parameter timezone mobile_brand mobile_carrier connection_type ad_campaign_id adset_id creative_id source_site |
| подстрока / glob / regex | ua ua_list keyword device_model x_requested_with |
по префиксу (Chrome ⊃ Chrome Mobile) |
os browser |
основной языковой тег (en ⊃ en-US) |
language |
| домен и его поддомены | referrer_domain |
| IP или CIDR | ip ip_list |
версия: >=14, <16, 17.4 (⊃ 17.4.x), @empty |
os_version browser_version |
| без значения — да/нет | bot datacenter vpn proxy tor ipv6 empty_referrer |
Что можно фильтровать¶
| Фильтр | Значение |
|---|---|
country |
ISO-код страны: US, DE |
region |
код региона из базы GeoIP |
city |
город, английское название из базы GeoIP: Los Angeles |
language |
первый тег Accept-Language: en, en-US |
timezone |
часовой пояс посетителя из GeoIP: Europe/Berlin |
| Фильтр | Значение |
|---|---|
device |
desktop · mobile · tablet |
device_model |
модель: iPhone, SM-A515F |
os |
Windows, Android, iOS |
os_version |
>=14, 17.4, <16 |
browser |
Chrome, Safari |
browser_version |
так же, как os_version |
isp |
провайдер / владелец ASN |
ipv6 |
клик пришёл по IPv6 |
mobile_brand |
Apple, Samsung, Xiaomi — из User-Agent |
mobile_carrier |
нормализованный оператор; если не распознан — подстрока по isp |
connection_type |
wifi · cellular · ethernet · bluetooth · unknown |
| Фильтр | Значение |
|---|---|
ip |
IP или подсеть в CIDR: 203.0.113.7, 10.0.0.0/8 |
ip_list |
именованный IP-список |
ua |
строка User-Agent |
ua_list |
именованный UA-список |
x_requested_with |
заголовок in-app браузера: com.zhiliaoapp.musically. Пуст на Click API |
| Фильтр | Значение |
|---|---|
empty_referrer |
реферера нет |
referrer_domain |
google.com — совпадает и с поддоменами |
keyword |
поисковый запрос |
search_engine |
google · bing · yandex · duckduckgo · yahoo · baidu |
ad_campaign_id · adset_id · creative_id · source_site |
нормализованные токены источника трафика |
parameter |
произвольный параметр: имя (sub_id_1…sub_id_30 или любой ключ query-строки) + значения |
| Фильтр | Значение |
|---|---|
bot · datacenter · vpn · proxy · tor |
см. Антифрод |
uniqueness |
уникальность визитора: в кампании · в потоке · по всем кампаниям |
| Фильтр | Значение |
|---|---|
schedule |
дни недели + окно 09:00-18:00 (окно необязательно) |
dates |
2026-05-28 или диапазон 2026-06-01..2026-06-30 |
clicks_limit |
число + область: за час / за сутки, по кампании или по этому потоку |
Часовой пояс расписания
schedule считается в часовом поясе посетителя (timezone из GeoIP).
Если пояс определить не удалось — в UTC. dates всегда считается по UTC.
clicks_limit совпадает, пока счётчик ниже лимита: поток работает до
лимита и после него перестаёт подходить. Если счётчик прочитать не удалось,
условие проходит — трафик не встаёт из-за недоступного Redis.
Антифрод: bot, datacenter, vpn, proxy, tor¶
Работают из коробки на публичных списках с автообновлением: IP-разведка и
сигнатуры ботов — по IPINTEL_REFRESH (по умолчанию раз в сутки), список Tor —
каждые 6 часов.
| Фильтр | На чём основан |
|---|---|
bot |
сигнатуры User-Agent известных краулеров + разбор UA на самом клике |
datacenter |
ASN-денилист хостингов (сверяется с ASN из GeoIP) + CIDR-листы дата-центров |
vpn |
публичные CIDR-листы VPN-провайдеров |
tor |
список exit-нод Tor |
proxy |
требует своего источника — по умолчанию только эвристика по заголовкам |
Сигнал proxy по умолчанию опирается только на заголовки запроса: цепочка
X-Forwarded-For длиннее одного хопа либо присутствие Via, Forwarded,
Proxy-Connection и подобных. Чтобы он работал по спискам подсетей, укажите
свой источник в переменной IPINTEL_PROXY_CIDR_SOURCE
(переменные окружения).
Любой источник можно заменить на локальный файл — тогда трекер работает без
доступа в интернет. Размеры загруженных баз и время последнего обновления
возвращает GET /admin_api/v1/system/status в поле intel.
Рабочая связка против мусора
Первый поток с позицией 0, схема 404 или do_nothing, фильтр
bot = да ИЛИ datacenter = да. Мусор отсекается до партнёрки и не портит
её статистику — а в отчётах он остаётся виден.
IP- и UA-списки¶
Списки живут отдельно (IP-списки, UA-списки) и переиспользуются в любых потоках — не нужно копировать один и тот же набор в каждый фильтр. Обновили список — изменение сразу действует на все потоки, где он выбран.
В IP-списке строки — это IP-адреса и подсети CIDR. В UA-списке — подстроки,
glob'ы и regex в слэшах, как у обычного условия ua. В одном списке до 10 000
значений.
Лимиты¶
| Что | Предел |
|---|---|
| длина одного значения | 512 байт |
| условий на поток (список + дерево) | 500 |
| значений на поток суммарно | 5000 |
| значений в одном IP/UA-списке | 10 000 |
Некорректный regex и превышение лимита отклоняются при сохранении потока или списка — на клик заведомо сломанное правило не попадает.
Отладка¶
В редакторе потока есть кнопка 🧪 Тест: она собирает синтетический клик (IP, страна, устройство, ОС, браузер, User-Agent, реферер, флаги bot / unique / datacenter / vpn) и прогоняет его по всем потокам кампании. В ответе — какой поток выбран и какое условие каждого потока прошло, а какое нет. Клик при этом никуда не пишется и в статистику не попадает.
Если расходится на живом трафике — откройте
Traffic log: там по каждому клику видно,
какое условие какого потока дало false и куда клик ушёл в итоге.