Click Injection — как обнаружить и предотвратить в мобильной рекламе
Click Injection — одна из самых распространённых атак на attribution-окно мобильной рекламы. SDK-эксплойт «впрыскивает» фейковый клик на устройство пользователя за миллисекунду до того, как тот открывает приложение в первый раз. MMP-трекер засчитывает установку рекламной сети, которая на самом деле не приводила трафик — а реальный канал (органика, другая сеть, ремаркетинг) теряет атрибуцию и бюджет уходит мошеннику.
Как работает Click Injection
Схема в трёх шагах:
- 1. Вредоносное SDK (или приложение-«родитель») следит за установками новых APK на устройстве через Android Install Referrer API или системные интенты.
- 2. В момент завершения установки нового приложения SDK генерирует фейковый click event с параметрами рекламной сети — обычно той, у которой нет жёсткой проверки SKAdNetwork / postback-цепочки.
- 3. Когда пользователь открывает приложение и запускается легитимный MMP-SDK, тот видит «свежий клик» в окне атрибуции и засчитывает установку фейковой сети.
Как обнаружить Click Injection — три сигнала
1. CTIT (Click-to-Install Time) меньше 15 секунд
Самый сильный признак. Между реальным кликом и установкой проходит обычно 2–24 часа: пользователь видит баннер, кликает, попадает в стор, скачивает (1–3 минуты на большом приложении), запускает. Click Injection даёт CTIT < 15 секунд — потому что фейковый клик генерируется ровно в момент завершения установки.
В Romi+ MMP-Антифрод (доступен на тарифе Pro) этот сигнал считается автоматически. Загрузите CSV из Adjust / AppsFlyer / AppMetrica — увидите распределение CTIT по трекерам с пометкой «<15s — подозрительно».
2. Аномально высокий Install Rate (CR клик → установка)
Нормальный install rate для мобильных сетей — 1–10%. Если у трекера CR клика в установку 40%+ и при этом миллионы кликов — это либо супер-таргетированный кейс, либо Click Injection. Сопоставьте с СПКАК-кампаниями той же сети — если разница в 5–10×, копайте внутри.
3. Provider не отвечает в postback-цепочке
Атрибуционная цепочка для легитимного клика всегда содержит impression + click + install postback. Click Injection обычно пропускает impression (его не было), и в логах MMP клик «появляется из ниоткуда» прямо перед install. Проверьте логи MMP — отсутствие предшествующих impressions при наличии click+install чаще всего означает фейк.
Как предотвратить — три уровня защиты
SKAdNetwork (iOS)
Apple SKAdNetwork устраняет Click Injection как класс — атрибуция идёт через Apple, а не через клиентский SDK. На iOS если все ваши сети поддерживают SKAdNetwork 4.0+, Click Injection невозможен. Проверьте требования по SKAN на Apple Search Ads, AppLovin, Mintegral.
Viewthrough cap (Android)
В Android атрибуция остаётся клиентской, но можно настроить MMP ужесточить правила: viewthrough = 0 для сетей с подозрительным поведением, click attribution window 24h вместо 7 дней. Это снижает площадь атаки в 5–10 раз.
MMP-правила автоблокировки
Adjust и AppsFlyer позволяют задать правило «реджект установки, если CTIT < 10s». Включите это для всех трекеров кроме явно доверенных (например, Яндекс Директ). Romi+ предлагает оптимальные пороги по результатам анализа вашего датасета.
Что делать прямо сейчас
1. Выгрузите CSV-отчёт по установкам из MMP за последний месяц с полями tracker, click_time, install_time, store_listing_time.
2. Загрузите в Romi+ MMP-Антифрод — за 30 секунд получите распределение CTIT, install rate и подсветку подозрительных трекеров.
3. По обнаруженным фрод-трекерам — настройте viewthrough cap = 0 и CTIT < 10s reject в MMP. Пересчитайте бюджет на следующий период с поправкой на фейк-инсталлы.
Click Injection — только один из 6 классов мобильного фрода. В следующих статьях разберём Click Spam, SDK Spoofing, Device Farms и Install Hijacking.
Частые вопросы
Что такое Click Injection простыми словами?
Click Injection — атака мобильного фрода, при которой вредоносное SDK генерирует фейковый клик в момент завершения установки приложения. MMP-трекер засчитывает установку рекламной сети, которая на самом деле не приводила трафик, бюджет уходит мошеннику, а реальный источник (органика, другая сеть) теряет атрибуцию.
Как обнаружить Click Injection?
Три сигнала: CTIT (время от клика до установки) меньше 15 секунд; аномально высокий install rate (40%+ против нормы 1–10%); отсутствие предшествующих показов в postback-цепочке при наличии клика и установки. Самый надёжный признак — массовый CTIT < 15 секунд, так как фейковый клик создаётся ровно в момент установки.
Чем Click Injection отличается от Click Spam?
Click Injection точечно атакует конкретную установку: CTIT < 15 секунд, высокий install rate (20–60%), источник — SDK на устройстве. Click Spam массово генерирует клики с длинным CTIT (часы-дни) и низким install rate (0.01–0.5%), надеясь случайно поймать органику. Injection — снайпер, Spam — ковровая бомбардировка.
Как защититься от Click Injection?
На iOS — SKAdNetwork 4.0+, который устраняет атаку как класс (атрибуция идёт через Apple, не через клиентский SDK). На Android — настроить в MMP (Adjust/AppsFlyer) правило reject установки при CTIT < 10 секунд, обнулить viewthrough для подозрительных сетей и сократить click attribution window до 24 часов.