Სარეკლამო და ბონუსების მართვა
სტატიის სრული ტექსტი
1) რატომ უნდა მიიტანოთ პრომო ცალკეულ პაკეტში
ფულადი ინვარიანტები. ბონუსი „დაბალანსებულია“: ეს არის კონტრაქტი პირობებით (ვეგერი, თამაშებში შეტანილი წვლილი, მაქსიმალური განაკვეთი/მოგება).
ცვლილებების სიჩქარე. მარკეტინგის გუნდები ყოველდღიურად აწარმოებენ კამპანიებს - თქვენ გჭირდებათ წესების დეკლარაციული ძრავა და დაბრუნება.
ანტი აბიუსი/შესაბამისობა. KYC/RG/AML, velocity, სეგმენტი, „ოთხი თვალის“ ტილოები ძვირადღირებული ოფერებისთვის.
დაკვირვება და მოხსენება. SLO, პრომო ღირებულება, გავლენა GGR/NGR/LTV- ზე.
პრინციპი: სარეკლამო ბირთვი არის ცალკეული სერვისი საკუთარი სტატუსის აპარატებით, ხოლო ფული მოძრაობს მხოლოდ საფულის მეშვეობით, იდემპოტურად.
2) პრემიებისა და ინვარიანტების ტიპოლოგია
Deposit match (100% მდე X): დარიცხულია დეპოზიტის capture შემდეგ, vager X ×.
Cashback (წაგება): გამოითვლება დროის/თამაშების ფანჯრის მიხედვით, შეიძლება იყოს sticky/non-sticky.
Free Spins/Free Bets: კუპონები/ნიშნები spin/განაკვეთის ფასით, ფიქსირებული RTP აუზით.
სტუმარი/მისიები: ამოცანა - პროგრესი - ჯილდო.
ტურნირები/ფრენის დამნაშავეები: მოვლენების წვლილი, რეიტინგი, პრიზი.
ინვარიანტები:- Sticky: თქვენ ვერ მიიღებთ პირობების შესრულებამდე.
- Max bet/Max win: ბონუს სახსრების განაკვეთის/გადახდის შეზღუდვები.
- კონტრიბუცია: წვლილი თამაშებში (მაგალითად, slots = 100%, live = 10%).
- Expiry: ბონუსის ვადა და ვაგონების ფანჯარა.
3) პრემია მომსახურების არქიტექტურა
ადმინი (კამპანია/წესები) - Promo API - Rules Engine/Eligibility
│
Bonus Ledger (ოფისის მდგომარეობა)
Wagering Engine (პროგრესი)
Anti-Abuse (შეზღუდვები/frode/velocity)
└─Outbox (events) ─Kafka/Pulsar ─BI/DWH/CRM
Wallet/Ledger── Idempotent Commands ───┘Rules Engine - დეკლარაციული პირობები (სეგმენტები, გეო/ლიცენზია, არხები, KYC/RG).
4) მონაცემთა მოდელი (გამარტივებული)
`bonus_grant`
`wager_progress`- `grant_id, required_minor, contributed_minor, remaining_minor, last_update_at`
- `schema_id, rules: [{game_type:"slot", pct:100},{game_type:"live", pct:10}]`
'bonus _ ledger _ entry' (აუდიტი)
5) სტატუსის მანქანები და საგნები
5. 1 გამოცემა - საგა
1. eligibility. ჩეკი (სეგმენტი, RG/KYC, velocity)
2. grant. create (status=`issued`)
3. wallet. credit [bonus] (იდემპოტენტურად; სტიკისთვის - ბონუს ქვე ბალანსში)
4. activate (status=`active`)
5. emit `bonus. issued`
Rollback: როდესაც 3 ნაბიჯით დაეცემა 'გრანტი. cancel '+ ღონისძიება' bonus. revoked`.
5. 2 ვაჯერის წინსვლა
'bet. settled 'განიხილოს წვლილი =' stake _ minor contribution _ pct '(ან win/loss წესების მიხედვით).
განაახლეთ 'wager _ progress' ატომური; როდესაც მიაღწია 100% - 'complete'.
5. 3 დასრულება
complete → `wallet. convert _ bonus _ to _ cash '(თუ non-sticky) ან ამოღების შეზღუდვების მოხსნა.
emit `bonus. consumed`.
5. 4 გადინება/მიმოხილვა
'expires _ at' ან frode 'revoke' (immpotent) წესის თანახმად, პოლიტიკის შესაბამისად კომპენსაცია შესაძლებელია.
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"}- მოთხოვნა 'bets. authorize 'გადახრა კოდით' BONUS _ MAX _ BET _ EXCEEDED ".
7) API პრომო სერვისი (სტანდარტები)
ოფისის შექმნა (ადმინ)
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"}ბონუსის გაცემა
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"}ვაგერის პროგრესი
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"}ყველა write ზარი - s 'X-Idempotency-Key' და 'X-Trace-Id ".
8) ანტი აბიუზი და შესაბამისობა
Velocity limites: გამოყოფა/კონვერტაცია/დეპოზიტის მცდელობები (Redis counters + TTL + Lua).
ტრიგერების დედაპლატი: ერთი ანაბარი - ერთი გრანტი წესით.
სეგმენტი და RG: გამორიცხეთ self-excluded/limites; per brand/region ლიცენზია.
ოფშორული კონფლიქტის ბლოკი: ერთდროულად მხოლოდ ერთი welcome პრემია აქტიურია; პრიორიტეტები.
ანომალიების დეტექტორი: მრავალჯერადი ანგარიში/მოწყობილობა/ASN, სწრაფი ვეგერის „ნულოვანი“.
„ოთხი თვალი“ დიდ გრანტებზე და სახელმძღვანელო კორექტირებაზე.
WORM აუდიტი წესების/გრანტის/კონვერტაციის ყველა ცვლილების შესახებ.
9) დაკვირვება, მეტრიკა და SLO
SLO (სახელმძღვანელო):- `grant. issue p95` (issue→credited) ≤ 300–500 мс.
- განახლება 'wager _ progress p95' 200 ms 'bet მომენტიდან. settled`.
- მოვლენები 'bonus.' ავტობუსში p95-2 წუთი ინციდენტიდან.
- „დაკარგული/დუბლირებული გრანტები/კონვერტაცია“ = 0.
- Rate/latency по `issue/convert/revoke`, error-rate (business/4xx/5xx), `IDEMPOTENCY_MISMATCH`.
- Vager- ის კონვერტაცია, საშუალო „დრო-თამაში“, ვადაგადაცილებული წილი.
- სარეკლამო ღირებულება: 'promo _ cost' (minor) და 'promo _ roi' კოჰორტებზე.
- Anti abuse: velocity მოქმედება, უარყოფილი max bet/win.
ტრეისი: OpenTelemetry 'trigger ჯაჭვში - გრანტი - wallet. credit → progress. update → convert`.
10) ინტეგრაცია RGS/თამაშებთან
უფასო Spins/Free Bets კუპონები - 'entitlements' API- ის საშუალებით: ნიშნების გაცემა, ranthime- ში ჩამოწერა, ტელემეტრიული გამოყენება.
Max bet/win - წესები 'bets. authorize` и `bets. settle`; დაუბრუნეთ კოდი 'BONUS _ RULE _ VIOLATION'.
Contribution არის 'bet სქემა. settled '(on' game _ type/provider _ id '), სქემების ვერსია.
11) DWH/BI და მოხსენებები
Outbox მოვლენები - bronze (bronze), Silver (dedup, 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`.
გასაღებები/ნიშნები - per brand/region, ხანმოკლე; საიდუმლოებები Vault/HSM- ში.
PII იზოლაცია: 'player _ id' - ფსევდონიმი; RLS по `brand/region`.
Rate limits და გაცემის კვოტები; დაცვა ქარიშხლებისგან.
13) ჩეკის ფურცლები
პლატფორმა/ოპერატორი
- ყველა ფულადი ოპერაცია გადის Wallet 'Idempotency-Key' - ით.
- Rules/Eligibility ვერსია; მიგრაციის მოვლენების „ორმაგი წერილი“.
- Contribution სქემები ცენტრალიზებულია, დაფარულია ტესტებით.
- Velocity და inti frode შედის; „ოთხი თვალი“ დიდი თანხებით.
- Outbox/CDC, DLQ და კონტროლირებადი replay 'bonus.'.
- SLO დაშბორდები, OpenTelemetry, WORM აუდიტი.
- DWH ფანჯრები ROI და Complaence (RG/AML).
ინტეგრაცია (RGS/საფულე/CRM)
- ვამოწმებ მაქს ბეთ/win; დავუბრუნდები ბიზნეს შეცდომის კოდს.
- ვხარჯავ 'trace _ id' და 'idempotency _ key'.
- ტრიგერების დედაპლატი და მიწოდების გარანტიები (გაფორმებულია webhooks).
14) წითელი დროშები (ანტი-ნიმუშები)
პრემიის დარიცხვა „ხელით“ პირდაპირ ბალანსში, Wallet- ის გვერდის ავლით.
იდემპოტენტურობის არარსებობა - ორმაგი გრანტები/კონვერტაცია.
Wager ითვლება 'bet. placed 'და არა' bet '. settled`.
არ არსებობს კონტრიბუტორული სქემები ან ისინი „შეკერილია“ პროვაიდერების კოდში.
კონფლიქტური ოფერები ერთდროულად გააქტიურებულია.
არ არსებობს velocity/ანტი-ფროდი და WORM აუდიტი.
მოვლენები „bonus.“ ქვეყნდება გარედან/CDC გვერდის ავლით.
პრომო ინდიკატორები არ ეთანხმება Ledger/BI- ს (არა ROI ფანჯარა).
15) შედეგი
საიმედო სარეკლამო პაკეტი არის კონტრაქტები და ინვარიანტები და არა „ბალანსის დამატება“. ის წესებს ფულისგან გამოყოფს, მიიჩნევს პროგრესს ფაქტობრივ შედეგებზე, უზრუნველყოფს impotence და დაკვირვებას, იცავს აბუზისგან და უზრუნველყოფს შესაბამისობას. ასეთი ბირთვით, მარკეტინგი სწრაფად მოძრაობს, მოთამაშე ხედავს გულწრფელ პირობებს, ხოლო ფინანსები და რეგულატორები იღებენ თითოეული ოფისის ღირებულებისა და ეფექტის ზუსტ სურათს.
