кейс №1

Давайте детально изучим, как происходит скликивание рекламы на небольшом сайте и почему важно использовать все механизмы защиты.

подключить защиту

Привет! Мы подготовили данный кейс (точнее, это даже анти-кейс) по одному из наших клиентов, которому мы подключили защиту от скликивания рекламы. Почему анти-кейс? Дело в том, что мы предлагаем несколько степеней защиты, но клиент, к нашему сожалению, выбрал только один вариант и, как вы поймете ниже, боты все еще “съедают” его рекламный бюджет. Мы решили, что будет честно публиковать не только успешный “успех”, а делится вообще нашими наблюдениями в части скликивания.

Ввиду того, что мы не можем раскрывать данные наших клиентов, мы удалили с изображений ниже часть данных, но поверьте, что для понимания масштаба скликивания, это будет не критично.

Итак, начали? Давайте сразу посмотрим на изображение ниже (можно увеличить по клику). Это фрагмент из нашей внутренней базы данных, где фиксируются в режиме онлайн все визиты пользователей на сайты клиентов.

пример защиты от скликивания для кейся 1

Что тут видно? На сайт клиента было сделано 3 захода (визита) с одного IP- адреса (вот этот адрес 178.214.248.145) в один день (8 июня 2021 года). При этом каждый визит пользователя содержал одно действие (Actions) и длительность первых двух была порядка 6 секунд, третий 22 секунды. Источник определялся как город Уфа, оператор связи https://www.ufanet.ru/.

Почему именно это привлекло наше внимание и легло в основу кейса? Дело в том, что наша система защиты от скликивания считает цифровой отпечаток браузера, с которого был выполнен заход. И в данном случае он одинаковый (поле FingerPrint на изображении выше). Вот он:

48e3923c1519e3ac85e4859b542c13c5

“Цифровой отпечаток браузера” – это механизм, используемый сайтами и сервисами для отслеживания посетителей. Пользователям присваивается уникальный идентификатор (отпечаток). Он содержит много информации о настройках и возможностях браузера пользователей, что используется для их идентификации.

Согласно результатам исследований, уникальность отпечатка браузера очень высока. Если говорить о статистике, то только раз на ~300 000 случаев случается полное совпадение отпечатков браузеров двух разных пользователей. Исходя из этого, мы можем с высокой вероятностью предположить, что по рекламе в нашем рассматриваемом кейсе кликал один пользователь (дальше будем называть его бот, хотя допускаем, что это был человек, которые вручную скликивал рекламу). 

Итак, что мы имеем? Бот  в этот день кликнул три раза на рекламу в Яндекс.Директ, у него был в каждом случае один IP – адрес, один отпечаток браузера и … разные Яндекс.ClientID (поле YandexClientID на изображении выше).

Обратите внимание на поле reCaptchaOdd с значением 0.1, мы чуть позже обязательно вернемся к этому, т.к. данное значение на 99% подтверждает наше подозрение, что это бот.

Что такое Яндекс.ClientID?

ClientID — это анонимный идентификатор, который Яндекс.Метрика автоматически присваивает каждому уникальному посетителю сайта. Идентификатор создается случайным образом и определяет браузер, в котором посетитель просматривает ваш сайт. Если бот заходил на один и тот же сайт, например, с помощью Google Chrome и Opera, в Яндекс.Метрике будет зафиксировано два разных ClientID.

В нашем случае Яндекс.Метрика выдавала каждый раз разные ClientID одному пользователю-боту. Почему так? Чтобы ответить на этот вопрос, мы провели простой эксперимент и вы легко можете повторить его сами. Наш сотрудник зашел на один и тот же сайт напрямую три раза с одного ПК (рабочий ПК). Первые два раза он зашел с одного браузера с интервалом в один час, третий раз – он открыл браузер в режиме “инкогнито”.

пример защиты от скликивания для кейся 2

Яндекс.Метрика корректно определила повторной заход (мы специально выждали час, чтобы закрыть сессию) и присвоила одинаковые ClientID. А в третий раз (13.43) из-за режима “инкогнито” был сгенерирован новый ClientID и для Яндекс.Метрика это по сути новый пользователь.

Возвращаясь к кейсу. С очень высокой вероятностью можно предположить, что скликивание осуществлялось каждый раз с очисткой cookies браузера, чтобы Яндекс.Метрика вновь индентифицировала пользователя как нового. Зачем? Чтобы данные клики учитывались и средства с бюджета Яндекс.Директ  клиента списывались.

ЧТО ТАКОЕ FINGERPRINT БРАУЗЕРА?

Уникальный идентификатор конфигураций веб-браузера и операционной системы, который формируется на основе собранных данных различными технологиями отслеживания. При этом не используются традиционные методы отслеживания, такие как IP адреса и уникальные файлы cookie.

Цифровой отпечаток браузера имеет вид 32-битного числа шестнадцатеричной системы типа b2cf59b36581399ebf54d4ab425ac4a7, которое получается в результате обработки всех принятых от браузера данных. Полученный отпечаток браузера позволяет отслеживать пользователей в сети Интернет с точностью до 94%.

Давайте посмотрим, как часто пользователь с указанным “цифровым отпечатком” заходил на данный сайт вообще (по рекламе и нет). Посмотрите на изображение ниже. Это данные за один день. Видно, что заходы происходят постоянно.

пример защиты от скликивания для кейся 3

Какие характеристики у этих визитов? Всегда одно действие (клик), 3-5 секунд на сайте и разные IP- адреса. Обратите внимание, что в некоторых случаях Яндекс не присвоил клиенту ClientID. Это может быть в нескольких случаях. Первый – бот слишком быстро ушел с сайта и счетчик Яндекс.Метрика просто не запустился, второй – Яндекс сам определил визит как бота и посчитал клик “недействительным”. К сожалению, таких визитов очень мало. В основном каждый визит получает новый ClientID, при одинаковом “цифровом отпечатке”.

Как пользователь менял IP- адрес? Скорее всего он использовал прокси- сервера. Мы не будем писать детально что такое прокси, информации масса и я думаю читатель уже знает этот термин. Сейчас важно понимать, что все клики были по рекламе (тип источника campaign, что означает “платный источник”). Очевидно, что имеет место быть яростное скликивание рекламы.

ЧТО ТАКОЕ ПРОКСИ?

Прокси – это посредник, который маршрутизирует через себя ваш трафик и заменяет ваш IP-адрес на свой. Когда вы отправляете сайту (например, магазину ОЗОН.РУ) запрос через прокси, сайт не видит ваш IP, он видит только IP-адрес прокси-сервера, что дает вам возможность анонимно просматривать (или парсить) веб-страницы.

Как часто этот пользователь менял IP- адреса при кликах на рекламу сайта? Мы сделали простую выборку, см. изображение ниже. Видно, что каждый IP- адрес использовался несколько раз и легко обратить, что некоторые адреса явно брались с одного пула (например 176.222.*.* или 176.214.*.*). 

частота смены ip адреса при кликфроде

Почему мы вообще решили, что это бот? В своей защиты мы используем несколько алгоритмов, которые работают последовательно, шаг за шагом идентифицируя ботов. В самих алгоритмах нет секретов, вы можете повторить их на своем сайте при наличии программистов. Например, мы проверяем вхождение IP- адреса в “черные” списки. 

Если мы возьмем адрес 178.214.248.145 (см. изображение №1), то можно легко проверить его на чистоту с помощью любого сервиса. Вы можете сделать это сами, перейдя по ссылке: https://dnschecker.org/ip-blacklist-checker.php?query=178.214.248.145 (учтите, что через некоторое время адрес может уйти из черных списков, поэтому важно делать проверку оперативно). Данный адрес был найден в нескольких списках. 

Что мы делаем еще? Мы проверяем визит с помощью Google reCaptcha, чтобы получить дополнительную оценку качества сессии. Если мы вернемся на изображения выше, то увидим, что для всех визитов ботов коэффициент reCapcha был равен 0.1 (очень высоко вероятно это бот в терминологии Google), а визит нашего сотрудника при проверке расчета Яндекс.ClientID дал коэффициент 0.9 (очень высоко вероятно это человек). Следом у нас работает алгоритм машинного обучения (если быть конкретнее, алгорим К-ближайшее), который кластеризует все визиты, чтобы находить тех ботов, который стараются мимикрировать под обычных пользователей (для описания этого алгоритмы мы подготовим отдельную статью).

Возвращаясь к поведению данного скликивающего бота. Мы посчитали, сколько раз вообще данный бот менял свое окружение так, что Яндекс.Метрика определяла его каждый раз как нового… получается 400 раз. 

заходы с разными яндекс clientID

Почему мы решили, что это точно бот, ведь наверняка сказать невозможно? Это так, никогда нет абсолютно точной вероятности, что мы заблокировали именно бота. Но мы можем судить по подмене ClientID, по одинаковому цифровому отпечатку Fingerprint (который вкупе с другими данными только подтверждает нашу гипотезу). Такое поведение не похоже на действие реального пользователя. Также, чтобы убедиться, можно дополнительно посмотреть через Вебвизор в Яндекс.Метрика – часто действия ботов отличаются однообразием и линейностью движений мышкой, в то время как у реального пользователя они более хаотичны. Однако не всегда наши клиенты готовы предоставить доступ к данному инструменту нашим аналитикам, поэтому приходится полагаться на те данные, которые мы собираем сами в представленных в этом обзоре таблицах.

ЧТО ТАКОЕ GOOGLE reCAPTCHA?

reCAPTCHA v3 направлена на то, чтобы предоставить те же возможности фильтрации спама, но при этом держаться “подальше” от пользователя. Это делается путем отслеживания действий пользователя и автоматического присвоения им баллов (от 0 до 1). Затем вы можете выполнить соответствующие действия в зависимости от этого показателя, например, заблокировать пока рекламы.

Данный клиент подключился к нашей системе 2 июня. За 8 первых дней июня было сделано порядка 400 кликов по платной рекламе. Мы не знаем стоимость одного клика, предложим, что она находится в пределах 50 руб. К сожалению, у нас нет доступа к Яндекс.Метрика/Яндекс.Директ, чтобы точно проверить какое количество кликов было признано Яндексом как недействительные, но из нашего опыта анализа других клиентов получается, что при наличии Яндекс.ClientID в 90% случаев клики засчитываются. Фактически, нехитрая математика дает нам оценку потерь: 8 дней, 400 кликов * 50 руб. = 20 000 руб.

Как мы защищаем?

продолжение следует…