Как предотвратить злоупотребление пробным периодом, не блокируя настоящих пользователей
Почему люди перезапускают ваш пробный период с новых аккаунтов, какие сигналы связывают эти аккаунты и схема решений, которая останавливает повторы, оставляя честным пользователям пробный период без карты.
Как на самом деле выглядит злоупотребление пробным периодом
Злоупотребление пробным периодом — это когда один человек снова и снова запускает ваш пробный период с новых аккаунтов, чтобы никогда не платить. На атаку это почти не похоже: ни всплеска трафика, ни украденных карт. Вы видите ровный поток аккаунтов, каждый из которых по отдельности выглядит нормально:
- Новый одноразовый ящик. Временный адрес на одном из десятков тысяч одноразовых доменов, использованный один раз для подтверждения аккаунта.
- Тот же Gmail, записанный иначе.
jane.doe@gmail.com,janedoe+2@gmail.comиj.a.n.e.doe@gmail.comпопадают в один и тот же ящик. - Тот же ноутбук и то же домашнее подключение. Браузер, экран, шрифты и IP-адрес совпадают с аккаунтом, созданным месяц назад.
Все эти аккаунты проходят подтверждение почты, так что простое «подтвердите e-mail» ничего не даёт. При регистрации нужно отвечать не на вопрос «настоящий ли это адрес?», а на вопрос «видели ли мы этого человека раньше?».
Почему привычные решения вредят больше, чем помогают
Требовать карту для каждого пробного периода
Требование карты останавливает большую часть повторных пробных периодов, но отсекает и многих честных посетителей, которые хотят сначала просто попробовать продукт. Вы меняете проблему злоупотреблений на проблему конверсии. К тому же одну карту можно использовать в нескольких аккаунтах, так что сама по себе она тоже не доказывает, что это новый человек.
Блокировать только по домену почты
Список одноразовых доменов ловит самых ленивых. Алиасы Gmail он не замечает вовсе, а список, скопированный в код, быстро устаревает: новые одноразовые домены появляются постоянно. Подробно об этом — в руководстве Как блокировать одноразовую почту при регистрации.
Блокировать по IP-адресу
Блокировка по IP — самый грубый инструмент. Целые офисы, университеты и мобильные операторы делят адреса, а настойчивый нарушитель меняет сеть за секунды. IP — полезный сигнал в общем балле, но не причина отказывать сам по себе.
Сигналы, связывающие новый аккаунт со старым
Вместо одного жёсткого правила смотрите на несколько слабых сигналов и складывайте их. Ни один не должен решать в одиночку, но вместе они делают повторный пробный период очевидным.
| Сигнал | Что ловит | Риск ложных срабатываний |
|---|---|---|
| Нормализованный ящик уже существует | Варианты Gmail с точками и плюсом от существующего аккаунта | Низкий: это буквально тот же ящик |
| Одноразовый домен | Одноразовые ящики под одну регистрацию | Низкий, если список свежий |
| Домен не принимает почту | Опечатки и выдуманные домены | Низкий |
| То же устройство, что у существующего аккаунта | Тот же браузер создаёт второй аккаунт | Средний: семьи и общие компьютеры |
| Много регистраций с одного IP сегодня | Всплески из одной сети | Средний: офисы, кампусы, NAT операторов |
| Адрес дата-центра или Tor | Скрипты на серверах, анонимизированный трафик | Средний: часть пользователей VPN |
Закономерность ясна: сигналы с низким риском ложных срабатываний могут весить много, а те, что задевают и честных пользователей, должны лишь немного поднимать балл.
Схема решений, которая не обижает честных пользователей
Самые эффективные настройки, что мы видим, блокируют мало. Они дают пробный период без карты почти всем и добавляют трение только при высоком балле:
- Оцените регистрацию на сервере — после отправки формы и до начала пробного периода.
- Разрешить (низкий балл): обычный пробный период. Таких должно быть подавляющее большинство.
- Проверить (средний балл): запустите пробный период, но попросите то, что нарушителю обходится дороже, чем настоящему пользователю, — карту, номер телефона или меньшую квоту до подтверждения.
- Заблокировать (высокий балл): не запускайте пробный период. Предложите платный тариф или ссылку для связи вместо тупика — балл это вероятность, а не доказательство.
Простое правило: того, кто делит ноутбук с сестрой, нельзя блокировать только за это. Складывайте сигналы общего устройства только с чем-то более сильным, например с совпадающим ящиком.
Как встроить это в регистрацию
Нужны две вещи: что-то на странице регистрации, что узнаёт браузер, и серверная проверка до выдачи пробного периода. С Attrelix это один тег script и один вызов API:
<!-- страница регистрации --> <script src="https://attrelix.com/v1.js" data-key="pk_live_…" async></script>
# сервер, до начала пробного периода (Python) r = requests.post("https://attrelix.com/v1/check", timeout=3, headers={"Authorization": f"Bearer {SECRET}"}, json={"email": email, "ip": ip, "visitor": form["attrelix_visitor"]}) decision = r.json().get("decision", "allow") if r.ok else "allow" if decision == "allow": start_trial(user) elif decision == "review": start_trial(user, require_card=True) else: offer_paid_plan(user)
Обратите внимание на запасной вариант: если проверка не ответила вовремя, пользователь проходит. Антифрод-проверка никогда не должна становиться причиной, по которой у вас не работает регистрация.
Сначала измеряйте, потом ужесточайте
Начните в режиме наблюдения: одну-две недели записывайте решение, ничего не предпринимая, а затем посмотрите на аккаунты, которые попали бы на проверку. Если это почти сплошь повторные пробные периоды — включайте последствия. Если среди них есть честные пользователи — поднимите порог или снизьте вес сигнала, который их туда привёл. Настраивайте по своим данным, а не по чужим значениям по умолчанию.
Итог
- Повторные пробные периоды по отдельности выглядят чисто. Ищите связи с прежними аккаунтами.
- Нормализуйте адреса, проверяйте одноразовые домены и узнавайте устройство.
- Складывайте сигналы в балл; в одиночку решают только сильные сигналы.
- На проверке добавляйте трение вместо блокировки и пропускайте при сбое.