WinUpGo
搜尋
CASWINO
SKYSLOTS
BRAMA
TETHERPAY
777 FREE SPINS + 300%
加密貨幣賭場 加密賭場 Torrent Gear是您的通用洪流搜索! Torrent Gear

在後端級別管理促銷和獎金

文章全文

💡 18+.面向平臺/運營商和提供商的工程實用材料。不打電話。「錢包」是指具有ACID擔保的Ledger/Wallet,「獎金」是指影響遊戲平衡和條件的促銷者。

1)為什麼把促銷帶到一個單獨的後端

貨幣不變量。獎金≠「平衡」:這是帶有條件的合同(vager,遊戲貢獻,最高投註/獲勝)。

更改速度。營銷團隊每天發布活動-需要聲明性規則引擎和回滾。

反Abuse/合規性。KYC/RG/AML,velocity,細分,「四只眼睛」對昂貴的離群值。

可觀察性和可報告性。SLO,促銷成本,對GGR/NGR/LTV的影響。

原則:促銷核心是具有自己的狀態機器的獨立服務,金錢只能通過錢包,相等地移動。


2)獎金類型和不變式

Deposit match (100%到X):捕獲存款後收取費用,vager X ×。

現金(虧損):根據時間/遊戲窗口計算,可能是sticky/non-sticky。

Free Spins/Free Bets:優惠券/代幣與自旋/投註價格,固定RTP池。

任務/任務:任務→進展→獎勵。

賽事/飛行活動:賽事貢獻,排名,獎金。

不變量:
  • Sticky:在滿足條件之前不能退出。
  • Max bet/Max贏:從獎金中扣除利率/付款限制。
  • 貢獻:遊戲貢獻(例如,slots=100%, live=10%)。
  • Expiry:獎金和vager窗口的到期日。

3)獎金服務架構


管理(活動/規則)─Promo API ─Rules Engine/Eligibility
│
├─Bonus Ledger(Offers狀態)
├─Wagering引擎(進度)
├─Anti-Abuse (限制/frod/velocity)
└─Outbox (events) ─Kafka/Pulsar ─BI/DWH/CRM

Wallet/Ledger── Idempotent Commands ───┘

規則引擎-聲明性條件(細分,地理/許可,通道,KYC/RG)。

Wagering Engine-計算來自'bet的貢獻。settled`/`wallet.debitcredit`.
Bonus Ledger是獎金/任務狀態的真相來源。
Outbox/CDC是'bonus的可靠出版物。issuedprogress.updated

4)數據模型(簡化)

`bonus_grant`

`grant_id, player_id, offer_id, type, currency, amount_minor, sticky, wager_x, max_bet_minor, max_win_minor, contribution_schema_id, status (issuedactivepausedcompletedexpiredrevoked), issued_at, expires_at, brand_id, region, idempotency_key`
`wager_progress`
  • `grant_id, required_minor, contributed_minor, remaining_minor, last_update_at`
`contribution_schema`
  • `schema_id, rules: [{game_type:"slot", pct:100},{game_type:"live", pct:10}]`

「bonus_ledger_entry」(審核)

`entry_id, grant_id, action (issueconsumerevokeexpireadjust), amount_minor, reason, occurred_at, trace_id`

5)狀態機器和傳奇

5.1演示(issue)-傳奇

1.eligibility.檢查(段,RG/KYC, velocity)

2.grant.create (status=`issued`)

3.wallet.credit [bonus](平均值;在sticky-在獎勵子資產負債表)

4.activate (status=`active`)

5.emit `bonus.issued`

Rollback: 在第3步下降時→ 'grant。cancel「+事件」獎金。revoked`.

5.2 Vager進步

在'bet上。設置為"計算貢獻='stake_minor contribution_pct'(或根據win/loss規則)。

原子更新「wager_progress」;達到100%-「complete」。

5.3完成(消費)

complete → `wallet.convert_bonus_to_cash'(如非粘貼)或解除輸出限制。

emit `bonus.consumed`.

5.4到期/召回

根據「expires_at」或弗羅德規則→ 「revoke」(偶數),可以根據政策進行補償。


6)錢包合同(僅通過API,始終是偶數)

累積獎金


POST /v1/wallet/credit
Headers: X-Idempotency-Key: bonus_grant_123
{
"player_id":"p_001",  "amount":{"minor_units":100000,"currency":"EUR"},  "balance_type":"bonus",  "reference":{"grant_id":"gr_123","offer_id":"of_777"}
}
→ 200 {"status":"credited","entry_id":"e_9001"}

滿足條件後轉換為緩存


POST /v1/wallet/convert
Headers: X-Idempotency-Key: bonus_convert_gr_123
{
"player_id":"p_001",  "from_balance":"bonus",  "to_balance":"cash",  "amount_minor":100000,  "reference":{"grant_id":"gr_123"}
}
→ 200 {"status":"converted","entry_id":"e_9010"}
max bet/max win檢查-在RGS/Wallet Guard方面:
  • 要求'bets。「authorize」被代碼「BONUS_MAX_BET_EXCEED」拒絕。

7)促銷服務API(基準)

創建Offer (admin)


POST /v1/offers
{
"name":"Welcome 100% up to 100€",  "type":"deposit_match",  "params":{"match_pct":100,"cap_minor":10000,"wager_x":20,"sticky":true,       "max_bet_minor":200,"max_win_minor":50000,"contribution_schema_id":"c_slot100_live10"},  "eligibility":{"brands":["A"],"regions":["EU"],"segment":"new_depositors"},  "schedule":{"start":"2025-10-20T00:00:00Z","end":"2025-11-30T23:59:59Z"}
}
→ 201 {"offer_id":"of_777"}

發放獎金(runtime)


POST /v1/bonus/grants
Headers: X-Idempotency-Key: grant_p001_of777
{
"player_id":"p_001","offer_id":"of_777","trigger":"deposit_captured","amount_minor":10000
}
→ 200 {"grant_id":"gr_123","status":"active"}

Vager進步(閱讀)


GET /v1/bonus/grants/gr_123/progress
→ 200 {"required_minor":200000,"contributed_minor":45000,"remaining_minor":155000,"pct":0.225}

撤銷/撤銷


POST /v1/bonus/grants/gr_123/revoke
Headers: X-Idempotency-Key: revoke_gr_123
{ "reason":"fraud_velocity" }
→ 200 {"status":"revoked"}

所有寫作呼叫均來自「X-Idempotency-Key」和「X-Trace-Id」。


8)反濫用和合規性

Velocity限制:發放/轉換/嘗試存款(Redis counters+TTL+Lua)。

觸發器:根據規則,一筆存款→一筆贈款。

細分和RG:排除自我釋放/限制;per品牌/地區許可證。

離岸沖突塊:同時只有一個歡迎獎金;優先次序。

異常檢測器:多個帳戶/設備/ASN,快速「重置」vager。

「四眼」大筆贈款和人工調整。

WORM審核所有規則/贈款/轉換更改。


9)可觀察性,度量和SLO

SLO(地標):
  • `grant.issue p95` (issue→credited) ≤ 300–500 мс.
  • 從「bet」開始更新「wager_progress p95」 ≤ 200毫秒。settled`.
  • 發生的「bonus.」事件發生在p95總線上≤ 2分鐘。
  • 「損失/重復贈款/轉換」=0。
度量標準:
  • Rate/latency по `issue/convert/revoke`, error-rate (business/4xx/5xx), `IDEMPOTENCY_MISMATCH`.
  • Vager轉換,平均「時間完成」,逾期百分比。
  • 促銷費用:隊列上的「promo_cost」(次要)和「promo_roi」。
  • 反抽象:velocity觸發,max bet/win偏轉。

Tracing: OpenTelemetry在'trigger → grant → wallet鏈條上。credit → progress.update → convert`.


10)與RGS/遊戲集成

Free Spins/Free Bets優惠券-通過「entitlements」 API:代幣發行,rantime註銷,遙測使用。

Max bet/Win-Bets中的規則。authorize` и `bets.settle`;返回代碼「BONUS_RULE_VIOLATION」。

貢獻是'bet級別的方案。設置為"(通過'game_type/provider_id'),對方案進行反轉。


11) DWH/BI和報告

Outbox活動→ Lake(銅牌)→ Silver (dedoop, SCD2) → Gold店面:
  • `fact_bonus_grants`, `fact_wager_progress`, `fact_bonus_cost`, `fact_promo_roi`.
  • SLA新鮮:Silver ≤ 15分鐘,Gold ≤ 30-60分鐘。
  • 面板:轉換到離線/片段,時間到完成,貢獻到遊戲,數據表事件。

12)安全和居住權

mTLS + OAuth2 CC;scope’ы `promo:issue`, `promo:convert`, `promo:revoke`.

鑰匙/代幣-按品牌/地區簡短;Vault/HSM中的秘密。

PII隔離: 「player_id」是別名;RLS по `brand/region`.

發行限額和配額;防禦暴風雨。


13)支票單

平臺/操作員

  • 所有現金交易都是通過「Idempotency-Key」通過Wallet進行的。
  • 規則/可擴展性是可轉換的;移民事件的「雙重寫作」。
  • 貢獻方案是集中的,由測試覆蓋。
  • 包括Velocity和反氟化物;「四只眼睛」大量。
  • Outbox/CDC,DLQ和「bonus.」的托管重播。
  • SLO-dashbords, OpenTelemetry, WORM審核。
  • 用於ROI和合規性(RG/AML)的DWH店面。

集成(RGS/錢包/CRM)

  • 檢查max bet/win;返回業務錯誤代碼。
  • 通過「trace_id」和「idempotency_key」。
  • 觸發器和交付保證(webhooks已簽名)。

14)紅旗(反模式)

手動累積獎金直接進入資產負債表,繞過Wallet。

缺乏相容性→雙倍贈款/轉換。

Vager被認為是'bet。放置「而不是」bet的結果。settled`.

沒有貢獻方案,或者它們在提供商代碼中「縫合」。

沖突的offers同時激活。

沒有velocity/anti-frod和WORM審核。

「Bonus.」事件是繞過outbox/CDC發布的。

促銷指標與Ledger/BI不一致(沒有ROI店面)。


15)結果

可靠的後端促銷是合同和不變量而不是「增加平衡」。它將規則與金錢分開,根據實際結果計算進展,保證相等性和可觀察性,防止借貸並提供合規性。有了這樣的核心,市場營銷就迅速發展,玩家可以看到誠實的條件,財務和監管機構可以準確了解每個離職者的成本和影響。

× 搜尋遊戲
請輸入至少 3 個字元以開始搜尋。