Պրոմո և բոնուսների կառավարումը backend մակարդակում
Հոդվածի ամբողջական տեքստը
1) Ինչո՞ ւ պոմպել առանձին backend
Դրամական ինվարանտներ։ Բոնուսը «սիրահարվեց հավասարակշռությանը», սա պայմաններով պայմանագիր է (waiger, խաղի ներդրումը, առավելագույն տոկոսադրույքը/հաղթանակը)։
Փոփոխության արագությունը։ Մարքեթինգի թիմերը ամեն օր քարոզարշավ են արտադրում, անհրաժեշտ է կանոնների և արձագանքման ագրեսիվ շարժիչ։
Anti-abuz/complaens. KYC/RG/AML, velocity, սեգմենտացիա, «չորս աչքերի» կտորները թանկ օֆերի վրա։- Դիտարկումը և հաշվետվությունը։ SLO, գովազդային արժեքը, ազդեցությունը GGR/NGR/LTV վրա։
Սկզբունքը 'պրոմո-միջուկը' առանձին ծառայություն սեփական ստատիկ մեքենաների հետ, իսկ փողը շարժվում է միայն դրամապանակի միջոցով, կուռքով։
2) Բոնուսների և ինվարանտների տիոպոգիա
Deposit match (100% մինչև X): հաշվարկվում է դեպոզիտի capture, waiger X-ից հետո։
Cashback (կորցրած-back), հաշվարկվում է ժամանակի պատուհանի/խաղերի վրա, կարող է լինել sticky/non-sticky։
Free Spins/Free Bets: կտրոններ/հոսանքներ 'հետևի/տոկոսադրույքով, որը տեղադրված է RTP փամփուշտի վրա։
Քեսթեր/առաքելություններ 'առաջադրանքը նպաստեց ռուսական մրցանակի առաջընթացին։- Aleksra/reis-ivents 'իրադարձությունների ներդրումը, վարկանիշը, մրցանակները։
Ինվարանտներ
Sticky: Դուք չեք կարող հասնել պայմաններին։
Max bet/Max win: Max win: Max win-ը բոնուսային միջոցներից։
Medribution: Խաղերի ներդրումը (օրինակ, slots = 100%, 112 = 10%)։
Expiry 'բոնուսի և վեյջերի պատուհանի տևողությունը։
3) Ռուսական բոնուսների ճարտարապետությունը
Admin (քարոզարշավը/կանոնները) www.Promo API www.Rules Engine/Eligibility
│
240 Bonus Ledger (օֆերի վիճակը)
2019 Wagering Engine (առաջընթաց)
240 Anti-Abuse (limits/frod/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 Alta (issue) - սագա
1. eligibility. 4k (սեգմենտը, RG/KYC, velocity)
2. grant. create (status=`issued`)
3. wallet. credit [bonus) (idempotento; sticky - բոնուսային հավասարակշռության մեջ)
4. activate (status=`active`)
5. emit `bonus. issued`
Rollback: Երբ ընկնում եք 3 հազար ռուբլիա 'gram։ cancel '+ իրադարձություն "bonus. revoked`.
5. 2 Weiger առաջընթաց
"bet. settled 'համարել ներդրումը = «stake _ minor direbution _ pct» (կամ win/loss կանոններով)։- Թարմացնել 'wager _ progress' ատոմային; 100% հասնելիս '«complete»։
5. 3 Ավարտը (consume)
complete → `wallet. convice _ bonus _ to _ cash "(եթե non-sticky) կամ եզրակացության սահմանափակումների վերացում։
emit `bonus. consumed`.
5. 4 Ստուգում/ակնարկ
"Expires _ at" կամ ֆրոդի օրենքը 'revoke "(idempotent), հնարավոր է փոխհատուցել քաղաքականության համաձայն։
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 _ EEDED "կոդով։
7) API promo (ստանդարտ)
Ստեղծել օֆեր (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"}Վեյջերի առաջընթացը (read)
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) Anti-abuze-ը և complaens-ը
Velocity limits: 108/հակադարձում/դեպոզիտի փորձեր (Redis counters + TTL + Lua)։
Դեդուպը ձգան է ՝ մեկ դեպոզիտ ՝ մեկ գռեհիկ։- Սեգմենտացիան և RG 'բացառել www.f-www.luded/limite; per brand/region լիցենզիա։
- Օֆերի հակամարտության բլոկը 'միևնույն ժամանակ ակտիվացված է միայն մեկ welcope բոնուս; գերակայություններ։
- Աննոմալիայի դետեկտորը 'բազմաթիվ հաշիվներ/սարքեր/ASN, արագ «զրոյացում» վեյջեր։
- «Չորս աչքերը» մեծ դրամաշնորհների և ձեռքերի վրա։
- WORM-ը կանոնների/դրամաշնորհների/փոխարկումների բոլոր փոփոխություններին։
9) Դիտարկումը, չափումները և SLO-ն
SLO (կենտրոններ)
`grant. issue p95` (issue→credited) ≤ 300–500 мс.
Թարմացում 'wager _ progress p95' 24200 ms 'bet պահից։ settled`.
Իրադարձություններ «bonus.» պարանոցում p95-2 րոպե կատարվածից։
«Կորցրած/կրկնօրինակված դրամաշնորհներ/փոխարկումներ» = 0։
Մետրիկները
Rate/latency по `issue/convert/revoke`, error-rate (business/4xx/5xx), `IDEMPOTENCY_MISMATCH`.
Վեյջերի կոնվերսիան, միջին «time-to-complete», ժամկետանց մասնաբաժինը։- Գովազդային արժեքը '«promo _ cost» (minor) և «promo _ roi» կոորդինատների վրա։
- Anti-abuz 'velocity գործիքներ, մերժված max bet/win։
Թրեյսինգը 'OpenTelemetry-ը շղթայի վրա' «triggger 36grance wallet»։ credit → progress. update → convert`.
10) RGS/խաղերի ինտեգրումը
Free Spins/Free Bets-ի կուպոնները '«entitlements» API-ի միջոցով' հոսանքների թողարկումը, ռենտեյմում դուրս գրելը, օգտագործման հեռաչափը։
Max bet/win - կանոնները 'bets-ում։ authorize` и `bets. settle`; վերադարձնել «BONUS _ RULE _ VIOLATION»։
Corribution-ը «bet» մակարդակում սխեմա է։ settled '(ըստ «game _ type/provider _ id»), սխեմաների տարբերակը։
11) MSH/BI և հաշվետվություններ
Windobox իրադարձությունները www.Lake (bw.ze) ww.Silver (dedup, SCD2) www.Gold Witrinds
`fact_bonus_grants`, `fact_wager_progress`, `fact_bonus_cost`, `fact_promo_roi`.
SLA թարմություն ՝ Silver 3515 րոպե, Gold 3530-60 ռուբլիներ
Վահանակներ 'փոխադարձություն օֆֆերների/հատվածների, Time-to-complete-ի, խաղերի, աբյուզ-միջադեպերի վրա։
12) Անվտանգություն և բնակավայր
mTLS + OAuth2 CC; scope’ы `promo:issue`, `promo:convert`, `promo:revoke`.
Բանալիներ/հոսանքներ - per brand/region, հակիրճ։ գաղտնիքները Vox/HSM-ում։
PII մեկուսացում '«player _ id» - կեղծանուն; RLS по `brand/region`.
Rate limits-ը և քվոտաները։ պաշտպանություն փոթորիկներից։
13) Չեկ թերթերը
Պլատֆորմ/օպերատոր
- Բոլոր դրամական վիրահատությունները գնում են Wallet-ի միջոցով 'Idempoty-Key-ի հետ։
- Rules/Eligibility տարբերակները։ «կրկնակի նամակ» իրադարձություններում։
- Corribution-սխեմաները կենտրոնացված են, ծածկված են թեստերով։
- Velocity և anti-frode ներառված են; «չորս աչքերը» մեծ գումարների վրա։
- Dimebox/CDC, DLQ և ղեկավարվող replay համար 'bonus։ "
- SLO-dashbords, OpenTelemetry, WORM-աուդիտ։
- Ստուգում եմ max bet/win; վերադարձնում եմ բիզնեսի սխալների կոդը։
- Ես գնում եմ «trace _ id» և «idempotency _ key»։
- Դեդուպը և առաքման երաշխիքները (webhooks ստորագրվել են)։
[WPH-վիտրինները ROI-ի և կոմպլենսի համար (RG/AML)։
Մոսկվա (RGS/դրամապանակ/CRM)
---
14) Կարմիր դրոշները (հակատիպեր)
Բոնուսի հավաքումը «ձեռքով» ուղղակիորեն հավասարակշռության մեջ է 'անցնելով Wallet-ը։
Idempotenty-ի բացակայությունը կրկնակի դրամաշնորհներ/հակադարձում է։
Վեյջերը համարվում է "bet. placed ', ոչ թե «bet»։ settled`.
Չկա wwww.ribution-սխեմաներ, կամ դրանք «shite» են պրովայդերների կոդում։
Կոնֆլիկտները միաժամանակ ակտիվանում են։
Ոչ velocity/anti-froda և WORM-2019։
«Bonus.» իրադարձությունները հրապարակվում են www.box/CDC-ի շրջանցման մեջ։
Գովազդային ցուցանիշները չեն համընկնում Ledger/BI-ի հետ (ոչ վիտրին ROI)։
---
15) Արդյունքը
Հուսալի backend promo-ը պայմանագրեր և ինվարանտներ են, ոչ թե «ավելացնել հավասարակշռությունը»։ Այն առանձնացնում է փողի կանոնները, կարծում է իրական արդյունքի առաջընթացը, երաշխավորում է գաղափարախոսությունը և դիտարկումը, պաշտպանում է աբյուզից և ապահովում է հաճոյախոսություն։ Այս միջուկով մարքեթինգը արագորեն շարժվում է, խաղացողը տեսնում է ազնիվ պայմաններ, իսկ ֆինանսները և կարգավորիչները ստանում են յուրաքանչյուր օֆերի արժեքի և ազդեցության ճշգրիտ պատկեր։