Bot detection and custom bot lists
Which signs make the tracker mark a click as a bot, and how to add your own lists of User-Agents and IP addresses.
The tracker checks every click for signs of a bot. The built-in check always runs and cannot be configured, while your own bot lists add User-Agent fragments, IP addresses and subnets to it. Owners and admins can view and change bot lists.
What happens to a bot
The “bot” («бот») mark on its own does not block a click. Here is what it does:
- In a campaign with cloaking enabled, the bot is sent to the “white” — see Where filtered traffic goes.
- Without cloaking, the bot goes through the streams like a regular visitor. To keep bots out of a stream, add the Bot («Бот») =
falsecondition to it — see Protecting a stream without cloaking. - In reports, the click counts toward the Bots («Боты») metric, and the Bot grouping and filter separate such clicks from the rest.
- The
{is_bot}macro returns1for a bot and0for other clicks. All macros are in the reference.
Built-in signs
The tracker checks the signs in the order listed in the table and stops at the first match. Bot lists are checked last: if a click has already been identified as a bot by a built-in sign, it keeps that sign's code, not custom_list.
| Code | When it triggers |
|---|---|
ua_bot | The User-Agent is recognized as a bot: a known crawler, a headless browser or a website link inside the User-Agent |
empty_ua | The User-Agent is empty, or neither the browser nor the operating system could be determined from it |
ua_signature | The User-Agent contains one of the built-in signatures — see the list below |
datacenter | The connection type is hosting, that is, a data center address. Only the IP2Proxy database provides the connection type |
custom_list | The click matched your bot list by User-Agent or IP |
The code is visible only in a campaign with cloaking enabled: in the click window, in the Cloaking («Клоака») section, the Reasons («Причины») line contains text like “bot/moderation by UA or connection (ua_signature)” («бот/модерация по UA или коннекту (ua_signature)»). How to open the click window and read the other reasons is covered on the Diagnostics: why a click went to “white” page.
VPN, Tor and proxy addresses are not counted as bots. They are filtered out by the Block proxy / VPN / Tor («Блокировать прокси / VPN / Tor») checkbox in cloaking or by the Proxy / DC («Прокси / ДЦ») = false condition in a stream.
Built-in User-Agent signatures
A signature is searched for as a substring, case-insensitive. The bot signature triggers on any crawler with the word bot in its name. Cubot smartphones do not fall under it. You do not need to add these values to your bot list.
- General:
bot,crawl,spider,slurp,preview,monitor,uptime. - Browser automation:
headless,phantom,puppeteer,playwright,selenium,scrapy. - Libraries and command-line clients:
curl/,wget,python-requests,python-urllib,go-http-client,java/,okhttp,apache-httpclient,libwww,lwp::,httpclient,axios/,node-fetch,guzzle. - Scanners, monitoring and speed testing:
pingdom,datadog,censys,masscan,zgrab,nmap,lighthouse,chrome-lighthouse,gtmetrix. - Google:
googlebot,adsbot,mediapartners,google-read-aloud,googleweblight,google-inspectiontool,storebot-google,google favicon,feedfetcher-google,apis-google. - Other search engines:
bingbot,bingpreview,adidxbot,msnbot,yandexbot,yandex.com/bots,applebot,duckduckbot,baiduspider,petalbot. - Social networks and messengers:
facebookexternalhit,facebot,facebookcatalog,meta-externalagent,whatsapp,telegrambot,twitterbot,linkedinbot,pinterestbot. - SEO services:
ahrefsbot,semrushbot,mj12bot,dotbot.
How to add your own bot list
- Click the Admin panel («Админ-панель») icon in the top right corner of the panel.
- Choose Settings («Настройки»).
- Go to the Bots and GEO («Боты и гео») tab. The bot list block is below the IP2Proxy block and starts with the text “Custom bot lists on top of the built-in detection” («Кастомные бот-листы поверх встроенного детекта»).
- Paste User-Agent fragments into the Bot UA — substrings (one per line) («Бот UA — подстроки (по одной на строку)») field.
- Paste addresses and subnets into the Bot IP / CIDR (one per line) («Бот IP / CIDR (по одному на строку)») field.
- Click Save («Сохранить») under these fields.
The message “Saved — will be applied to the engine within ~15s” («Сохранено — применится к движку в течение ~15с») appears above the fields for three seconds. The list starts applying to new clicks within about 15 seconds; no restart is needed. Clicks already recorded are not recalculated.
Prepare the list in a text editor and paste it into the field in full. When you type on the keyboard, the field immediately removes empty lines and spaces at the edges of lines, so pressing Enter at the end of the list does not start a new line.
To remove an entry, delete the line and click Save again. Empty fields mean that only the built-in check is running.
Filling-in rules
| Field | What to enter | How it is compared | Limits |
|---|---|---|---|
| Bot UA — substrings (one per line) | A User-Agent fragment, for example MyScanner | The click is considered a bot if the line appears anywhere in the User-Agent. Case-insensitive | Up to 10000 lines, each up to 512 bytes — that is 512 Latin characters |
| Bot IP / CIDR (one per line) | An address 203.0.113.10 or a subnet 203.0.113.0/24. Both IPv4 and IPv6 work | The click's address equals the entry or falls within the subnet | Up to 10000 lines |
Wildcard masks like 203.0.113.* are not accepted in the IP field — write the subnet in CIDR format.
Both lists together must be smaller than 1 MiB. If they are larger, the message “JSON object expected” («Ожидается JSON объект») appears when you save.
There is one list for the whole installation, and it applies to clicks of all campaigns.
A User-Agent substring is compared without word boundaries. A short or common entry, for example chrome or android, will mark real visitors as bots, and in campaigns with cloaking they will be sent to the “white” instead of the offer.
Checking the result
- Wait 15 seconds after saving.
- Open the campaign link from an IP address on the list or from a browser whose User-Agent contains a fragment from the list.
- Open this campaign in the panel.
- Click Statistics («Статистика»).
- Go to the Click log («Лог кликов») tab.
- Find your click. In the Bot column, it has the “bot” mark.
In a campaign with cloaking enabled, click the row of the click. In the Cloaking section, the Reasons line contains “bot/moderation by UA or connection (custom_list)” («бот/модерация по UA или коннекту (custom_list)»).
The stream selection check shows which stream a filtered visitor will get, without sending any traffic.
If it does not save
The error text appears above the fields. Both fields are saved together: if one of them has an error, neither is saved.
Invalid IP/CIDR («Некорректный IP/CIDR»)
The IP field has a line that cannot be read as an address or subnet. It is shown in the message after the colon. Fix or delete that line.
Bot list: maximum 10000 lines («Список ботов: максимум 10000 строк»)
One of the fields has more than 10000 lines. Replace individual addresses with subnets or remove unneeded entries.
Empty or too long bot list value («Пустое или слишком длинное значение бот-листа»)
One of the lines is longer than 512 bytes. Shorten it to a distinctive fragment.
Settings were changed in another tab. Refresh the page and repeat the edit. («Настройки изменены в другой вкладке. Обновите страницу и повторите правку.»)
While you were editing the list, the settings were saved by another admin or by you in another tab. After the page is refreshed, unsaved lines will be lost.
- Copy your list from the fields.
- Refresh the page.
- Paste the list again.
- Click Save.
Settings saved, but the engine has not confirmed applying them yet. Refresh the page and save again. («Настройки сохранены, но движок пока не подтвердил применение. Обновите страницу и повторите сохранение.»)
The list is written to the settings but is not yet applied to traffic.
- Refresh the page.
- Click Save under the bot list fields again.
If the message repeats, check the services on the System status page.