Применяется к
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).
Соотношение
Два редуктора по одному и тому же окну. Таким способом выражаются соотношения ставок к депозитам, выводов средств к депозитам, бонусов к депозитам и доля чарджбэков.Соотношение без знаменателя никогда не срабатывает. Отсутствие депозитов не означает нулевое соотношение, это отсутствие доказательств, и срабатывание в таком случае помечало бы каждого нового пользователя.
Последовательность
Упорядоченные предикаты внутри окна. Каждый шаг сопоставляется поaction_type, event_category или произвольному фильтру match, а также может требовать min_count вхождений перед переходом к следующему шагу последовательности.
Корреляция
Объединение между субъектами: агрегация по каждому событию, входящему в группу данного события."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 правил
Программное создание, обновление и тестирование правил на исторических данных.