適用先
scope.record_typesによって、ルールが何に対して発火するかが決まります。
省略した場合、ルールは取引のみを対象とします。イベント機能より前に作成されたルールはすべてこれまでとまったく同じように動作します。スコープがたまたま空だったという理由で、ルールがログインにマッチし始めることはありません。
"__current__"は「評価対象のイベントと同じ値」を意味します。これにより、ルールは特定の値を指定せずに対象者ごと、デバイスごと、ラウンドごとの条件を表現できます。
イベントフィールド
条件は名前空間付きのパスを読み取ります。すでにおなじみの取引の語彙(action_type、subject_vendor_data、subject_ip_country、custom_values.<key>)は、イベントでも参照できます。
対象者シグナルはイベントごとに再計算されるのではなく、モニタリング対象のユーザーに対してキャッシュされます。そのため、ルールは取り込み時にこれらを読み取れます。
集計
ベロシティ
取引ですでに使っているリデューサー(count、sum、avg、min、max、distinct_count)を、ローリングwindow(30m、24h、7d、30d)にわたって適用します。
比率
同じウィンドウにわたる2つのリデューサーです。賭け額対入金額、出金額対入金額、ボーナス対入金額、チャージバック率はこの方法で表現します。分母のない比率は決して一致しません。入金がないことは比率ゼロではなく、根拠がないということです。ここで発火させると、新規ユーザー全員にフラグが立ってしまいます。
シーケンス
ウィンドウ内の順序付き述語です。各ステップはaction_type、event_category、または任意のmatchフィルターで一致を判定し、シーケンスが次に進む前にmin_count回の発生を要求できます。
相関
対象者をまたぐ結合です。このイベントと同じグループを共有するすべてのイベントにわたって集計します。"pair": trueは両端を順序のない集合として照合するため、A→BとB→Aは同じグループに入ります。これにより、1つのルールで共謀の両側を把握できます。チップダンピング、反対ベッティング、アフィリエイトによる自己リファラルは、いずれもこの形です。
相関ルールには必ず絞り込み用のfiltersを指定してください。指定しないと、ウィンドウ内のすべてのイベントが対象になります。
リアルタイムルールと非同期ルール
取り込みリクエスト内で結果を返せるルールと、できないルールがあります。
ルールが保留中のイベントは、
"correlation_pending": true付きで返されます。非同期処理が完了すると、既存のイベントのステータスとスコアが更新されます。再実行は冪等なため、ルールがスコアを二重に適用することはありません。
この分担は意図的なものです。複数の対象者にまたがるリングのクエリのために、ログインを待たせてはならないからです。
アクション
取引ルールと同じアクション(add_score、change_status、add_tags、add_note、add_to_list、open_case)を使用します。
イベントでは次の2点が異なります。
AWAITING_USERへのchange_statusは取引専用の結果であるため(イベントには是正フローがありません)、IN_REVIEWとして適用されます。open_caseは、ケースを取引ではなく対象者に紐付け、一致したイベントIDをケースに記録します。
エビデンス
すべての一致には、集計ウィンドウ、算出値、期待値、サンプリングされたイベントID、一致した各フィールドのソースが保存されます。
そのため、アナリストは一致に対してアクションを起こす前に、サーバーで記録されたIPとクライアントが提供したヒントを区別できます。コンソールでは、イベントドロワー内の一致した各フィールドの横にソースが表示されます。
実例
最小限のプレイによるマネーロンダリング
最小限のプレイによるマネーロンダリング
入金し、形だけのプレイを行い、すぐに出金するパターンです。条件
event.action_type eq withdrawal_requestedに加え、前述の賭け金対入金比率を24hの期間でlte 0.1に設定します。フレンドリー詐欺
フレンドリー詐欺
対象者ごとの
count(chargeback_opened)とcount(deposit_completed)の比率を30dの期間でgte 0.5に設定します。対象者の代わりにevent.payment.payment_fingerprintでグループ化すると、複数のアカウントにまたがって使われる1つの決済手段を検出できます。アカウント乗っ取りによる資金流出
アカウント乗っ取りによる資金流出
前述の
ato_drainシーケンスに、add_score 90とchange_status DECLINEDを組み合わせます。チップダンピング
チップダンピング
前述のペア相関を使用します。
valueをお客様のテーブルにとって重要な金額まで引き上げ、group_byにevent.gameplay.game_idを追加してゲームごとに分けて集計します。ボットによるプレイとリアルタイムアシスト
ボットによるプレイとリアルタイムアシスト
event.action_type eq bot_signal_observed、event.bot.timing_variance_ms lte 10、event.device.bot_score gte 90を条件とし、add_tagsを設定します。IPごとのevent.device.fingerprintのdistinct_countと組み合わせると、単一のスクリプトではなくファーム全体を検出できます。自己排除の回避
自己排除の回避
event.action_type eq self_exclusion_matchとevent.payload.re_registration_attempt eq trueを条件とし、open_caseでエスカレーションします。次のステップ
イベントの取り込み
エンベロープ、10のカテゴリ、バッチの仕様について説明します。
ルールAPI
プログラムでルールを作成、更新、バックテストできます。