Arka uç seviyesinde promosyonları ve bonusları yönetme
Tam makale
1) Neden promosyonu ayrı bir arka uca götürün
Parasal değişmezler. Bonus ≠ "ek bakiye": Bu, koşulları olan bir sözleşmedir (vager, oyunlara katkı, maksimum bahis/kazanç).
Değişim oranı. Pazarlama ekipleri kampanyaları günlük olarak yayınlar - bildirimsel bir kural motoruna ve geri almaya ihtiyacınız vardır.
Kötüye kullanım karşıtı/uyumluluk. KYC/RG/AML, hız, segmentasyon, pahalı teklifler için dört göz görevleri.
Gözlemlenebilirlik ve raporlama. SLO, promosyon maliyeti, GGR/NGR/LTV üzerindeki etkisi.
İlke: Promo çekirdeği, kendi statü makinelerine sahip ayrı bir hizmettir ve para sadece cüzdandan, idempotently olarak hareket eder.
2) Bonus tipoloji ve değişmezler
Depozito eşleşmesi (X'den önce %100): yakalama depozitosundan sonra tahakkuk eder, vager X ×.
Cashback: zaman penceresi/oyunlar tarafından hesaplanan, yapışkan/yapışkan olmayan olabilir.
Free Spins/Free Bets: Spin/bahis başına fiyatı olan kuponlar/jetonlar, sabit RTP havuzu.
Görevler/görevler: görev - ilerleme - ödül.
Turnuvalar/uçuş etkinlikleri: etkinliklerin katkısı, derecelendirme, para ödülü.
Değişmezler:- Yapışkan: koşullar sağlanana kadar çıkamaz.
- Max bet/Max win: Bonus fonlarından bahis/ödeme limitleri.
- Katkı: oyun yoluyla katkı (örn. yuvalar = %100, canlı = %10).
- Bitiş: Bonus geçerlilik süresi ve vager penceresi.
3) Bonus hizmet mimarisi
Yönetici ─Promo ─Rules Motoru API/Uygunluk
│
├─Bonus Defteri (tekliflerin durumu)
├─Wagering Motoru (ilerleme)
├─Anti - Kullanım (limitler/sahtekarlık/hız)
└─Outbox (olaylar) ─Kafka/Pulsar ─BI/DWH/CRM
Wallet/Ledger── Idempotent Komutları ───┘Kural Motoru - beyan koşulları (segmentler, coğrafi/lisans, kanallar, KYC/RG).
4) Veri modeli (basitleştirilmiş)
'bonus _ grant'
'wager _ progress'- 'grant _ id, , , , ,
- ' schema _ id, kurallar: [{game _ type:" slot", pct: 100}, {game _ type:" live", pct: 10}]'
'bonus _ ledger _ entry' (denetim)
5) Durum makineleri ve destanlar
5. 1 Sayı - Saga
1. Uygunluk. Kontrol (segment, RG/KYC, hız)
2. Grant. (create = 'issued')
3. Cüzdan. kredi [bonus] (idempotent; yapışkan - bonus alt dengesinde)
4. activate (status ='aktif ')
5. 'Bonus yayar. Konu '
Rollback: adım 3 'grant düşerken. İptal '+ etkinlik' bonusu. İptal edildi '.
5. 2 Vager ilerleme
Na 'bet. Yerleşmiş 'sayım katkısı =' stake _ minor contribution_pct' (veya kazan/kaybet kurallarına göre).
'Bahis _ ilerleme'yi atomik olarak güncelleyin; %100'e ulaşıldığında - 'tamamlandı'.
5. 3 Bitiş (tüketmek)
complete "cüzdanı. convert_bonus_to_cash' (yapışkan değilse) veya çıktı kısıtlamalarını kaldırın.
'Bonus yayar. tükendi '.
5. 4 Son kullanma/geri çağırma
'Expires _ at' veya dolandırıcılık kuralı ile 'iptal' (idempotent), politikaya göre tazminat mümkündür.
6) Cüzdan sözleşmeleri (sadece API üzerinden, her zaman idempotent)
Bonus tahakkuk et
POST/v1/cüzdan/kredi
Başlıklar: X-Idempotency-Key: bonus_grant_123
{
"player_id":"p_001," "miktar ": {"minor _ units ": 100000," para birimi":" EUR"}, "balance_type":"bonus," "referans ": {"grant _ id ": "gr _ 123"," offer _ id":" of _ 777"}
}
^ 200 {"durum": "kredili", "giriş _ kimliği":'e _ 9001 "}Koşullar yerine getirildiğinde önbelleğe dönüştürme
POST/v1/wallet/convert
Başlıklar: X-Idempotency-Key: bonus_convert_gr_123
{
"player_id":"p_001," from_balance":"bonus, "to_balance":"cash," amount_minor":100000 ", referans": {"grant _ id": "gr _ 123"}
}
^ 200 {"durum": "dönüştürülmüş", "entry _ id":'e _ 9010 "}- Bahis isteyin. Yetkilendirme 'kodu' BONUS _ MAX _ BET _ EXCEITED 'koduyla reddedilir.
7) promo hizmetinin API'si (şablonlar)
Teklif oluştur (admin)
POST/v1/teklifler
{
"Name": "100 €'ya kadar %100 hoş geldiniz", "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"}Bonus yayınlama (çalışma zamanı)
POST/v1/bonus/hibeler
Başlıklar: 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":'aktif "}Bahis ilerleme (okuma)
GET/ v1/bonus/grants/gr_123/progress
^ 200 {"required _ minor ": 200000, "contributed _ minor": 45000," remaining _ minor": 155000," pct": 0. 225}Void/iptal et
POST/ v1/bonus/grants/gr_123/revoke
Başlıklar: X-Idempotency-Key: revoke_gr_123
{"sebep ": "dolandırıcılık _ hız"}
^ 200 {"durum ":" iptal edildi"}Tüm yazma çağrıları 'X-Idempotency-Key've' X-Trace-Id'ile yapılır.
8) Kötüye kullanım ve uyumluluk
Hız sınırları: sorunlar/dönüşümler/mevduat girişimleri (Redis sayaçları + TTL + Lua).
Tetik dedup: bir depozito - kural gereği bir hibe.
Segmentasyon ve RG: dışlanan/sınırlanan hariç tutulur; Marka/bölge lisansı başına.
Teklif çatışması bloğu: Bir seferde yalnızca bir hoşgeldin bonusu aktiftir; Öncelikler.
Anomali dedektörü: birden fazla hesap/cihaz/ASN, vagerin hızlı "sıfırlanması".
Büyük bağışlar ve manuel ayarlamalar için "dört göz".
Tüm kural/hibe/dönüşüm değişikliklerinin WORM denetimi.
9) Gözlemlenebilirlik, metrikler ve SLO
SLO (yer işaretleri):- 'grant. Sayı p95 '(sorun - kredilendirildi) ≤ 300-500 мс.
- Güncelleme 'bahis _ ilerleme p95' 'bet. yerleşti' beri 200ms ≤.
- Etkinliklerin ikramiyesi. P95 otobüsünde ≤ olanlardan 2 dakika sonra.
- "Kayıp/çoğaltılmış hibeler/dönüşümler" = 0.
- Rate/latency по 'issue/convert/revoke', error-rate (business/4xx/5xx), 'IDEMPOTENCY _ MISMATCH'.
- Vager dönüşümü, ortalama tamamlanma süresi, gecikme oranı.
- Promosyon maliyeti: Kohortlarda 'promo _ cost' (küçük) ve 'promo _ roi'.
- Anti-kötüye kullanım: maksimum bahis/kazanç tarafından reddedilen hız tetikleyicileri.
İzleme: Zincir üzerinde OpenTelemetry 'trigger> grant> cüzdan. Credit - ilerleme. değiştir'i güncelle.
10) RGS/oyunlarla entegrasyon
Free Spins/Free Bets kuponları - 'ayrıcalıklar' API'si aracılığıyla: belirteçler yayınlama, çalışma zamanında hurdaya çıkarma, kullanıma göre telemetri.
Max bet/win - bahislerde kurallar. 'и' bahislerine izin ver. yerleşmek '; İade kodları 'BONUS _ RULE _ VIOLATION'.
Katkı - 'bahis seviyesinde şema. Yerleşmiş '(' game _ type/provider _ id '), şema sürümü.
11) DWH/BI ve raporlar
Outbox etkinlikleri - Göl (bronz) - Gümüş (dedup, SCD2) - Altın vitrinler:- 'fact _ bonus _ grants', 'fact _ wager _ progress', 'fact _ bonus _ cost', 'fact _ promo _ roi'.
- SLA tazeliği: Gümüş ≤ 15 dk, Altın ≤ 30-60 dk.
- Paneller: tekliflere/segmentlere göre dönüşüm, tamamlama süresi, oyunların katkısı, istismar olayları.
12) Güvenlik ve ikamet
mTLS + OAuth2 CC; scope'ы 'promo: issue', 'promo: convert', 'promo: revoke'.
Anahtarlar/belirteçler - marka/bölge başına, kısa ömürlü; Vault/HSM'deki sırlar.
PII yalıtımı: 'player _ id' - alias; RLS по 'marka/bölge'.
Oran limitleri ve ihraç kotaları; Geri çekilme fırtınalarına karşı koruma.
13) Kontrol listeleri
Platform/Operatör
- Tüm parasal işlemler 'Idempotency-Key'ile Cüzdan geçer.
- Kurallar/Uygunluk sürümlüdür; Göçlerle ilgili olayların "çift harfi".
- Katkı planları merkezileştirilir, testlerle kaplıdır.
- Hız ve anti-dolandırıcılık etkin; Büyük meblağlarda "dört göz".
- Outbox/CDC, DLQ ve 'bonus' için yönetilen tekrar. '.
- SLO gösterge panoları, OpenTelemetry, WORM denetimi.
- ROI ve uyumluluk için DWH vitrinleri (RG/AML).
Entegrasyonlar (RGS/cüzdan/CRM)
- Maksimum bahis/kazanın kontrol edilmesi; İşletme hata kodu döndürülüyor.
- 'trace _ id've' idempotency _ key 'atıyorum.
- Deadup tetikleyicileri ve teslimat garantileri (webhooks imzalı).
14) Kırmızı bayraklar (anti-desenler)
Bonusu "manuel'olarak doğrudan bakiyeye şarj etmek, Cüzdan'ı atlamak.
Idempotency eksikliği - çift hibe/dönüşüm.
Bahis, 'bet. setted' sonuçlarına göre değil, 'bet. placed'ile değerlendirilir.
Katkı programları yoktur veya sağlayıcılar kodunda "korunurlar".
Çelişkili teklifler aynı anda etkinleştirilir.
Hız/dolandırıcılıkla mücadele ve WORM denetimi yoktur.
'Bonus. 'events outbox/CDC atlayarak gönderilir.
Promo metrikleri Ledger/BI'ye eklenmez (ROI vitrini yoktur).
15) Alt satır
Güvenilir arka uç tanıtımları sözleşmeler ve değişmezlerdir, "denge eklemek'değil. Kuralları paradan ayırır, ilerlemeyi gerçek sonuçlara göre değerlendirir, idempotensi ve gözlemlenebilirliği garanti eder, kötüye kullanıma karşı korur ve uyumu sağlar. Böyle bir çekirdekle, pazarlama hızlı bir şekilde hareket eder, oyuncu dürüst koşulları görür ve finans ve düzenleyiciler her teklifin maliyeti ve etkisi hakkında doğru bir resim elde eder.
