Трафик ботов и качество кликов: что на самом деле считает ваш счётчик
- analytics
- traffic-quality
- bot-filtering
- agencies
На этой странице
- Сырой счётчик — это счётчик запросов
- Хорошие боты и единственное, что их опознаёт
- Строка User-Agent — это заявление
- Проверка опирается на то, чем отправитель не управляет
- Почему сверка имени никогда не идёт, пока посетитель ждёт
- Тип сети — это контекст, а не приговор
- Оценка качества и зачем она нужна
- Как превратить вердикт в решение
- Что меняется в отчёте клиенту
- Рабочая последовательность
Любой сервис редиректов умеет сказать, сколько запросов он обслужил. Почти никто не умеет сказать, сколько из этих запросов были людьми, — а именно это число молчаливо предполагается в каждом отчёте. Ссылки живут в открытом вебе: их индексируют, забирают для превью, сканируют, мониторят и скрапят, и значительная часть этого происходит в первые секунды после публикации, раньше, чем пост увидел хоть один человек.
Эта статья — о слое между сырым счётчиком и числом, которое можно защитить на встрече с клиентом: какую автоматику вы хотите пропускать, почему опознание краулера по имени — это не опознание, что доказывает тип сети и как превратить всё это в правила и в честный отчёт.
Сырой счётчик — это счётчик запросов
Движок редиректа считает то, что до него дошло. В этом его сила — он работает для адресов назначения, которыми вы не управляете, переживает блокировщики и засчитывает скан QR с плаката, у которого нет ни сессии, ни источника перехода, о чём говорит и наш гид по отслеживанию кликов по ссылкам. По той же причине это число требует оговорки.
Автоматический трафик, доходящий до короткой ссылки, делится на узнаваемые группы:
- Сканеры ссылок. Почтовые провайдеры, мессенджеры и шлюзы безопасности забирают ссылки при доставке, чтобы проверить, куда они ведут, — именно поэтому ссылка набирает клики в первую минуту после рассылки, пока доставка ещё не закончилась.
- Сборщики превью. Соцсети и мессенджеры забирают ссылку, чтобы собрать карточку с заголовком и картинкой. Приличный редиректор отвечает им разметкой, вместо того чтобы маршрутизировать и считать их наравне со всеми.
- Поисковые и SEO-краулеры. Индексаторы поисковых систем плюс коммерческие SEO-инструменты, обходящие всё, что найдут.
- Мониторинги. Проверки доступности, в том числе ваши собственные. Именно поэтому запросы
HEADобслуживаются без подсчёта клика. - Скраперы и пробы. Сборщики цен, парсеры и сканеры, ищущие ссылки, которые можно перенаправить в другое место.
Две из этих групп — трафик, о котором вы сами просили, одна — нейтральная инфраструктура, одна — нежеланный гость. Политика «блокировать ботов» обходится со всеми одинаково.
Хорошие боты и единственное, что их опознаёт
Строка User-Agent — это заявление
Строку User-Agent пишет сам отправитель. Написать в ней можно что угодно, поэтому запрос, называющий себя Googlebot, не доказывает ничего, а скрапер, называющий себя Chrome, встречается чаще, чем тот, который честно признаётся, кто он. Сопоставление по строке User-Agent всё же не бесполезно — оно ловит автоматику, представляющуюся честно, и подкрепляет другие сигналы, — но в классификаторе это намеренно слабый сигнал: он подтверждает, но не решает.
Проверка опирается на то, чем отправитель не управляет
Адрес, с которого пришёл запрос, отправитель не выбирает ни в каком полезном смысле — поэтому проверять нужно именно его. Способов сделать это два.
Часть операторов публикует диапазоны, которые используют их краулеры. Google, Bing и Apple делают это, и такие файлы раз в сутки затягиваются в быстрый справочник, поэтому запрос из перечисленного диапазона подтверждается без единого сетевого обращения в момент запроса.
Для краулеров без опубликованного списка — Yandex, DuckDuckGo, Baidu, Petal — проверка представляет собой двухшаговую сверку имени, и нужны оба шага:
Claim: "Googlebot" in the user agent
Step 1 reverse lookup of the address
<address> -> crawl-<address>.googlebot.com ends in the crawler's domain
Step 2 forward lookup of that name
crawl-<address>.googlebot.com -> <address> matches the original address
verdict: verified crawler
Same claim, different address
Step 1 203.0.113.9 -> host9.example-hosting.net not the crawler's domain
verdict: not verified, the claim is rejected
Прямой шаг не факультативен. Тот, кто владеет блоком адресов, обычно может выставить его обратную запись какой угодно, поэтому обратное имя само по себе легко подделать. Замыкает круг именно прямое разрешение этого имени, вернувшее исходный адрес.
CDN перед редиректором выполняет ещё и собственную категоризацию проверенных ботов — вердикт, который отправитель подделать не может, а прочитать дёшево. Поэтому подтверждение берётся в порядке убывания авторитетности: опубликованный список, проверка на стороне CDN, сверка имени в обе стороны, затем принадлежность к известному диапазону поисковых пауков в базе адресов.
Почему сверка имени никогда не идёт, пока посетитель ждёт
Обратный поиск имени — это сетевой запрос с непредсказуемой задержкой, а редирект — то единственное место, где миллисекунды видны живому человеку, поэтому синхронно он не выполняется никогда. Если правило спрашивает, проверенный ли это краулер, а ответа в кэше нет, правило считает краулера непроверенным, поиск уходит в фон, и к следующему клику с того же адреса ответ уже лежит в кэше. Ошибка в сторону «не проверен» стоит одной верной классификации; ошибка в сторону синхронного поиска стоит живому человеку задержки на каждом запросе.
Тип сети — это контекст, а не приговор
Независимо от того, кем посетитель себя называет, у диапазона адресов, из которого он пришёл, есть известный характер. Коммерческая база адресов, лежащая в основе, делит диапазоны на небольшой набор типов:
| Тип | Что представляет собой диапазон | Доля диапазонов IPv4 в базе | | --- | --- | --- | | Не в списке | Обычные адреса, в основном домашние и корпоративные | 72,1 % | | Дата-центр, хостинг, облако | Серверы, облачные инстансы, браузеры в облаке | 15,3 % | | Публичный открытый прокси | Открытые узлы, через которые может пройти кто угодно | 9,2 % | | Коммерческий VPN | Потребительские и корпоративные VPN-сервисы | 3,2 % | | Поисковый паук | Диапазоны, заведомо принадлежащие краулерам | 0,17 % | | Выходной узел TOR | Точки выхода сети TOR | 0,005 % | | Веб-анонимайзер | Прокси-страницы, работающие в браузере | 0,005 % |
Эту таблицу стоит прочитать внимательно, потому что её легко понять неверно. Это доли диапазонов адресов в справочной базе, а не доли чьего-либо трафика. Один диапазон домашнего провайдера обслуживает огромное число людей; один хостинговый диапазон может не обслуживать никого. Таблица говорит, какие бывают категории и насколько мелко делится между ними адресное пространство, и ничего не говорит о том, что получила ваша кампания.
Смысловая оговорка важнее самих чисел. Адрес дата-центра не означает бота. Корпоративные сети выпускают сотрудников через облачную инфраструктуру, заботящиеся о приватности потребители держат коммерческий VPN включённым всегда, в том числе когда покупают, а браузеры в облаке — нормальный способ читать веб. Удалите все клики из дата-центров — и вы удалите настоящих клиентов. Тип сети сдвигает уверенность; сам по себе это факт о маршрутизации.
Оценка качества и зачем она нужна
Классификатор выдаёт два результата: тип посетителя — человек, поисковый краулер, библиотека, дата-центр, VPN, TOR или неизвестно — и оценку качества от 1 до 100 вместе с причинами, которые за ней стоят. На вход идёт всё перечисленное выше плюс поведенческие сигналы: как часто один и тот же адрес бьёт в одну и ту же ссылку в течение минуты, передаётся ли в запросе предпочтительный язык вообще и соответствует ли набор заголовков той платформе, о которой заявляет строка User-Agent.
Оценка намеренно не является выключателем. Ничто не блокируется из-за низкой оценки: она объясняет вердикт и питает отчёты, а блокировка настраивается явно. Цена ошибки несимметрична: бот, посчитанный человеком, искажает процент, а клиент, заблокированный как бот, не доходит до страницы и никогда вам об этом не сообщит.
Тип, оценка и причины видны в разбивках географии и качества трафика, где медиабайеры первым делом открывают таблицу сетей: номер автономной системы, название провайдера, тип диапазона, всего кликов и человеческие клики отдельными колонками. Разрыв между двумя последними, в разрезе провайдера, обычно и есть вся история закупки трафика. Полный состав описан в документации по гео-аналитике.
Как превратить вердикт в решение
Вердикт полезен только тогда, когда на него кто-то может подействовать. Правила фильтрации трафика привязывают к ссылке упорядоченный список условий, которые проверяются на edge ещё до выбора адреса назначения, и исход решает первое совпавшее правило. Ссылка без правил не выполняет вообще никакой дополнительной работы.
Относящиеся к теме условия — это тип посетителя, статус проверенного краулера, тип сети и порог оценки качества, а рядом с ними география, автономная система, списки адресов, устройство, язык, источник перехода, шаблон user agent, метки кампании, местное время и первый визит против повторного. Исходы: пропустить, заблокировать с кодом 404, заблокировать с кодом 410, увести на другой адрес, показать брендированную страницу-заглушку или пропустить, пометив визит подозрительным.
Три решения в устройстве определяют, безопасно ли держать это в бою.
Условия трёхзначны. Выполнено, не выполнено или без ответа, потому что данных нет, — и «без ответа» никогда не считается совпадением. Если база адресов недоступна, правило с условием по типу сети не срабатывает и посетитель попадает на обычный адрес назначения. Фильтрация отказывает в сторону «пропустить», а не в сторону «закрыть».
Инверсия переворачивает только уверенный ответ. Правило вида «все, кроме Германии», не срабатывает молча на посетителях, чью страну определить не удалось. Это самый частый способ, которым гео-правило с благими намерениями превращается в аварию.
Действие «пропустить» существует ради проверяемости фильтров. Правило, которое пропускает трафик и лишь записывает, что оно сработало, — это способ испытать фильтр до того, как разрешить ему хоть что-то блокировать: запустите его в режиме пропуска, почитайте разбивку по отфильтрованному трафику, убедитесь, что он ловит именно то, что задумано, и только потом смените действие.
Общую политику держите в наборе правил уровня рабочего пространства, потому что политика про дата-центры редко бывает политикой про одну ссылку, а собственные правила ссылки — они проверяются первыми — используйте для исключений поверх общего запрета. Именно так ваш мониторинг доступности продолжает работать на той единственной ссылке, за которой он следит. Лимиты на правила и списки адресов — в документации по правилам трафика.
Одна деталь перед тем, как писать правило про первый визит: отличить первый визит от повторного можно только небольшой cookie на вашем домене редиректа, и ставится она лишь тогда, когда правило действительно задаёт этот вопрос. У этого есть последствия для приватности — поэтому механизм включается вами, а не работает по умолчанию.
Что меняется в отчёте клиенту
Именно здесь вся работа окупается, и дело в основном в том, какие числа попадают на страницу.
| Строка отчёта | Без слоя качества | Со слоем качества | | --- | --- | --- | | Главное число | Клики | Человеческие клики, а рядом — всего кликов | | Состав | Отсутствует | Человек, проверенный краулер, дата-центр, VPN, TOR, неизвестно | | Таблица провайдеров | Клики по сетям | Клики и человеческие клики по сетям | | Отфильтрованный трафик | Невидим | Объём по каждому правилу и применённое им действие | | Объяснение всплеска | «Во вторник что-то случилось» | Тип и сеть, из которых пришёл всплеск |
Две привычки делают такой отчёт честным, а не просто подробным. Показывайте оба числа всегда: человеческие клики без общего итога рядом сами напрашиваются на подозрение, что итог был неудобным. И рассказывайте, что вы отфильтровали и почему, — идентификатор правила и действие, сохранённые в каждом совпавшем событии, означают, что разбивка по отфильтрованному трафику читается верно и для правил, которые вы с тех пор отредактировали или удалили.
Для агентств таблица провайдеров — ещё и коммерческий инструмент: сеть, гонящая объём почти без человеческих кликов, — это разговор с поставщиком, и вести его с разбивкой по провайдерам легче, чем с общим итогом. Как это укладывается в отчётность перед клиентом и выплаты, разобрано на страницах решений для агентств и решений для медиабайеров.
Одно нужно сказать прямо, потому что поставщики в этой категории обычно этого не говорят: классификация вероятностна. Упорный скрапер, работающий из настоящего браузера с домашнего адреса, будет классифицирован как человек, и ни один продукт на рынке не скажет вам иного. Этот слой убирает большое, простое и честное к себе большинство автоматики и даёт основания разбираться с остальным. Отчёт, подразумевающий определённость, рано или поздно окажется неправ на глазах у клиента.
Рабочая последовательность
- Оставляйте фильтрацию ботов включённой по умолчанию в аналитике и считайте автоматикой любой всплеск, начавшийся раньше, чем ссылку мог увидеть человек, пока не доказано обратное.
- Читайте разбивку по составу раньше главного числа. Необычная для канала доля автоматики сама по себе и есть находка.
- Ищите в таблице сетей провайдеров, у которых всего кликов и человеческие клики резко расходятся.
- Первое правило пишите в режиме пропуска, неделю наблюдайте за разбивкой по отфильтрованному трафику и переводите его в блокирующее действие только тогда, когда пойманный им объём выглядит так, как вы задумывали.
- Держите проверенных краулеров пропускаемыми, а собственный мониторинг выводите из-под запрета правилом уровня ссылки поверх политики рабочего пространства.
- Отчитывайтесь человеческими кликами и общим числом кликов вместе, а отфильтрованный объём показывайте, а не вычитайте молча.
Идея в основе проста: клик — это запрос, у запроса есть происхождение, а происхождение измеримо. Делать это стоит ради эффекта второго порядка. Конверсия, посчитанная от человеческих кликов, устойчива, гео-разбивки без хостинговых диапазонов описывают рынки, а не инфраструктуру, а клиент, которому один раз показали состав его трафика, перестаёт спрашивать, настоящие ли это числа.
О чём обычно спрашивают
Почему кликов больше, чем реальных посетителей?
Редирект считает каждый дошедший до него запрос, а заметная доля этих запросов — автоматика: платформы забирают ссылку при доставке, чтобы её проверить, соцсети — чтобы собрать карточку превью, краулеры её индексируют, мониторинги опрашивают, скраперы собирают. Большая часть этого приходит раньше, чем ссылку мог увидеть хоть один человек. Разрыв между сырым счётчиком и счётчиком людей — не ошибка, а ровно то, что слой качества и создан измерять.
Что такое хороший бот и зачем его пропускать?
Поисковый краулер, индексирующий страницу назначения, сборщик превью, который строит карточку для получателей, сканер безопасности, проверяющий ссылку до доставки, и ваш собственный мониторинг доступности — это автоматика, из которой вы извлекаете пользу. Их блокировка стоит вам индексации, ломает превью в каналах, где вы публикуетесь, и приводит к тому, что письма задерживаются на фильтрах. Полезная политика почти никогда не звучит как «блокировать ботов» — она звучит как «пропускать проверенных краулеров, отдельно решать по дата-центрам и анонимизирующим сетям и перестать считать всё это аудиторией».
Почему краулер проверяется по адресу, а не по строке User-Agent?
Потому что строка User-Agent — это самоописание в заголовке запроса, и написать в ней можно что угодно: скрапер, называющий себя Googlebot, пишется за пять минут. Проверка обязана опираться на то, чем отправитель не управляет. Google, Bing и Apple публикуют диапазоны адресов своих краулеров и обновляют их ежедневно, поэтому запрос из перечисленного диапазона считается подтверждённым. Для краулеров без опубликованного списка проверка — это обратная сверка имени: адрес должен разрешаться в имя внутри собственного домена краулера, а это имя — снова разрешаться в тот же адрес. Нужны обе половины, потому что обратную запись сам по себе может выставить тот, кто владеет блоком адресов.
Значит ли адрес дата-центра, что клик сделал бот?
Нет, и если считать именно так, из отчётов исчезнут живые люди. Корпоративные сети, выпущенные через облачную инфраструктуру, браузеры в облаке и заботящиеся о приватности потребители на коммерческих VPN дают человеческие клики из диапазонов, размеченных как дата-центр или VPN. Тип сети — это контекст, повышающий или понижающий уверенность, а не приговор. Поэтому классификатор выдаёт оценку с причинами, а не бинарный ярлык, и поэтому блокировка оставлена правилу, которое написали вы.
Если я блокирую трафик, исчезает ли он из отчётов?
Нет. Заблокированный визит всё равно записывается как событие клика с идентификатором сработавшего правила и применённым действием и попадает в разбивку по отфильтрованному трафику. Удаление отфильтрованных событий сделало бы невозможным отличить работающий фильтр от того, который тихо съедает вашу аудиторию. Три панели — отфильтрованный трафик, качество трафика и сети — показывают автоматику даже при включённом переключателе «исключить ботов», потому что вы их и открыли ради того, чтобы посмотреть на ботов.