Автоматизированный пайплайн абуз-жалоб для SEO-операций

Ниша iGaming. Очень горячая, в плане конкуренции. Каждый представитель борется за своё место. И каждый практикует отправку абуз (жалоб) на домены конкурентов регистратору. Нужно сделать скрин, отправить регистраторам с определённым текстом. Таких жалоб нужно отправлять тысячами в день. Человеческий ресурс тратится нерационально. По сути это monkey job. Важная категория задач с точки зрения бизнеса, но тупая с точки зрения человеческого ресурса.

Стек

  • Next.js 14
  • Playwright
  • PostgreSQL
  • Docker

как мы это построили

Мы собрали пайплайн, который делает это, не открывая ни одного браузера. В основе — воркеры на Playwright, у каждого свой адаптер под конкретного регистратора. Паттерн адаптеров держит код в чистоте: один интерфейс, специфическая логика — внутри. Чтобы добавить нового регистратора, достаточно написать один файл, а не переделывать весь пайплайн. Когда в форме есть CAPTCHA, система отправляет её основному сервису распознавания; если он отвечает таймаутом или ошибкой — переключается на резервного провайдера. Доля успешных решений держится на уровне 85–90%, остальное уходит в очередь повторных попыток.

что было сложно

Сложность была в хрупкости. Регистраторы меняют формы без предупреждения — переименовали поле, сдвинули селектор, и адаптер молча ломается. Без мониторинга единственный сигнал — падение success rate на следующий день. Мы добавили ежедневную статистику по cron: отправлено, принято, отклонено — в разбивке по регистраторам. Команда начала принимать решения на основе реальной доли отклонений, а не на ощущениях — какие адаптеры починить в первую очередь, какие регистраторы вообще отвечают быстро.

почта и доказательства

Для регистраторов, которые принимают жалобы только по email, мы вынесли отдельный SMTP-микросервис. Изоляция позволяет независимо отслеживать доставляемость и масштабировать его, не трогая основное приложение. К каждой жалобе автоматически прикладываются скриншоты нарушений как доказательства — Playwright делает их в той же сессии, в которой заполняет форму.

результаты

50+ жалоб в день без ручного труда. Специалисты переключились с заполнения форм на анализ — какие регистраторы отвечают быстрее и какие стратегии жалоб действительно работают. Один архитектурный долг: воркеры пока работают в одном процессе с основным приложением. На текущем масштабе это держится, в следующей итерации их вынесем за полноценную очередь задач с real-time-оповещениями о поломках адаптеров.