WinUpGo
Axtarış
CASWINO
SKYSLOTS
BRAMA
TETHERPAY
777 FREE SPINS + 300%
Kriptovalyuta Casino Kriptovalyutalar Torrent Gear - universal torrent axtarış! Torrent Gear

Hadisələr və mükafatların avtomatlaşdırılması: qaydalar və webhucks

Oyunlaşdırma iki «mühərrikə» əsaslanır: hadisələr (istifadəçi nə etdi) və qaydalar (bunun üçün nə nəzərdə tutulur). Bunun böyük miqyasda və səhvsiz işləməsi üçün etibarlı bir hadisə şinası, qaydalar mühərriki, mükafatların çatdırılması/verilməsi mexanizmi və ciddi froddan qorunma lazımdır. Aşağıda - praktiki memarlıq, şablonlar və yoxlama vərəqləri.


1) Axın arxitekturası «hadisə → qayda → mükafat»

1. Ingest (hadisələrin girişi): SDK/web, ödəniş/oyun provayderindən server vebhukları → API Gateway → növbə/şina (Kafka/Rabbit/Cloud Pub/Sub).

2. Normalizer: validasiya, zənginləşdirmə (geo, device, payer_flag), sxem versiyası.

3. Rules Engine: puanları/HR, missiyaları/kvestləri yoxlamaq, mükafat/bildiriş tetikleyiciləri.

4. Reward Orchestrator: mükafatın hesablanması, büdcə-çek, RG/KYC-geytalar, «ekstradisiya tapşırığının» yaradılması, jurnala qeyd.

5. Payout/Bonus Xidməti: Cache/Bonus Cache/Frispins/Kuponlar, Xarici Webhucks (cüzdan, provayderlər).

6. Notifier: tezlik limitləri ilə push/in-app/email/messencer.

7. Storage/Analytics: xam hadisələr, vitrinlər, A/B, risklər.

8. Anti-Fraud/RG: caps, evristics/ML, hold-and-review böyük mükafatlar.


2) Hadisə modeli (minimum dəst)

json
{
"event_id": "d9e8-...-5c2",  "event_name": "bet",  "version": "1. 2. 0",  "ts": "2025-10-24T11:37:21Z",  "user": {
"id": "u_123",   "geo": "TR",   "platform": "android",   "payer_flag": true,   "risk_flags": ["vp_nightly"]
},  "context": {
"session_id": "s_789",   "device_fp": "fp_...",   "ip": "203. 0. 113. 24"
},  "payload": {
"game_id": "slot_wolf",   "bet": 0. 5,   "win": 1. 25,   "currency": "EUR",   "provider": "GameCo"
}
}

Базовые типы: `login`, `session_start/end`, `bet/spin`, `win`, `deposit`, `withdraw_request`, `kyc_status_changed`, `mission_view/join/progress/complete`, `tournament_join/score/update/reward`, `reward_issued`, `rg_event`.


3) Qaydaların mühərriki: məntiqi necə təsvir etmək olar

Konsepsiyalar: qaydalar (if/then), seqmentlər, vaxt pəncərələri, kaplar, prioritetlər, versiyalaşdırma.

Deklarativ qaydanın nümunəsi (YAML-stil):
yaml rule_id: r_points_winmult_v2 when:
event_name: bet filters:
- payload. bet >= 0. 2
- user. geo in ["TR","BR","PE"]
- now between "2025-11-01" and "2025-11-30"
score:
formula: "floor((payload. win / payload. bet) 3)"
caps:
per_bet: 50 per_minute: 200 per_day: 1500 reward_trigger:
on_progress:
threshold: [100, 300, 800]
reward: [{type: "fs", value: 10}, {type: "bonus_cash", value: 2}, {type: "loot", rarity: "rare"}]
guardrails:
kyc_min_level: 2 rg_limits_ok: true budget_pool: "nov_season"
budget_soft_cap: 80000 meta:
version: "2. 0"
experiment: "scoring_ab_2025w45"

4) Vebhuki: server-server inteqrasiya

4. 1. Çıxış vebhukları (sizdən provayderlərə/cüzdana)

Metod: 'POST https ://partner. example/payouts`

Подпись: `X-Signature: HMAC-SHA256(secret, body)` + `X-Request-Id` (idempotency).

Retrailər: eksponensial backoff, 'max _ retries = 8', jitter, DLQ.

Idempotency: təkrar eyni 'X-Request-Id' → tərəfdaş eyni 'payout _ id/status' cavab verməlidir.

Nümunə payload:
json
{
"request_id": "rid_7f5...",  "user_id": "u_123",  "reward": {"type":"cash","amount":10. 00,"currency":"EUR"},  "reason": "milestone_300_points",  "kyc_level": 2,  "constraints": {"wagering": 0, "expiry_at": "2025-12-01T00:00:00Z"}
}

4. 2. Daxil olan vebhuklar (sizə)

Yalnız IP/MTLS siyahılarına icazə verin, HMAC və imza ömrünü yoxlayın ('X-Timestamp', ± 5 dəqiqə).

Audit anbarında (WORM) «xam» body + başlıqları saxlayın.

Hər hansı bir dubl/təkrarlama → jurnala qarşı idempotency key yoxlayın.


5) Etibarlılıq: ikiqat ödənişsiz «düz» axın

At-least-once haqqında ingest + idempotent prosessorlar → qızıl standart.

Idempotency key: 'hash (event_id + user_id + rule_id)' xalların hesablanması üçün; mükafatın verilməsi üçün ayrıca açar 'reward _ task _ id'.

Exactly-once semantika yalnız nəqliyyatla deyil, məntiqlə (idempotentlik vasitəsilə) realdır.

Hadisə qaydası: 'event _ ts' və 'ingest _ ts' saxlayın; reordering window (məsələn, 60 san) və 'user _ id' açarı ilə növbədən replay tətbiq edin.

Dead Letter Queue (DLQ):
  • Oraya daimi səhvi olan mesajlar yazırıq (vaxt sxemi keçməyib, imza etibarsızdır, büdcə bağlanıb).
  • reprocess/drop/fix sxema düymələri ilə «DLQ review» xidməti.

6) Büdcələr və marjanın qorunması

Büdcə hovuzları: 'nov _ season', 'daily _ sprint', 'vip _ weekend'.

Kvotalar: soft/hard cap, «circuit breaker» - büdcənin 90% -nə çatdıqda böyük mükafatları hold-state-ə köçürmək.

Vahid dəyəri: 'Prize & Bonus Cost per Active/Payor', Net Uplift.

Prioritetlər: RG və komplayens promodan daha vacibdir - münaqişə zamanı mükafat təxirə salınır.

Büdcə yoxlama nümunəsi (SQL-eskiz):
sql
SELECT pool_id,    SUM(amount) AS spent,    budget AS limit,    SUM(amount)/budget AS fill
FROM reward_ledger
WHERE pool_id =:pool AND date(ts) = current_date
GROUP BY pool_id, budget;

7) RG/KYC/Geo-geytlar (oyunçu təhlükəsizliyi və uyğunluğu)

KYC: cache/böyük mükafatlar üçün minimum L2; frispins L1 ilə icazə verilir.

RG: depozit limitlərinin yoxlanılması, özünü istisna etmə, «cool-off» → mükafatlar məhdudiyyətlər aradan qaldırılana qədər «dondurulur».

Geo: Hər bir mükafat qaydası/hovuzu üçün icazə verilən ölkələrin siyahısı.

Hədd riskləri: fərdi hesablarda kəskin artım «demək olar ki, çatdı» = hold & review-də səbəb.


8) Antifrod qaydaları və telemetriya

Qapaqlar/dəq/saat/gün dərəcəsi, minimum nisbət dispersiyası, «ideal» nümunələri qadağan.

Texniki siqnallar: headless, təkrarlanan device_fp, proxy alt şəbəkələri.

Anomaliyalar: «eynək/bahis» və «eynək/dəq» - 99-persentil uzun «quyruqlar».

Top mükafatçılar üçün Hold-and-review: avtomatik KYC çeki + əl baxışı.


9) Monitorinq, metrika və alertlər

SLO/SLA:
  • Ingest p95 ≤ 250 ms; r95 ≤ 150 ms qayda emalı; Liderbordun yenilənməsi ≤ 2 s; mükafatın verilməsi ≤ 60 s
  • Error budget < 0. 1% hadisə/gün.
Alertlər:
  • Təcrübələrdə SRM (trafik çarpazlığı), DLQ artımı, HMAC-validasiya imzasının düşməsi, büdcə artımı, idempotent dublların artması.
Daşbord (gündəlik):
  • Hadisələr/s, gecikmə, uğursuzluq;
  • Huni: hadisə → qayda → reward_task → reward_issued;
  • Qiymət: Prize/Bonus per Active, Net Uplift;
  • Keyfiyyət: Frod bayraqları, KYC blokları, RG istismarı.

10) Version və miqrasiya

Hər bir qayda versioned ('rules. version`).

Yeni versiya olmadan aktiv qaydanı redaktə edə bilməzsiniz; ficheflag və «hamar istiləşmə» istifadə edin (10% → 50% → 100%).

schema registry vasitəsilə hadisələr sxemi; uyğun olmayan dəyişikliklər - yalnız major versiyası.


11) A/B-avtomatlaşdırma testləri (qısa)

Vahid - istifadəçi; sticky-assignment; stratifikasiya (payer/geo/platform).

Ayrı lider bordları və ya müdaxiləni istisna etmək üçün xalların normallaşdırılması.

Primary: participation_net, completion, Net ARPPU; Guardrails: şikayətlər/1k, frod bayraqları, RG işıqlandırma.

Dispersiyanı azaltmaq üçün CUPED və kovariatlar.


12) Nümunələr: qaydadan ekstradisiyaya qədər

12. 1. Tərəqqi üçün mikro mükafat

json
{
"type": "reward_task. created",  "reward_task_id": "rt_456",  "user_id": "u_123",  "origin": {"rule_id":"r_points_winmult_v2","threshold":300},  "reward": {"type": "bonus_cash", "amount": 2, "currency":"EUR", "wagering": 15},  "pool_id": "nov_season",  "status": "pending",  "created_at": "2025-10-24T11:38:30Z"
}

12. 2. Cüzdana gedən vebhuk


POST /wallet/credit
X-Request-Id: rid_7f5...
X-Timestamp: 1730061700
X-Signature: sha256=7b9a...

{ "user_id":"u_123", "amount":2. 00, "currency":"EUR", "reason":"rule:r_points_winmult_v2" }

Uğur → 'reward _ task' = 'succeeded' və 'reward _ ledger' yazılır.

Eyni 'X-Request-Id' ilə retraj → uğursuzluq (5xx/zaman).

Uğursuzluq (4xx) → DLQ + əl təhlili.


13) Anbarlar və cədvəllər (eskiz)

sql
-- mükafat jurnalı
CREATE TABLE reward_ledger (
id BIGSERIAL PRIMARY KEY,  reward_task_id TEXT UNIQUE,  user_id TEXT,  pool_id TEXT,  type TEXT,  value NUMERIC(18,2),  currency TEXT,  cost NUMERIC(18,2) DEFAULT 0, -- реальная стоимость для P&L status TEXT, -- succeeded/failed/held created_at TIMESTAMPTZ,  updated_at TIMESTAMPTZ
);

-- indempotentlik
CREATE UNIQUE INDEX uniq_reward_task ON reward_ledger (reward_task_id);

-- büdcə
CREATE TABLE reward_budget (
pool_id TEXT PRIMARY KEY,  budget NUMERIC(18,2),  spent NUMERIC(18,2),  period DATE
);

14) Təhlükəsizlik və məxfilik

HMAC imzaları, MTLS, allow-list IP.

Tranzit/sülh şifrələmə, açarların rotasiyası, vault-da sirlər.

Payload məlumatların minimuma endirilməsi (PII ayrıca, link-token, TTL).

Audit-loqlar dəyişməz (WORM).

Saxlama və silmə siyasəti (unudulmaq hüququ, deduplication-safe).


15) Başlanğıc çek siyahısı

  • Hadisə sxemləri və registry, vebhuk müqavilələri (siqnallar, TTL).
  • Növbələr, retralar, DLQ, idempotent prosessorları.
  • Cap/Guard qaydaları, KYC/RG-geyt.
  • Büdcə hovuzları, circuit-breakers, həddindən artıq.
  • Dashboard SLO + huni reward.
  • A/B-fitness və SRM-monitorinq.
  • Runbook insidentlər (yenidən oynamaq, dondurma, manual ekstradisiya).

16) Mini case (sintetik)

Oyun provayderləri və cüzdan hadisələri qoşuldu; caps ilə «win/bet» skoring daxildir.

Webhucks HMAC, 8 cəhd qədər retras, DLQ hər 2 saat review ilə imzalanır.

4 həftə ərzində: p95 180 ms emal gecikməsi; DLQ < 0,06%; ödənişlər 0; frod bayraqları − 0,4 p.p.; ΔParticipation_net +6,3 п.п.; ΔARPPU (net) +€2,1 при Prize&Bonus/Active +€0,7.

Nəticə: yerli büdcə hovuzları ilə yeni geolar üçün qaydaları ölçmək.


Mükafatların avtomatlaşdırılması «frispinlərlə push göndərmək» deyil. Bu mühəndislik sistemi: etibarlı hadisə çatdırılması, qaydaların ciddi versiyalaşdırılması, idempotency və imzalar, büdcə kaperaları, KYC/RG geytaları, antifrod və monitorinq. Bu çərçivəni bir dəfə qurun - və hər hansı bir missiya, turnir və «lut-anlar» proqnozlaşdırıla bilən, vaxtında və müsbət netto effekti ilə işləyəcək.

× Oyunlarda axtarış
Axtarışı başlatmaq üçün ən azı 3 simvol daxil edin.