Защита от скликивания в Яндекс Директ 2025: где ловить пики, какие пороги ставить, как останавливать атаки.

Как победить скликивание Директа?

11 лет опыта управления
контекстной рекламой
Сертифицированный специалист
Яндекс Директ и Google Ads
Гарантия роста лидов — иначе
верну оплату за настройку
Работаю с бюджетами
500 тыс – 5 млн ₽ в месяц

Защита от скликивания и аналитика: практический кейс

Обновлено: автоматически

11 лет работаю с Яндекс Директ и Google Ads. В реальных проектах системно отлавливаю до 40% ботов в контекстной рекламе и выстраиваю защиту от скликивания в Яндекс Директ 2025.

За последние полгода я победил скликивание яндекс директ для клиента с рекламным бюджетом в 1 млн ₽/мес. Краткое решение — это поминутный мониторинг, алерты и авто-остановка по API. Ниже — пошаговый разбор, какие отчёты и метрики помогают поймать ботов и быстро остановить очаги.

Нужна быстрая проверка и план действий? Провожу бесплатный аудит Яндекс Директа и настраиваю антифрод-механику под ваш кейс.

Рисунок 1. Диаграмма количества посетителей по ключевым словам по декаминутам

Как отследить скликивание в Яндекс Директ: признаки атаки и фрод-трафик в 2025

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

В Google Ads отображение уровня «недействительных кликов» можно включить на вкладке «столбцы».

Рисунок 2. Настроенные столбцы с уровнем «недействительных кликов» в Google Ads

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

Следующий признак — необоснованный рост переходов и срыв поведенческих метрик по ряду групп объявлений.

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

Рисунок 3. Необоснованный рост трафика по определённой группе объявлений в Директ

Почему Яндекс Директ и Google Ads не спасают от ботов в 2025

Достаточно прочесть обсуждение уровня фрода в контекстной рекламе в официальном Клубе Директа: многие рекламодатели теряют деньги из-за фрод-трафика.

Google признаёт ошибки защиты и предоставляет «Refund Claims». По данным ClickCease, в среднем возвращается ~12% бюджета.

Как вернуть часть денег за «склик» через Google Ads Необходимо отправитьжалобу на «недействительные клики». В ряде кейсов Google сначала автоматически списывает недействительные клики, а затем по «refund claims» возвращает дополнительные проценты.

Яндекс чаще не признаёт уязвимость фильтров и отвечает, что проблема в рекламодателе и его сайте. В нашем кейсе доля «недействительных кликов» в отчёте Директа не поднималась выше 50% ни по одной кампании даже в дни, когда до 80% бюджета «съедал» бот-трафик.

Запускаете Google Ads в РФ в 2025? Учитывайте риски фрода заранее. Подробно про запуск — отдельная статья.

Рисунок 4. Уровень «недействительных кликов» в одной из кампаний в Директ

С каким уровнем фрод-трафика мы столкнулись

Мошеннический трафик шёл по четырём направлениям бизнеса в двух городах. При включении новых кампаний «скликивание» быстро перераспределялось и на них. Атаки были и в РСЯ, и на поиске Яндекса, и в КМС Google. На сайте боты симулировали поведение: переходы по разделам, выделение текста, скроллы, движения курсора.

Есть ли готовые средства защиты от скликивания в Яндекс Директ и Google Ads

У сервисов защиты один прямой рычаг — блокировка подозрительных IP или площадок. При динамических IP антифрод всегда отстаёт: несколько кликов случатся до попадания IP в чёрный список. В AdWords можно блокировать до 500 IP, а в Яндекс Директ — всего 25 IP на кампанию, что сегодня легко обходится пулами прокси.

  1. Не показывать рекламу с явными бот-признаками аудитории — ищем поведенческие «паттерны» и режем выборки.
  2. Временно останавливать ключевые слова и группы объявлений, по которым идёт атака.

Как отсечь фрод-аудиторию и сохранить бюджет: корректировки и сегменты

Если научиться не показывать рекламу клик-ботам — они не нанесут вред. Например, если фрод идёт по 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

Сервисы дают идеи, но дальше фрод нужно находить в Метрике и выделять сегменты в Яндекс.Аудиториях. Полезные срезы:

  • динамика по возрастным группам;
  • долгосрочные интересы;
  • устройства и ОС.
Рисунок 5. Пример анализа трафика по возрастным группам в Метрике

Механика в Google Ads:

  1. определяем «заражённый» сегмент;
  2. ставим корректировку −100% для сегмента;
  3. смотрим конверсию, время на сайте, глубину, отказы.

В Яндекс Директ два сценария:

а) найден явный паттерн по полу/возрасту/мобильности:

  1. ставим −50% или −100% по сегменту;
  2. смотрим ключевые метрики.

б) явных паттернов нет:

  1. выделяем фрод в сегмент Яндекс.Аудиторий;
  2. через look-alike Яндекса создаём похожую аудиторию;
  3. ставим −100% по сегменту;
  4. аккуратно тестируем понижения ставок по LAL-сегментам.

Какие отчёты помогают поймать ботов: диаграммы и метрики (Google Data Studio/Looker Studio)

Фрод почти всегда порождает пики. Это видно на минутных и дека-минутных графиках.
Рисунок 6. Диаграмма количества посетителей по ключевым словам по декаминутам
  • «Сгладить» атаку сложно без инсайдов по вашему трафику;
  • бот-софт действует рывками, пики видны на 1–10-минутных срезах;
  • даже «ручной» фрод по ТЗ оставляет аномалии.

Для визуализации удобен Google Data Studio (ныне Looker Studio). Корректные поминутные/дека-минутные срезы стабильно даёт Analytics.

Как строить диаграммы по 10 минутам в Looker Studio Шаги: копируем поля времени в формат «число», создаём вычисляемое поле «Год*10000000 + Месяц*100000 + День*1000 + Час*10 + FLOOR(Минута/10)», ставим как параметр «оси X» и строим комбинированную диаграмму.

Уведомления о фрод-трафике: алерты и авто-остановка объявлений

Чтобы не следить вручную, собрали отчёт в Google Таблицах, который обновляется каждую минуту и шлёт алерты при всплесках. Таблицы поддерживают Core Reporting API — обращаемся через «Редактор скриптов».

Рисунок 7. Редактор скриптов для обращения к Analytics 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());
}
Рисунок 8. Запрашиваем свежие данные каждую минуту для оперативного реагирования на фрод

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

image

Рисунок 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;
  • оперативное отключение очагов: ключей, групп, кампаний, сегментов.
image
Рисунок 10. Способы защиты от click fraud

Если выбираете подрядчика, проверьте чек-лист как найти хорошего директолога. Для внутреннего контроля исполнения — гайд как с помощью ИИ проверять директологов. Хотите чаще попадать в рекомендации — посмотрите оптимизацию под ИИ. Нужна диагностика за 48 часов — закажите аудит Яндекс Директа.

Полезные ссылки:
Как узнать, кто заказал атаку на вашу рекламу

Адекватный конкурент минимизирует собственный ущерб:

  1. не будет показываться по ключам, где идёт атака на вас, чтобы не сливать CTR;
  2. подберёт ключевые слова для атаки так, чтобы самому легко выключиться.

Смотрите включённые объявления конкурентов по каждому ключу в интерфейсе Директа.

Рисунок 11. Все объявления конкурентов по ключевому слову

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

Столкнулись со «скликом» — пишите. Подберу план борьбы под ваш кейс.

FAQ

Как быстро понять, что идёт скликивание?
Смотрите: рост «недействительных кликов», всплески трафика по 1–10 минутам, клики ↑ при конверсиях ↓, аномальные гео/ОС/площадки. Это признаки фрод-трафика и ботов в контекстной рекламе.
Какие пороги поставить для алертов в 2025?
Стартовые правила: клики за 10 минут > базовой медианы ×3–5; доля мобильных +25 п.п. к норме; повторные клики с одного устройства >3 за 15 минут; bounce rate >90% при времени <10 сек. Тестируйте и уточняйте под свой трафик.
Что делать в момент атаки на кампанию?
Временно снижайте ставки или стопайте уязвимые группы/ключи, режьте подозрительные гео/ОС/устройства корректировками, исключайте сегменты в Яндекс.Аудиториях, чистите площадки в РСЯ/КМС, включайте авто-стоп по API.
Можно ли вернуть деньги за недействительные клики?
Да. Подайте обращение по «недействительным кликам», приложите агрегированные логи, отчёты и скриншоты всплесков. Возвраты обычно частичные. Сроки — от нескольких дней до пары недель.
Какие инструменты реально помогают против склика?
Looker Studio/Analytics для 1–10-минутных графиков, антифрод-сервисы для выявления IP/паттернов, сегменты и корректировки ставок, «ловушки» на сайте, авто-алерты. Ограничения: в Яндекс Директ можно заблокировать ~25 IP на кампанию, в Google Ads — до ~500.
Как не «перерезать» нормальный трафик при защите?
Двигайтесь поэтапно: сначала −30…−50% по подозрительным сегментам, затем анализ. Делайте А/В, ведите журнал изменений, всегда держите сценарий отката. Режьте только подтверждённые паттерны.
Что делать отдельно с РСЯ/КМС против ботов?
Исключайте «грязные» площадки, ограничивайте частоту показов, тестируйте стратегии ставок, формируйте списки исключаемых мест размещения. Для поиска и сетей держите раздельные правила и алерты.
Как автоматизировать защиту от скликивания в 2025?
Соберите поминутные метрики в Google Таблицах через Core Reporting API, настройте триггеры на e-mail/бот, подключите авто-остановку групп по API Яндекс Директ/Google Ads. Логи храните не менее 30 дней.
Какие признаки бота искать в Метрике/Analytics?
Сессии <10 сек без скролла, повторные клики с одного устройства, редкие ОС/браузеры, неадеакватное "реальное разрешение экрана" (например, 800x600) несовпадающее гео, линейные траектории, «пилообразные» пики по времени. Сверяйте с площадками и реферами.
Как оценить подрядчика по защите от склика?
Попросите план: алерты, отчёты 1–10 минут, список сегментов для исключений, регламент авто-стопа, KPI по снижению фрод-трафика и экономии бюджета. Для отбора смотрите: как найти хорошего директолога и чек-лист по контролю ИИ проверка исполнителей ИИ.

Бесплатный аудит Я. Директ с индивидуальным планом защиты от скликивания

Закажите аудит!

Снижение цены лида
30%

Аудит на понятном языке

Разделы
Информация
11 лет опыта
Бесплатный аудит
Сертифицированный специалист
Гарантия роста лидов
Даниил Нехамин