Защита от скликивания и аналитика: практический кейс
11 лет работаю с Яндекс Директ и Google Ads. В реальных проектах системно отлавливаю до 40% ботов в контекстной рекламе и выстраиваю защиту от скликивания в Яндекс Директ 2025.
За последние полгода я победил скликивание яндекс директ для клиента с рекламным бюджетом в 1 млн ₽/мес. Краткое решение — это поминутный мониторинг, алерты и авто-остановка по API. Ниже — пошаговый разбор, какие отчёты и метрики помогают поймать ботов и быстро остановить очаги.
Нужна быстрая проверка и план действий? Провожу бесплатный аудит Яндекс Директа и настраиваю антифрод-механику под ваш кейс.

Как отследить скликивание в Яндекс Директ: признаки атаки и фрод-трафик в 2025
Одним из первых признаков «скликивания» будет рост процента возвратов за фрод в Директе и Google Ads."В Яндекс Директ расходы на фрод автоматически возвращаются на баланс рекламной кампании. Количество кликов, отсеянных системой защиты от фрода, отображается в отчетах «статистика по дням» «общая статистика» в строке «недействительные клики за весь выбранный период.»– справка Я. Директа «недействительные клики».
В Google Ads отображение уровня «недействительных кликов» можно включить на вкладке «столбцы».

В нашем случае, при среднем уровне «недействительных кликов» в Директе ≈ 10%, Яндекс вдруг стал возвращать 40% рекламного бюджета, а через месяц и вовсе 54%.
Следующий признак — необоснованный рост переходов и срыв поведенческих метрик по ряду групп объявлений.Мы заметили, что по ряду ключевых слов, по которым никогда не было больше 200 посетителей в день, появились всплески до 3 000 посетителей. В такие дни бюджет мог уйти на одну кампанию, если её вовремя не останавливали.

Почему Яндекс Директ и Google Ads не спасают от ботов в 2025
Достаточно прочесть обсуждение уровня фрода в контекстной рекламе в официальном Клубе Директа: многие рекламодатели теряют деньги из-за фрод-трафика.
Google признаёт ошибки защиты и предоставляет «Refund Claims». По данным ClickCease, в среднем возвращается ~12% бюджета.
Как вернуть часть денег за «склик» через Google Ads
Необходимо отправитьжалобу на «недействительные клики». В ряде кейсов Google сначала автоматически списывает недействительные клики, а затем по «refund claims» возвращает дополнительные проценты.Яндекс чаще не признаёт уязвимость фильтров и отвечает, что проблема в рекламодателе и его сайте. В нашем кейсе доля «недействительных кликов» в отчёте Директа не поднималась выше 50% ни по одной кампании даже в дни, когда до 80% бюджета «съедал» бот-трафик.
Запускаете Google Ads в РФ в 2025? Учитывайте риски фрода заранее. Подробно про запуск — отдельная статья.

С каким уровнем фрод-трафика мы столкнулись
Мошеннический трафик шёл по четырём направлениям бизнеса в двух городах. При включении новых кампаний «скликивание» быстро перераспределялось и на них. Атаки были и в РСЯ, и на поиске Яндекса, и в КМС Google. На сайте боты симулировали поведение: переходы по разделам, выделение текста, скроллы, движения курсора.
Есть ли готовые средства защиты от скликивания в Яндекс Директ и Google Ads
У сервисов защиты один прямой рычаг — блокировка подозрительных IP или площадок. При динамических IP антифрод всегда отстаёт: несколько кликов случатся до попадания IP в чёрный список. В AdWords можно блокировать до 500 IP, а в Яндекс Директ — всего 25 IP на кампанию, что сегодня легко обходится пулами прокси.
- Не показывать рекламу с явными бот-признаками аудитории — ищем поведенческие «паттерны» и режем выборки.
- Временно останавливать ключевые слова и группы объявлений, по которым идёт атака.
Как отсечь фрод-аудиторию и сохранить бюджет: корректировки и сегменты
Если научиться не показывать рекламу клик-ботам — они не нанесут вред. Например, если фрод идёт по Windows 7 с 5:00 до 9:00 по МСК, ставим корректировку −100% для этой аудитории во всех атакуемых кампаниях. Функционал корректировок ставок в Google Ads обширнее, чем в Яндекс Директ.
Ищем паттерны во фрод-трафике через антифрод-сервисы
Для первичной картины и ручного поиска закономерностей подключили российский ClickFrog. Он выявлял до ~40 подозрительных IP/день при трафике ~3000 с Директа и 1300 «левых» кликов.
Далее установили ClickCease для Google Ads. Он вылавливал по 300–400 уникальных IP/день и по каждому давал провайдера, площадку, ОС, устройство, время, регион. По отчётам:
- в 81% случаев устройство симулировало мобильную ОС (Android/iOS);
- в 59% случаев IP географически не относился к МСК при таргете на МСК.
Для контроля подрядчиков и внутренней проверки используйте чек-лист: как с помощью ИИ проверять исполнителей по контекстной рекламе.
Ищем паттерны вручную в Метрике и Analytics
Сервисы дают идеи, но дальше фрод нужно находить в Метрике и выделять сегменты в Яндекс.Аудиториях. Полезные срезы:
- динамика по возрастным группам;
- долгосрочные интересы;
- устройства и ОС.

Механика в Google Ads:
- определяем «заражённый» сегмент;
- ставим корректировку −100% для сегмента;
- смотрим конверсию, время на сайте, глубину, отказы.
В Яндекс Директ два сценария:
а) найден явный паттерн по полу/возрасту/мобильности:
- ставим −50% или −100% по сегменту;
- смотрим ключевые метрики.
б) явных паттернов нет:
- выделяем фрод в сегмент Яндекс.Аудиторий;
- через look-alike Яндекса создаём похожую аудиторию;
- ставим −100% по сегменту;
- аккуратно тестируем понижения ставок по LAL-сегментам.
Какие отчёты помогают поймать ботов: диаграммы и метрики (Google Data Studio/Looker Studio)
Фрод почти всегда порождает пики. Это видно на минутных и дека-минутных графиках.
- «Сгладить» атаку сложно без инсайдов по вашему трафику;
- бот-софт действует рывками, пики видны на 1–10-минутных срезах;
- даже «ручной» фрод по ТЗ оставляет аномалии.
Для визуализации удобен Google Data Studio (ныне Looker Studio). Корректные поминутные/дека-минутные срезы стабильно даёт Analytics.
Как строить диаграммы по 10 минутам в Looker Studio
Шаги: копируем поля времени в формат «число», создаём вычисляемое поле «Год*10000000 + Месяц*100000 + День*1000 + Час*10 + FLOOR(Минута/10)», ставим как параметр «оси X» и строим комбинированную диаграмму.Уведомления о фрод-трафике: алерты и авто-остановка объявлений
Чтобы не следить вручную, собрали отчёт в Google Таблицах, который обновляется каждую минуту и шлёт алерты при всплесках. Таблицы поддерживают Core Reporting API — обращаемся через «Редактор скриптов».

Шаг 2. Прописываем API-запрос к Analytics на нужные метрики (например, пользователи из платной рекламы поминутно).
Код Google Script для запроса данных из Analytics в Google Таблицы
function runDemo() {
try {
var firstProfile = getFirstProfile();
var results = getReportDataForProfile(firstProfile);
outputToSpreadsheet(results);
} catch(error) {
Browser.msgBox(error.message);
}
}
function getFirstProfile() {
var accounts = Analytics.Management.Accounts.list();
if (accounts.getItems()) {
var firstAccountId = accounts.getItems()[0].getId();
var webProperties = Analytics.Management.Webproperties.list(firstAccountId);
if (webProperties.getItems()) {
var firstWebPropertyId = webProperties.getItems()[0].getId();
var profiles = Analytics.Management.Profiles.list(firstAccountId, firstWebPropertyId);
if (profiles.getItems()) {
var firstProfile = profiles.getItems()[0];
return firstProfile;
} else {
throw new Error('No views (profiles) found.');
}
} else {
throw new Error('No webproperties found.');
}
} else {
throw new Error('No accounts found.');
}
}
function getReportDataForProfile(firstProfile) {
var profileId = firstProfile.getId();
var tableId = 'ga:' + profileId;
var startDate = "today";
var endDate = "today";
var optArgs = {
'dimensions': 'ga:date,ga:hour,ga:minute,ga:sourceMedium',
'sort': 'ga:date,ga:hour,ga:minute',
'filters': 'ga:sourceMedium==yandex / cpc',
'start-index': '1',
'max-results': '10000'
};
var results = Analytics.Data.Ga.get(
tableId,
startDate,
endDate,
'ga:users',
optArgs);
if (results.getRows()) {
return results;
} else {
throw new Error('No views (profiles) found');
}
}
function getLastNdays(nDaysAgo) {
var today = new Date();
var before = new Date();
before.setDate(today.getDate() - nDaysAgo);
return Utilities.formatDate(before, 'GMT', 'yyyy-MM-dd');
}
function outputToSpreadsheet(results) {
var sheets = SpreadsheetApp.getActiveSpreadsheet();
var sheet = sheets.getSheetByName("coeff1");
var range = sheet.getRange('A:E');
range.clear();
var headerNames = [];
for (var i = 0, header; header = results.getColumnHeaders()[i]; ++i) {
headerNames.push(header.getName());
}
sheet.getRange(1, 1, 1, headerNames.length)
.setValues([headerNames]);
sheet.getRange(2, 1, results.getRows().length, headerNames.length)
.setValues(results.getRows());
}

Шаг 4. Создаём сводную по минутным данным, считаем аномалии и триггеры уведомлений/авто-остановки по API Я.Директа или Google Ads.

Рисунок 9. Пример настройки формул для уведомлений об аномалиях
Пример моего кода Google Script для e-mail-уведомлений
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("notification");
var range = sheet.getRange("D2:E4");
var cell = range.getCell(1, 2);
if (cell.getValue() !== "no") {
MailApp.sendEmail("your_email@yandex.ru", "Fraud notification "+cell.getValue(), "Check me "+range.getCell(1, 1).getValue());
}
var cell2 = range.getCell(2, 2);
if (cell2.getValue() !== "no") {
MailApp.sendEmail("your_email@yandex.ru", "Fraud notification "+cell2.getValue(), "Check me "+range.getCell(2, 1).getValue());
}
var cell3 = range.getCell(3, 2);
if (cell3.getValue() !== "no") {
MailApp.sendEmail("your_email@yandex.ru", "Fraud notification "+cell3.getValue(), "Check me "+range.getCell(3, 1).getValue());
}
}
Итоги 2025: защита от скликивания в Яндекс Директ — пошаговый план
Противодействие клик-фроду делим на три группы.
а) Упреждающие действия
- отключение «загрязнённых площадок»;
- исключение аудиторий с фрод-признаками; сложные условия — через списки Google и сегменты Метрики;
- корректировки для look-alike сегментов, похожих на фрод;
- блокировка по маскам IP-сетей (в Google Ads).
б) Профилактика
- обращения на возврат бюджета в Google Ads и Директ;
- расследование источника атаки;
- группировка уязвимых групп объявлений в отдельную кампанию;
- «ловушки» для простых ботов (скрытые элементы/кнопки).
в) Post factum
- блокировка IP;
- оперативное отключение очагов: ключей, групп, кампаний, сегментов.

Если выбираете подрядчика, проверьте чек-лист как найти хорошего директолога. Для внутреннего контроля исполнения — гайд как с помощью ИИ проверять директологов. Хотите чаще попадать в рекомендации — посмотрите оптимизацию под ИИ. Нужна диагностика за 48 часов — закажите аудит Яндекс Директа.
Полезные ссылки:- Библиотека Core Reporting API;
- Query Explorer для отработки запросов;
- Пишем скрипты для автоматизации Google;
- Automate Google Sheets;
- Analytics Intelligence — спросите: «были ли аномалии в платном трафике за год?»
Как узнать, кто заказал атаку на вашу рекламу
Адекватный конкурент минимизирует собственный ущерб:
- не будет показываться по ключам, где идёт атака на вас, чтобы не сливать CTR;
- подберёт ключевые слова для атаки так, чтобы самому легко выключиться.
Смотрите включённые объявления конкурентов по каждому ключу в интерфейсе Директа.

Также держите под рукой материал «как выбрать директолога».