백엔드 수준에서 프로모션 및 보너스 관리
전체 기사
1) 프로모션을 별도의 백엔드로 가져가는 이유
통화 불변량. 보너스 번호 "추가 잔액": 이것은 조건 (베이거, 게임에 대한 기여, 최대 베팅/승리) 과의 계약입니다.
변화율. 마케팅 팀은 매일 캠페인을 발표합니다. 선언적 규칙 엔진과 롤백이 필요합니다.
남용 방지/준수. 비싼 제안을위한 KYC/RG/AML, 속도, 세분화, 4 눈 작업.
관찰 및보고. SLO, 프로모션 비용, GGR/NGR/LTV에 미치는 영향.
원리: 프로모션 코어는 자체 상태 머신이있는 별도의 서비스이며 돈은 지갑을 통해서만 엄청나게 움직입니다.
2) 보너스 유형학 및 불변량
예금 일치 (X 이전 100%): 캡처 예금 후 발생, vager X ×.
캐쉬백: 시간 창/게임별로 계산하면 끈적 거리거나 끈적 거리지 않을 수 있습니다.
무료 스핀/무료 베팅: 스핀/베팅 당 가격이 책정 된 쿠폰/토큰, 고정 된 RTP 풀.
퀘스트/미션: 작업 → 진행 → 보상.
토너먼트/비행 이벤트: 이벤트 기여, 등급, 상금.
불변량:- 끈적 끈적한: 조건이 충족 될 때까지 출력 할 수 없습니다.
- 최대 베팅/최대 승리: 보너스 펀드의 베팅/지불 제한.
- 기여: 게임 별 기여 (예: 슬롯 = 100%, live = 10%).
- 만료: 보너스 유효 기간 및 베이거 창.
3) 보너스 서비스 아키텍처
관리자-프로모션-규칙 엔진 API/자격
│
WES-Bonus Ledger (제안의 상태)
Wagering-Wagering Engine (진행 상황)
안티 -남용 (제한/사기/속도)
카프카/풀 사르 -BI/DWH/CRM
지갑/원장 -이데올로기 사령부규칙 엔진 - 선언적 조건 (세그먼트, 지리/라이센스, 채널, KYC/RG).
4) 데이터 모델 (단순화)
'보너스 _ 그랜트'
'wager _ progress'- (PHP 3 = 3.0.6, PHP 4)
- '스키마 _ id, 규칙: [{game _ style: "slot", pct: 100}, {game _ style: "live", pct: 10}]'
(PHP 3 = 3.0.6, PHP 4)
5) 상태 머신 및 사가
5. 1 호-사가
1. 자격. 체크 (세그먼트, RG/KYC, 속도)
2. 보조금. 생성 (상태 = '발행')
3. 지갑. 크레딧 [보너스] (dempotent; 끈적 끈적한-하위 균형 보너스)
4. 활성화 (상태 = '활성')
5. '보너스 방출. 발행 된 '
롤백: 3 단계 → '보조금으로 떨어질 때. '+ 이벤트' 보너스를 취소하십시오. 취소 됨 '.
5. 2 베이거 진행
나 베트. '카운트 기여 =' 스테이크 _ 사소한 기여 _ pct '(또는 승리/손실 규칙에 따라).
원자 적으로 'wager _ progress' 업데이트; 100% 에 도달하면 '완료' 됩니다.
5. 3 마무리 (소비)
완전한 → '지갑. (PHP 3 = 3.0.6, PHP 4)
'보너스 방출. 소비 '.
5. 4 만료/리콜
'represes _ at' 또는 사기 규칙 → 'remoke' (demotent) 에 의해 정책에 따른 보상이 가능합니다.
6) 지갑 계약 (API를 통해서만 항상 demempotent)
Accrue 보너스
POST/v1/지갑/크레딧
헤더: X-Idempotency-Key: boners _ grant _ 123
{
"player _ id": "p _ 001", "amount": {"minor _ units": 100000, "currency": "EUR"}, "balance _ Type": "bonce", "reference": {"grant _ id": "gr _ 123", "offer _ id": "_ 777"}
}
→ 200 {"상태": "크레딧", "entry _ id": "e _ 9001"}조건이 충족되면 캐시로 변환
POST/v1/지갑/변환
헤더: X-Idempotency-Key: boners _ conversion _ gr _ 123
{
"player _ id": "p _ 001", "from _ balance": "bonus", "to _ balance": "cash", "amount _ minor": 100000, "reference": {"grant _ id": "gr _ 123"}
}
→ 200 {"상태": "변환", "entry _ id": "e _ 9010"}RGS/Wallet Guard 측에서 최대 베팅/최대 승리를 확인하십시오
'베팅을 요청하십시오. 'BONUS _ MAX _ BET _ EXCEEDED' 코드에 의해 '인증' 이 거부됩니다.
7) 프로모션 서비스 API (템플릿)
오퍼 만들기 (관리자)
POST/v1/오퍼
{
"이름": "100% 최대 100 €", "유형": "deposit _ match", "params": {"match _ pct": 100, "cap _ minor": 10000, "wager _ x": 20, "sticky": 참, "max _ bet _ minor": 200, "max _ win _ minor": 기여 _ d _ c "slot100 _ live10"}, "적격성": {"브랜드": ["A"], "지역": ["EU"], "세그먼트": "New _ depositors"}, "일정": {"시작": "2025-10-20T00: 00:" 00: 00Z "," 종료 ":" 2025-11-30T23: 9Z "}"
}
→ 201 {"offer _ id": "of _ 777"}보너스 발급 (런타임)
POST/v1/보너스/보조금
헤더: X-Idempotency-Key: grant _ p001 _ of777
{
"player _ id": "p _ 001", "offer _ id": "of _ 777", "triker": "depost _ capture", "amount _ minor": 10000
}
→ 200 {"grant _ id": "gr _ 123", "상태": "active"}베팅 진행 상황 (읽기)
GET/v1/보너스/보조금/gr _ 123/진행 상황
→ 200 {"professed _ minor": 200000, "advided _ minor": 45000, "main _ minor": 155000, "pct": 0. 225}공허/취소
POST/v1/보너스/보조금/gr _ 123/취소
헤더: X-Idempotency-Key: remoke _ gr _ 123
{"이유": "사기 _ 속도"}
→ 200 {"상태": "취소"}모든 쓰기 호출은 'X-Idempotency-Key' 및 'X-Trace-ID' 입니다.
8) 남용 방지 및 준수
속도 제한: 문제/변환/예금 시도 (Redis 카운터 + TTL + Lua).
방아쇠 제거: 하나의 예금 → 규칙에 따라 하나의 보조금.
세분화 및 RG: 자체 제외/제한 제외; 브랜드/지역 라이센스 당.
제안의 충돌 차단: 한 번에 하나의 환영 보너스 만 활성화됩니다. 우선 순위.
변칙적 탐지기: 여러 계정/장치/ASN, 베이거의 빠른 "제로".
큰 보조금과 수동 조정에 대한 "네 눈".
모든 규칙/보조금/변환 변경에 대한 WORM 감사.
9) 관찰 가능성, 지표 및 SLO
SLO (랜드 마크):- '부여. 문제 p95 '(문제 → 크레딧이 적용됨)
- 'bet. 해결' 이후 'wager _ progress p95' 을 업데이트하십시오.
- 이벤트 보너스. 'p95 버스에서 무슨 일이 있었는지 2 분 후에.
- "분실/복제 보조금/변환" = 0.
- 속도/대기 시간은 '문제/변환/취소', 오류율 (비즈니스/4xx/5xx), 'IDEMPOTENCY _ MISMATCH' 입니다.
- 베이거 변환, 평균 '완료 시간', 비율이 기한이 지났습니다.
- 프로모션 비용: 코호트의 'promo _ cost' (사소한) 및 'promo _ roi'.
- 남용 방지: 최대 베팅/승리로 거부 된 속도 트리거.
추적: 체인 트리거 → 지갑의 OpenTelemetry. 신용 → 진행. 업데이트 → 변환 '.
10) RGS/게임과의 통합
무료 스핀/무료 베팅 쿠폰-' 권한 'API를 통한: 토큰 발행, 런타임 폐기, 사용 원격 측정.
최대 내기/승리-' 베팅의 규칙. 'NE' 베팅을 승인합니다. 정착 '; 반환 코드 'BONUS _ RULE _ VIOLION'.
기여-' 베팅 레벨의 체계. '(' game _ style/provider _ id '), 스키마 버전으로 정해졌습니다.
11) DWH/BI 및 보고서
전송 이벤트 → Lake (청동) → Silver (dedup, SCD2) → Gold 쇼케이스:- 'fact _ boners _ grants', 'fact _ wager _ progress', 'fact _ boners _ cost', 'fact _ promo _ roi'.
- SLA 신선도: 은의 15 분, 금의 30-60 분.
- 패널: 제안/세그먼트 별 전환, 완료 시간, 게임 별 기여, 남용 사건.
12) 안전과 거주
mTLS + OAuth2 CC; scope 'sho' 프로모션: 이슈 ',' 프로모션: 변환 ',' 프로모션: 취소 '.
키/토큰-브랜드/지역별로 수명이 짧습니다. Vault/HSM의 비밀.
PII 격리: 'player _ id' - 별칭; RLS 계정 '브랜드/지역'.
요율 제한 및 발행 할당량; 다시 폭풍으로부터 보호합니다.
13) 점검표
플랫폼/운영자
- 모든 통화 거래는 'Idempotency-Key' 로 월렛을 통과합니다.
- 규칙/자격은 다양합니다. 이주에 관한 사건의 "이중 편지".
- 기여 체계는 중앙 집중식이며 테스트로 덮여 있습니다.
- 속도 및 사기 방지가 가능합니다. 많은 양의 "네 눈".
- 전송/CDC, DLQ 및 '보너스 재생 관리. '.
- SLO 대시 보드, OpenTelemetry, WORM 감사.
- ROI 및 규정 준수를위한 DWH 매장 (RG/AML).
통합 (RGS/지갑/CRM)
- 최대 베팅/승리 확인; 비즈니스 오류 코드를 반환합니다.
- 'trace _ id' 와 'demempotency _ key' 를 던집니다.
- 데드 업 트리거 및 배송 보증 (웹 후크 서명).
14) 적색 플래그 (패턴 방지)
월렛을 우회하여 보너스를 "수동으로" 잔액에 직접 충전합니다.
dempotency의 부족 → 이중 보조금/전환.
베팅은 'bet.' 의 결과가 아니라 'bet. 정착'.
기여 체계가 없거나 공급자 코드에서 "보호" 됩니다.
충돌하는 제안이 동시에 활성화됩니다.
속도/사기 방지 및 WORM 감사는 없습니다.
'보너스. '이벤트는 Outbox/CDC를 우회하여 게시됩니다.
프로모션 메트릭은 Ledger/BI에 추가되지 않습니다 (ROI 쇼케이스 없음).
15) 결론
신뢰할 수 있는 백엔드 프로모션은 "밸런스 추가 '가 아니라 계약 및 불변량이다. "그것은 규칙을 돈과 분리하고, 실제 결과에 따른 진행을 고려하고, demmpotency 및 관찰 가능성을 보장하며, 남용으로부터 보호하며 준수를 보장합니다. 이러한 핵심으로 마케팅이 빠르게 진행되면 플레이어는 정직한 조건을보고 재무 및 규제 기관은 각 제안의 비용과 효과를 정확하게 파악할 수 있습니다.
