Bonus-abuse和财务保护
1)什么是奖金,为什么是财务问题
Bonus-abuse-有针对性地使用奖金/股票以获得保证的收益,而无需承担同等游戏风险或绕过规则。后果:- 直接损失:奖金价值,免费旋转,促销功能/FX,CB/Refund。
- 扭曲指标:夸大了AR/MAU,虚假的uplift's。
- 支付风险:"旋转木马"depozit→vyvod,chargeback-farming。
- 许可风险:违反RG/KYC/AML,误导促销。
2)滥用分类法(模式)
1.Stacking-每个人/家庭/设备/支付令牌的多个奖金。
2.Net-deposit loops是为了获得奖金→最低利率→退款或充电器。
3.Hedging/Arbitrage-在相互关联的市场/游戏中投注以实现"封闭"风险。
4.High-RTP cherry-picking是仅限游戏的游戏,对WR的贡献很高。
5.Method arbitrage是一种廉价的存款方法→昂贵/快速的出口走廊。
6.FX套利是对存款与输出之间汇率差异的猜测。
7.Multi-Accounting-重复使用设备/网络/支付工具的克隆。
8.Chargeback农场是一项奖金游戏,然后通过争议/冲锋队退还押金。
9.KYC-evasion是SoF/SoW的有针对性的旁路,SoF/SoW是国家的替代产品(VPN/Proxy/SIM)。
3)财务保护(政策核心)
One-per constraints: по person/household/device/payment_token.
ND (Net Deposits)-门:"ND ≥ 0"(或"ND ≥ θ"阈值)的参与/支付。
Same-method/Return-to-source:提取高达ND的金额-仅用于存款来源。
Payout-locks:在执行WR和检查违规行为之前,以主动奖励方式禁止/限制输出。
WR&Pribution%:透明的重新组合规则(ONUS-ONLY或BONUS+DEPOSIT)以及按游戏类别划分的重量。
WR下的Max bet:绝对限额或奖金份额(例如"≤ 5 EUR"或"≤ 10%奖金")。
游戏/风险溢出:禁止"购买飞盘",头奖,异常高的RTP冠军。
Velocity caps:对存款/收款/失败付款率的限制。
滚动储备/控股:合作伙伴/子客户以及高风险玩家的保险缓冲区。
外汇政策:将参考率固定在奖金上;在付款时控制滑动。
4)风险信号(支付和行为)
支付:BIN地理≠ KYC国家,频繁的软贬值,连续的新令牌,卡/钱包,著名的"高风险"发行人。
Device/Network: device-graph与其他帐户相同,常见的IP/ASN/VPN/主机。
Behavior:只有一个高对比度的游戏,一个下注后的即时撤出,重播WR违规行为。
Geo:KYC≠IP≠SIM,地质速度异常。
Docs:可疑的KYC/POA/SoF(质量差,模板,reuse)。
FX:以"弱"货币存款,以"强"结算,暂时高利差。
风险计分:线性模型/GBM,带有按块计费的拨号(Payment/Device/Behavior/Geo/FX),步进阈值校准(KYC/Liveness/SoF)和deny。
5)规则体系结构(策略引擎)
相等性:一次性payment_token/household/device赠款。
"存款前"规则:GEO/KYC/ND/一对一的可行性。
"存款后"规则:激活赠款,max bet,WR,游戏混合,计时器。
"输出"规则:same-method, ND切口,SoF/SoW步进,hold/deny。
审计:规则版本,原因,证据(用于上诉和监管机构)。
6)花花公子事件
1.Abuse wave (stacking):立即取消这项活动的赠款,重新计票WR,选择性SoF,令牌/房屋。
2.Chargeback surge:包括3DS-step-up,收紧same method,增加对PSP结论和储备的保留。
3.FX套利:暂时限制交叉货币结算,并引入传播守护。
4.方法arbitrage:关闭ND负的"昂贵"走廊,仅在源头上启用退货。
7)法律,RG和隐私
Terms&Promo T&C:短片版本,完整版本-配置文件;本地化。
RG: self-exclude/Limits-奖金不可用;冷静地将主动赠款归零。
KYC/SoF:数据最小化,明确同意,还原政策,DPA。
制裁/许可证:国家白名单,禁止特定司法管辖区的促销类型。
8)数据和模型(最低)
sql
-- Игрок и атрибуты риска risk.player_signals (
user_id PK, risk_score NUMERIC, nd_total NUMERIC, nd_30d NUMERIC, nd_7d NUMERIC,
kyc_level TEXT, geo_ip TEXT, geo_kyc TEXT, geo_sim TEXT,
device_hash TEXT, household_id TEXT, payment_token_last TEXT,
fx_profile JSONB, updated_at TIMESTAMP
);
-- Гранты бонусов и прогресс/нарушения bonus.grants (
grant_id PK, promo_id, user_id, deposit_tx_id, currency,
bonus_amount NUMERIC, granted_at TIMESTAMP, expires_at TIMESTAMP,
status TEXT -- ACTIVE FORFEITED COMPLETED EXPIRED FROZEN
);
bonus.wr_progress (
grant_id, user_id,
turnover_slots NUMERIC, turnover_tables NUMERIC, turnover_live NUMERIC,
turnover_total NUMERIC, required_total NUMERIC, updated_at TIMESTAMP
);
bonus.violations (
id PK, grant_id, user_id, type TEXT, severity TEXT, details JSONB, occurred_at TIMESTAMP
);
-- Нетто-депозиты и разрез по методам finance.net_deposits (
user_id, currency, nd_total NUMERIC, nd_by_method JSONB, updated_at TIMESTAMP
);
-- Выводы и причины hold/deny payout.requests (
payout_id PK, user_id, method TEXT, currency TEXT, amount NUMERIC,
nd_snapshot NUMERIC, same_method_ok BOOLEAN, risk_score NUMERIC,
status TEXT, reason_code TEXT, created_at TIMESTAMP, decided_at TIMESTAMP
);
9)Pseudo-DSL规则
yaml policy: "bonus_abuse_v4"
eligibility:
geo_whitelist: [DE, AT, FI]
kyc_min: L1 nd_min: 0 one_per: [person, household, device, payment_token]
deny_if:
- sanctions_hit == true
- risk_score >= 0.85 grant:
max_bet_amount:
EUR: 5 wagering:
base: BONUS_ONLY multiplier: 30 contrib:
slots: 100 tables: 25 live: 10 game_exclusions: [JACKPOT, BUY_BONUS]
controls:
payout_lock: UNTIL_WR_DONE same_method: true allow_nd_withdrawal: true fx_spread_guard_bps: 80 method_arbitrage_block: true escalations:
- if: nd_7d < 0 then: "deny_new_bonus"
- if: device_household_overlap >= 2 then: "manual_review"
- if: cb_rate_30d > 0.8% then: "hold_payout_48h"
audience:
exclude_segments: ["self_excluded", "high_risk_bin"]
10) SQL模板
10.1.输出上的ND-gate和same-method
sql
SELECT r.payout_id,
(nd.nd_total >= 0) AS nd_non_negative,
(t.method = r.method AND t.payment_token = r.payment_token) AS same_method_ok
FROM payout.requests r
JOIN finance.net_deposits nd ON nd.user_id = r.user_id AND nd.currency = r.currency
JOIN dw.transactions_flat t ON t.tx_id = (
SELECT deposit_tx_id FROM bonus.grants
WHERE user_id = r.user_id AND status IN ('ACTIVE','COMPLETED')
ORDER BY granted_at DESC LIMIT 1
)
WHERE r.status='PENDING' AND r.created_at BETWEEN:from AND:to;
10.2.Household/device overlap的细节
sql
SELECT suspect.user_id, base.user_id AS overlap_with, suspect.device_hash, suspect.household_id
FROM risk.player_signals suspect
JOIN risk.player_signals base
ON suspect.user_id <> base.user_id
AND (suspect.device_hash = base.device_hash OR suspect.household_id = base.household_id)
WHERE suspect.updated_at > now() - INTERVAL '30 days';
10.3.Max-bet和game-mix违规行为
sql
SELECT b.user_id, b.grant_id,
SUM(CASE WHEN b.amount > l.max_bet_amount THEN 1 ELSE 0 END) AS maxbet_viol,
100.0 SUM(CASE WHEN game_category='slots' THEN b.stake ELSE 0 END)
/ NULLIF(SUM(b.stake),0) AS slots_share_pct
FROM dw.bets b
JOIN bonus.session_limits l USING (grant_id, user_id)
WHERE b.placed_at BETWEEN:from AND:to
GROUP BY 1,2
HAVING SUM(CASE WHEN b.amount > l.max_bet_amount THEN 1 ELSE 0 END) > 0
OR 100.0 SUM(CASE WHEN game_category='slots' THEN b.stake ELSE 0 END)
/ NULLIF(SUM(b.stake),0) >:one_game_share_max;
10.4.Chargeback-pon-Bonus监视
sql
SELECT method,
10000.0 SUM(is_chargeback::int) / NULLIF(COUNT(),0) AS cb_bps_14d
FROM risk.outcomes o
JOIN dw.transactions_flat t USING (tx_id)
WHERE o.occurred_at BETWEEN (CURRENT_DATE - INTERVAL '14 days') AND CURRENT_DATE
AND EXISTS (SELECT 1 FROM bonus.grants g WHERE g.deposit_tx_id=t.tx_id)
GROUP BY method
ORDER BY cb_bps_14d DESC;
10.5.FX-slippage在促销中
sql
SELECT g.promo_id,
SUM(fx_effective - fx_reference) 10000.0 / NULLIF(SUM(amount_reporting),0) AS fx_slippage_bps
FROM dw.transactions_flat t
JOIN bonus.grants g ON g.deposit_tx_id=t.tx_id
WHERE t.settled_at BETWEEN:from AND:to
GROUP BY 1;
11) KPI和dashbords
Abuse Rate:有违规/调查的赠款份额。
WR Completion % / Time-to-WR (p50/p95).
ND Gate Hit%和ND在参与者中的份额<0。
方法/PSP/地质学的 Chargeback Bonus(bps)。
Payout Hold Share和平均TAT解决方案。
按促销/货币计算的FX Slippage (bps)。
Promo Liability(passive)和Breakage%。
房屋/设备覆盖指数(聚类)。
12)Alerta和急流
Abuse Spike: рост `violations/100 grants` > X d/d.
CB Surge Post-Bonus:方法cb_bps_14d/geo>阈值。
ND Negative Share ↑:ND <0在撤回申请中的份额>Y%。
Max-Bet Burst:违反行为激增>品牌/标题阈值。
FX Anomaly: slippage_bps>货币对限额。
Household Bloom:新的大型设备/地址集群。
Policy Drift:没有规则或同意的固定版本的赠款。
13)UX模式(无"燃烧"转换)
存款屏幕上的条件短卡(min dep,WR,max bet,same-method)。
WR进度-酒吧+截止日期,按类别贡献。
ND/结论的解释: "净存款金额仅为来源。"
柔和的步骤:SoF/信号自拍照;透明的时间表。
上诉:带有文件支票单的"挑战"按钮。
14) A/B防御测试
Guardrails: CBR bps, Abuse Rate, AR/Take-Rate, Payout TAT.
测试的内容是:'nd_min','max_bet','WR multiplier/base','one_per'-strategy,'fx_guard'。
技术:通过GEO/BIN/方法进行分层,通过预行为进行CUPED,通过SV/结论进行分层。
15)实施支票
- ND模型和方法切割;same-method/return-to-source в payout.
- Promo DSL+规则、版本和审核验证程序。
[] Max bet, WR, contrib%, exclusions;velocity限制。
[] Device/household graph;BIN 地理/FX配置文件。
- 风险评分+step-ups(KYC/SoF)和deny阈值。
- 在引线和PSP上保持/保留力学。
- KPI和Alerta的Dashbords;事件的花花公子。
- 法律文本(本地)、RG门、同意书和续文。
- 与SLA的上诉和人工决定程序。
- A/B具有严格的护栏和数据带。
二.总结
有效的奖励奖励保护是系统而不是一组禁令:ND控制和支付中的符号方法,严格的WR/max-bet和contrib%,Payment/Device/Behavior/FX信号,带步进的风险评分,透明的UX和法律纯度。这样的堆栈减少了直接损失,稳定了P&L,并为真正的玩家保留了诚实的体验-没有额外的摩擦和"误报"。