Перейти к основному содержанию
События оцениваются тем же движком, что и транзакции. Здесь используется единая модель правил, общий словарь условий и один набор действий - правило лишь объявляет, к каким типам записей оно применяется.

Применяется к

scope.record_types определяет, на что срабатывает правило.
Если не указывать этот параметр, правило будет применяться только к транзакциям. Любое правило, созданное до появления событий, работает в точности так же, как и раньше, и правило никогда не начнет сопоставляться со входами в систему только потому, что его область действия оказалась пустой.
В консоли это селектор Применяется к на шаге «Триггер» правила. При выборе «События» появляется список флажков Категории событий, который позволяет дополнительно сузить область действия правила; оставьте все пункты невыбранными, чтобы оценивать все категории.
"__current__" означает «то же значение, что и у оцениваемого события» - именно так в правиле задается условие для субъекта, для устройства или для раунда без указания конкретного значения. Записи без значения группировки никогда не объединяются в одну группу. Событие без цифрового отпечатка устройства не считается «тем же устройством», что и другие события без него, а событие без указания субъекта не считается «тем же субъектом», что и другие анонимные события: если у оцениваемого события нет значения для поля "__current__", эта агрегация не сработает независимо от используемого оператора.

Поля событий

В условиях используются пути с пространствами имен. Уже знакомый вам словарь транзакций (action_type, subject_vendor_data, subject_ip_country, custom_values.<key>) также доступен и для событий. Сигналы субъекта кэшируются на уровне отслеживаемого пользователя, а не вычисляются заново для каждого события, поэтому правило может считывать их со скоростью приема данных.

Агрегации

Скорость

Редукторы, которые вы уже используете для транзакций - count, sum, avg, min, max, distinct_count - по скользящему окну window (30m, 24h, 7d, 30d).

Соотношение

Два редуктора по одному и тому же окну. Таким способом выражаются соотношения ставок к депозитам, выводов средств к депозитам, бонусов к депозитам и доля чарджбэков.
Внесите депозит 1,000, поставьте 20, запросите вывод средств, и соотношение составит 0.02 - классическое отмывание денег через минимальную игру.
Соотношение без знаменателя никогда не срабатывает. Отсутствие депозитов не означает нулевое соотношение, это отсутствие доказательств, и срабатывание в таком случае помечало бы каждого нового пользователя.

Последовательность

Упорядоченные предикаты внутри окна. Каждый шаг сопоставляется по action_type, event_category или произвольному фильтру match, а также может требовать min_count вхождений перед переходом к следующему шагу последовательности.
Подстановка учетных данных, затем перехват MFA, затем перенаправление выплаты, затем опустошение баланса. Правило срабатывает на событии, завершающем цепочку, а в подтверждающих данных перечисляются идентификаторы событий для каждого шага. Состояние последовательности сохраняется отдельно для каждого правила и субъекта, поэтому оно обновляется по мере поступления событий, а не путем повторного сканирования временной шкалы. Прогресс старше заданного окна отбрасывается, а не учитывается.

Корреляция

Объединение между субъектами: агрегация по каждому событию, входящему в группу данного события.
"pair": true сопоставляет обе стороны как неупорядоченное множество, благодаря чему A→B и B→A попадают в одну группу - именно это позволяет одному правилу видеть обе стороны сговора. Сброс фишек, противоположные ставки и самореферал партнёра строятся по этой схеме. Всегда задавайте в правиле корреляции ограничивающие filters. Без них оно будет анализировать каждое событие в окне.

Правила в реальном времени и асинхронные правила

Некоторые правила могут возвращать ответ непосредственно в запросе на прием событий, а некоторые нет. Событие, правила для которого еще находятся в процессе обработки, возвращается с параметром "correlation_pending": true. Его статус и оценка обновляются на месте после завершения асинхронного прохода; повторный запуск идемпотентен, поэтому правило никогда не начислит свои баллы дважды. Это разделение сделано намеренно: запрос по кольцу между субъектами не должен заставлять пользователя ждать при входе в систему.

Действия

Используется тот же набор действий, что и для правил транзакций - add_score, change_status, add_tags, add_note, add_to_list, open_case. Два отличия для событий:
  • change_status на AWAITING_USER применяется только к транзакциям (для событий нет процесса устранения последствий) и применяется как IN_REVIEW.
  • open_case привязывает кейс к субъекту, а не к транзакции, и сохраняет идентификатор сработавшего события в кейсе.

Доказательства

Каждое срабатывание сохраняет зафиксированные данные: окно агрегации, вычисленное значение, ожидаемое значение, идентификаторы событий из выборки и источник каждого сопоставленного поля. Таким образом, аналитик может отличить заверенный сервером IP-адрес от переданной клиентом подсказки, прежде чем принимать меры по результату срабатывания. Панель управления отображает источник рядом с каждым сопоставленным полем в боковой панели события.

Практические примеры

Депозит, игра на символическую сумму, быстрый вывод. Условие event.action_type eq withdrawal_requested, плюс приведенное выше соотношение ставок к депозитам со значением lte 0.1 за 24h.
Отношение count(chargeback_opened) к count(deposit_completed) по субъекту за 30d, gte 0.5. Группировка по event.payment.payment_fingerprint вместо субъекта, чтобы выявлять один платежный инструмент в разных аккаунтах.
Приведенная выше последовательность ato_drain с действиями add_score 90 и change_status DECLINED.
Приведенная выше парная корреляция. Увеличьте value до суммы, являющейся существенной для ваших столов, и добавьте event.gameplay.game_id в group_by, чтобы разделять игры.
Условия event.action_type eq bot_signal_observed, event.bot.timing_variance_ms lte 10 и event.device.bot_score gte 90 с действием add_tags. Объедините с distinct_count для event.device.fingerprint на один IP, чтобы обнаружить ферму, а не отдельный скрипт.
Условие event.action_type eq self_exclusion_match и event.payload.re_registration_attempt eq true с эскалацией через open_case.

Что дальше

Прием событий

Конверт событий, десять категорий и контракт пакетной передачи.

API правил

Программное создание, обновление и тестирование правил на исторических данных.
Последнее изменение 7 ноября 2026 г.