Реализация AI-детекции спама в мобильном приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Реализация AI-детекции спама в мобильном приложении
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    874
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Реализация AI-детекции спама в мобильном приложении

Спам в мобильных приложениях — это не только комментарии «купи крипту». Это массовые регистрации ботов, накрутка лайков через эмулятор, дублирование объявлений с разных аккаунтов, флуд в чатах. Каждый из этих сценариев требует отдельного подхода — единой кнопки «включить антиспам» не существует.

Типичные ошибки при наивной реализации

Самый распространённый антипаттерн — фильтрация по блэклисту слов на клиенте. Во-первых, список легко обойти: «купи» → «к-у-п-и», «кup и», Unicode-homoглифы. Во-вторых, логика на клиенте видна через декомпиляцию. В-третьих, это вообще не ML — это regex.

Второй антипаттерн — отправлять каждое сообщение на сервер для классификации синхронно. При 50 сообщениях в секунду в активном чате это либо деградирует UX (задержка отправки), либо ронет бэкенд.

Как это работает на практике

Поведенческие сигналы + текстовая классификация

Эффективная детекция спама строится на двух уровнях. Первый — поведенческие паттерны: частота действий, интервалы между событиями, device fingerprint, IP/ASN аномалии. Эти сигналы собираются на клиенте и отправляются батчами.

Второй уровень — NLP-классификация текста. Для мобильных приложений хорошо работает дистилированная версия BERT (distilbert-base-multilingual-cased в ONNX, ~265 МБ) на сервере или MobileBERT (~95 МБ) в TFLite для on-device inference. На практике серверный вариант предпочтительнее: модель обновляется без релиза приложения.

// iOS: отправка сообщения с поведенческими метаданными
struct MessagePayload: Encodable {
    let text: String
    let userId: String
    let sessionDuration: TimeInterval
    let messageIndexInSession: Int
    let typingDurationMs: Int  // <300ms — подозрительно
    let pasteDetected: Bool
}

func sendMessage(_ text: String) {
    let payload = MessagePayload(
        text: text,
        userId: currentUser.id,
        sessionDuration: sessionTimer.elapsed,
        messageIndexInSession: messageCount,
        typingDurationMs: typingTracker.duration,
        pasteDetected: typingTracker.wasPasted
    )
    api.postMessage(payload) { result in
        switch result {
        case .success(let msg): self.appendMessage(msg)
        case .failure(let error) where error == .spamDetected:
            self.showSpamWarning()
        }
    }
}

Скорость набора typingDurationMs < 300 при длине сообщения > 50 символов — почти наверняка paste-спам или бот. Этот сигнал работает даже без ML.

On-device предфильтр для снижения нагрузки

Для текстовых полей в форумах и маркетплейсах устанавливаем лёгкий on-device фильтр на базе TFLite Text Classification модели (~1.5 МБ). Она отсекает 70–80% очевидного спама без сетевого запроса:

// Android: TFLite inference перед отправкой
class SpamPrefilter(context: Context) {
    private val interpreter: Interpreter
    private val tokenizer: BertTokenizer

    init {
        val model = FileUtil.loadMappedFile(context, "spam_lite.tflite")
        interpreter = Interpreter(model)
        tokenizer = BertTokenizer.createFromAsset(context, "vocab.txt")
    }

    fun isLikelySpam(text: String): Boolean {
        val inputIds = tokenizer.tokenize(text).toIntArray()
        val output = Array(1) { FloatArray(2) }
        interpreter.run(arrayOf(inputIds), output)
        return output[0][1] > 0.85f  // spam confidence threshold
    }
}

Пограничные случаи (confidence 0.6–0.85) отправляются на серверную модель. Явный спам блокируется немедленно. Это снижает количество API-запросов примерно втрое.

Защита от ботов при регистрации

Для флоу создания аккаунта интегрируем Google Play Integrity API (Android) и DeviceCheck (iOS). Оба дают токен, верифицируемый на сервере — он подтверждает, что запрос пришёл с реального устройства, а не с эмулятора или Appium-скрипта. Это не панацея, но поднимает стоимость спам-регистрации для атакующего.

Процесс работы

Аудит типов спама в приложении: текстовый флуд, фиктивные аккаунты, накрутка, дубли контента.

Проектирование сигналов: поведенческие метаданные, которые клиент должен собирать и передавать.

Разработка on-device предфильтра и серверной классификации.

Настройка пороговых значений: автоматическая блокировка vs human review очередь.

Мониторинг false positive rate через Grafana/Datadog — первую неделю в «теневом» режиме (логируем, не блокируем).

Ориентиры по срокам

Базовая серверная классификация с поведенческими сигналами — 5–7 дней. On-device предфильтр на TFLite + Play Integrity / DeviceCheck — ещё 3–4 дня. Полная система с дашбордом модерации и feedback loop для переобучения модели — 3–5 недель.