Skip to content

iGaming 事件

受众: 面向 iGaming 产品的工程师、技术集成方

iGaming 事件(igaming 预设)涵盖游戏垂直行业:扩展的用户生命周期、KYC 与账户状态、资金、游戏和奖金生命周期。

IMPORTANT

iGaming 是一个按订阅启用的行业预设。在这些事件被接受之前,你的产品必须已订阅(由 RevoSurge 团队启用)——否则它们会被拒绝为 422 EVENT_DISABLED。参见事件目录与校验

每个事件还携带基础属性eventtimestampidentity.client_user_idcontext.ip_address)。下面的表格只列出每个事件特有的字段。货币字段(amountbet_result_amount 等)会使用随附的 currencyis_crypto 字段进行换算。

交互式浏览器

选择一个事件以查看其字段和一个可直接发送的信封。切换“仅必填”,然后复制为 JSON 或 cURL。

POST/v3/s2s/eventsession_ended
字段类型要求说明
eventString必填固定为 `session_ended`,必须是已登记的事件名。
timestampNumber必填UTC 纪元毫秒(13 位)。
identity.client_user_idString必填你系统中用户的唯一 ID。identity 至少需含 client_user_id / anonymous_id 之一。
identity.click_idString建议用于归因的广告点击 ID。
identity.anonymous_idString可选注册前的匿名 ID;在 client_user_id 出现前用于 App 生命周期身份缝合。
context.ip_addressString必填终端用户 IP(IPv4 或 IPv6)。
context.session_idString必填唯一会话 ID。
context.session_start_atNumber必填会话开始,UTC 毫秒。
context.duration_minutesNumber必填会话总时长(分钟)。
context.total_wageredNumber建议会话内总投注额。
context.total_wonNumber建议会话内总赢额。
context.bet_countNumber建议会话内投注次数。
context.currencyString建议若上报 wagered / won 则必填。
context.is_cryptoBoolean建议加密货币为 true。
context.end_reasonString建议会话结束原因:user_logout / timeout / forced_logout / unknown。
请求信封
{
  "event": "session_ended",
  "timestamp": 1718280000000,
  "identity": {
    "client_user_id": "user_001",
    "click_id": "RS_clk_998877",
    "anonymous_id": "anon_7f3a"
  },
  "context": {
    "ip_address": "203.0.113.1",
    "session_id": "sess_001",
    "session_start_at": 1718276400000,
    "duration_minutes": 60,
    "total_wagered": 250,
    "total_won": 180,
    "bet_count": 42,
    "currency": "USD",
    "is_crypto": false,
    "end_reason": "user_logout"
  }
}

用户生命周期

session_ended

会话时长是一个强烈的玩家级流失预测指标。

字段类型要求说明
context.session_idString必填唯一会话 ID。
context.session_start_atNumber必填会话开始时间,UTC 毫秒。
context.duration_minutesNumber必填会话总时长(分钟)。
context.total_wageredNumber建议会话内总投注额。
context.total_wonNumber建议会话内总赢额。
context.bet_countNumber建议会话内投注次数。
context.currencyString建议若上报 total_wagered / total_won 则必填。
context.is_cryptoBoolean建议加密货币计价为 true
context.end_reasonString建议user_logout · timeout · forced_logout · unknown 之一。

vip_tier_changed

降级是一个强烈的流失信号。对于初始等级,使用 direction: upgrade

字段类型要求说明
context.new_tierString必填当前等级(例如 goldvip_1)。
context.previous_tierString建议本次变更前的等级。
context.directionString必填upgrade · downgrade · lateral 之一。
context.triggerString建议lifetime_deposits · monthly_wagering · loyalty_points · manual_admin · tier_review · other 之一。

验证与授权

kyc_completed

对于多级 KYC,每个级别触发一次。

字段类型要求说明
context.kyc_levelString必填basic · enhanced · full 之一。
context.jurisdictionString必填ISO 3166-1 国家代码(例如 BRINPH)。
context.verification_methodString必填id_document · video · sms_otp · address_proof · bank_verification 之一。
context.time_to_complete_minutesNumber建议register 到本事件的分钟数。

kyc_rejected

kyc_completed 的对应事件;用于 KYC 漏斗/拒绝率诊断。

字段类型要求说明
context.kyc_levelString必填basic · enhanced · full 之一。
context.jurisdictionString必填ISO 3166-1 国家代码。
context.rejection_reasonString必填document_invalid · face_mismatch · sanctions_hit · underage · duplicate · document_unreadable · document_expired · name_mismatch · age_restriction · suspected_fraud · other 之一。
context.verification_methodString建议尝试的验证方式。
context.time_to_reject_minutesNumber建议register 到本事件的分钟数。

account_blocked

将被封禁的账户从 LTV / 流失模型中排除。

字段类型要求说明
context.block_reasonString必填fraud · bonus_abuse · multi_account · self_exclusion · compliance · payment_chargeback · other 之一。
context.block_durationString建议permanent · temporary · under_review 之一。
context.expected_unblock_atNumber建议UTC 毫秒;用于临时封禁。

account_unblocked

字段类型要求说明
context.unblock_reasonString必填建议用 review_passed · appeal_approved · cooldown_ended · manual_admin · other。(temporary_expired 仍接受但已弃用。)
context.previous_block_reasonString建议被解除的封禁的原因。

资金

deposit_initiated

字段类型要求说明
context.transaction_idString必填支付订单 ID(主键;须与后续 deposit / deposit_failed 一致)。
context.amountNumber必填申请充值的金额(货币)。
context.currencyString必填ISO 4217(法币)或加密货币符号。
context.is_cryptoBoolean建议加密货币为 true
context.payment_methodString建议用户所选支付渠道,例如 card_visa · usdt_trc20 · pix

deposit

字段类型要求说明
context.transaction_idString必填唯一交易 ID(主键)。
context.amountNumber必填充值金额(货币)。
context.currencyString必填ISO 4217(法币)或加密货币符号。
context.is_cryptoBoolean建议加密货币为 true
context.payment_methodString建议例如 card_visa · usdt_trc20 · pix

deposit_failed

总充值尝试次数 = deposit + deposit_failed

字段类型要求说明
context.transaction_idString必填尝试 ID(主键,用于去重)。
context.attempted_amountNumber必填尝试的充值金额(货币)。
context.currencyString必填ISO 4217 或加密货币符号。
context.payment_methodString必填尝试的支付方式。
context.failure_reasonString必填insufficient_funds · declined_by_issuer · network_error · fraud_blocked · amount_limit · unknown 之一。
context.is_cryptoBoolean建议加密货币尝试为 true

withdraw

字段类型要求说明
context.transaction_idString必填唯一交易 ID(主键)。
context.amountNumber必填提现金额(货币)。
context.currencyString必填ISO 4217 或加密货币符号。
context.is_cryptoBoolean建议加密货币为 true

游戏

bet

一个单独的已结算投注事件——投注额及其结果通过 bet_result / bet_result_amount 一起上报。

NOTE

对于 betcontext.ip_address降级为建议,因为投注通常来自游戏服务器,没有终端用户 IP。

字段类型要求说明
context.transaction_idString必填唯一投注/票据 ID(主键)。
context.game_typeString必填规范游戏类型——见下方取值。
context.game_providerString必填例如 Pragmatic PlayEvolution Gaming
context.game_nameString建议具体游戏名称(例如 Sweet Bonanza)。
context.amountNumber必填总投注额(货币)。
context.currencyString必填ISO 4217 或加密货币符号。
context.cash_bet_amountNumber建议投注额中的现金部分(用于 NGR / 奖金滥用)。
context.bonus_bet_amountNumber建议投注额中的奖金部分。
context.bet_resultString必填win · loss 之一。
context.bet_result_amountNumber必填净结果——正数 = 赢,负数 = 输(货币)。
context.ticket_typeString建议体育博彩:single · multi · system
context.is_liveBoolean建议体育博彩滚球投注。
context.is_freeBoolean建议免费投注令牌(从 LTV 中排除)。
context.is_cryptoBoolean建议加密货币为 true

game_type 规范值

context.game_type(String,必填)会归一化为下表中的规范类型。可以发送规范键本身,也可以发送它对应的任意别名,两者都会归一化为同一个规范类型。

game_type可接受的别名(Aliases)
slotslot(老虎机)· pachinko(弹珠机)
live_casinolive(真人)· gameshow(真人游戏秀)
sportsbooksport(体育)· cockfight(斗鸡)
fishingfish(捕鱼)· arcade(街机)
table_gamesbaccarat(百家乐)· blackjack(二十一点)· roulette(轮盘)· dice(骰宝)· card(纸牌)· table(桌台)
pokerpoker(德州扑克)
lotterylottery(彩票)· bingo(宾果)· instant(即开彩/刮刮乐)
esportsesport(电竞)
crashcrash · aviator(崩盘/坠机游戏)

game_type 为受校验的字段——只能发送规范键或其所列别名,未登记的值会被拒收。

奖金生命周期

四个奖金事件必须共享同一个一致的 bonus_id,并按顺序触发:bonus_offeredbonus_claimedbonus_completedbonus_cashed_out

bonus_offered

字段类型要求说明
context.bonus_idString必填唯一奖金实例 ID(主键;在整个生命周期内保持一致)。
context.bonus_typeString必填welcome · reload · cashback · freespin · promo_code · tournament · value_voucher(优惠券发放)· promo_cash(优惠金发放)· other 之一。
context.bonus_value_maxNumber必填可授予的最大金额。
context.currencyString必填货币。
context.wagering_multiplierNumber必填流水倍数(30 = 30x;0 = 无)。
context.valid_untilNumber必填UTC 毫秒,要约到期时间。
context.delivery_channelString必填auto_grant · email · in_app · push · promo_code · sms 之一。
context.is_cryptoBoolean建议加密货币为 true

bonus_claimed

对于 auto_grant,在 bonus_offered 之后立即触发。

字段类型要求说明
context.bonus_idString必填bonus_offered 匹配(外键)。
context.bonus_value_grantedNumber必填实际授予的金额(≤ bonus_value_max)。
context.currencyString必填必须与要约时一致。
context.wagering_requirementNumber必填= bonus_value_granted × wagering_multiplier
context.is_cryptoBoolean建议加密货币为 true

bonus_completed

字段类型要求说明
context.bonus_idString必填外键。
context.total_wageredNumber必填完成时的最终流水。
context.wagering_requirementNumber必填与领取时相同。
context.currencyString必填必须与领取时一致。
context.time_to_complete_minutesNumber必填bonus_claimed 起的分钟数。
context.is_cryptoBoolean建议加密货币为 true

bonus_cashed_out

可能针对每个 bonus_id 多次触发;DataPulse 会对它们求和。

字段类型要求说明
context.bonus_idString必填外键。
context.cashout_amountNumber必填转入真实货币钱包的金额。
context.original_bonus_valueNumber必填领取时的 bonus_value_granted
context.currencyString必填必须与领取时一致。
context.time_to_cashout_minutesNumber必填bonus_claimed 起的分钟数。
context.is_cryptoBoolean建议加密货币为 true