Автоматикунонии чорабиниҳо ва мукофотҳо - қоидаҳо ва вебҳукҳо
Gamification ба ду "муҳаррик" асос ёфтааст: рӯйдодҳо (корбар чӣ кор кард) ва қоидаҳо (он чизе, ки барои он пешбинӣ шудааст). Барои он ки дар миқёси калон ва бидуни хатогӣ кор кунед, ба шумо автобуси боэътимоди ҳодиса, муҳаррики қоидаҳо, механизми таҳвил/мукофот ва муҳофизати қатъӣ аз қаллобӣ лозим аст. Дар зер меъмории амалӣ, қолабҳо ва рӯйхатҳои назоратӣ оварда шудаанд.
1) Чорабинӣ → қоида → меъмории ҷараёни мукофот
1. Inest (вуруди ҳодиса): SDK/веб, вебхукҳои сервер аз провайдери пардохт/бозӣ → API Gateway → навбат/автобус (Kafka/Rabbit/Cloud Pub/Sub).
2. Normalizer: санҷиш, ғанисозӣ (гео, дастгоҳ, payer_flag), версияи схема).
3. Муҳаррики қоидаҳо: баҳодиҳӣ/XP, санҷиши миссияҳо/супоришҳо, триггерҳои мукофот/огоҳӣ.
4. Оркестри мукофотӣ: ҳисоб кардани мукофотҳо, санҷиши буҷа, дарвозаҳои RG/KYC, эҷоди "вазифаи барориш", сабти ном.
5. Хидмати пардохт/бонус: кэш/кэш бонус/freespins/купонҳо, вебҳукҳои беруна (ҳамён, провайдерҳо).
6. Notifier: push/in-app/email/паёмнависони фаврӣ бо маҳдудияти басомад.
7. Нигоҳдорӣ/Таҳлил: рӯйдодҳои хом, дӯконҳо, A/B, огоҳиҳо.
8. Анти қаллобӣ/RG: муҳофизони даҳон, эвристика/ML, мукофотҳои калон барои нигоҳ доштан ва баррасӣ.
2) Модели ҳодиса (маҷмӯи ҳадди аққал)
json
{
"event_id": "d9e8-... -5c2", "event_name": "бет", "версия": "1. 2. 0", "ts": "2025-10-24T11:37:21Z," "корбар": {
"id": "u_123," "geo": "TR", "платформа": "андроид", "payer_flag": дуруст ", risk_flags": ["vp _ night"]
}, "контекст": {
"session_id":" s_789, "" device_fp": "fp_...," ip ":" 203. 0. 113. 24"
}, "сарборӣ": {
"game_id":" slot_wolf, "Бет": 0. 5, "бурд": 1. 25, "асъор": "EUR", "провайдер": "Game
}
}
Базовые типы: 'воридшавӣ', 'session _ start/end', 'bet/spin', 'win', 'deposit _ request', 'kyc _ status _ change', 'mission _ view/join/progress/full', 'turment _ joint/update', 'мукофот _ дода шудааст'.
3) Муҳаррики қоида: чӣ гуна мантиқро тавсиф кардан мумкин аст
Мафҳумҳо: қоидаҳо (агар/пас), сегментҳо, тирезаҳои вақт, даҳонҳо, афзалиятҳо, версия.
Намунаи қоидаҳои декларативӣ (услуби YAML):yaml rule_id: r_points_winmult_v2 кай:
event_name: филтрҳои Бет:
- сарборӣ. бет> = 0. 2
- корбар. geo дар ["TR ", "BR"," PE"]
- ҳоло байни "2025-11-01" ва "2025-11-30"
хол:
формула: "ошёна ((сарборӣ). ғолиб/сарборӣ. бет) 3) "
caps:
per_bet: 50 per_minute: 200 per_day: 1500 reward_trigger:
on_progress:
ҳадди: [100, 300, 800]
мукофот: [{намуди: "fs", арзиш: 10}, {навъи: "bonus_cash," арзиш: 2}, {навъи: "лотерея", камёфт: "нодир"}]
посбонҳо:
kyc_min_level: 2 rg_limits_ok: budget_pool ҳақиқӣ: "nov_season"
budget_soft_cap: 80000 мета:
версия: "2. 0"
озмоиш: "scoring_ab_2025w45"
4) Webhooks: ҳамгироии сервер-сервер
4. 1. Веб-китобҳои берунӣ (аз шумо то провайдерҳо/ҳамён)
Усул: 'POST https ://шарик. намуна/payouts '
Подпись: 'X-Имзо: HMAC-SHA256 (махфӣ, бадан)' + 'X-Дархост-Ид' (idempotency).
Retrai: бозгашти экспоненсиалӣ, 'max _ retris = 8', jitter, DLQ.
Idempotency: ҳамон 'X-Request-Id' -ро такрор кунед → шарик бояд бо ҳамон 'payout _ id/status' ҷавоб диҳад.
Намунаи сарборӣ:json
{
"request_id": "rid_7f5...," "user_id": "u_123," "подош": {"намуди ": "нақд"," маблағ": 10. 00, "асъор": "EUR"}, "сабаб": "milestone_300_points," kyc_level": 2, "маҳдудиятҳо": {"wagering": 0 ", expiry_at":" 2025-12-01T00: 00: 00Z "}
}
4. 2. Webhooks воридотӣ (ба шумо)
Танҳо рӯйхатҳои IP/MTLS-ро иҷозат диҳед, HMAC ва мӯҳлати имзоро тафтиш кунед ('X-Timestamp', ± 5 дақиқа).
Дар Дӯкони Аудит (WORM) ҷасади "хом" + сарлавҳаҳоро нигоҳ доред.
Ҳар гуна дубора/такрорӣ → калиди idempotency-ро дар муқобили журнал тафтиш кунед.
5) Эътимоднокӣ: ҷараёни "ҳатто" бидуни пардохтҳои дукарата
Ҳадди аққал як бор ба коркарди + idempotent § стандарти тиллоӣ.
Калиди Idempotency: 'hash (event_id + user_id + rule_id)' барои баҳодиҳӣ; калиди алоҳида барои додани мукофот 'мукофот _ вазифа _ ид'.
Маҳз як маротиба семантика танҳо аз ҷиҳати мантиқӣ воқеӣ аст (тавассути idempotence), на нақлиёт.
Тартиби чорабиниҳо: 'event _ ts' ва 'infest _ ts'; тирезаи фармоиширо истифода баред (масалан, 60 сония) ва такрорӣ аз навбат бо калиди 'user _ id'.
Навбати мактуби мурда (DLQ):- Мо он ҷо бо хатои доимӣ паёмҳо менависем (схемаи муваққатӣ нагузашт, имзо беэътибор аст, буҷа баста мешавад).
- Хидмати баррасии DLQ бо тугмаҳои коркарди/тарки/ислоҳ кардани схема.
6) Ҳифзи буҷа ва маржа
Ҳавзҳои буҷавӣ: 'nov _ season', 'daily _ sprint', 'vip _ weekend'.
Квотаҳо: ҳадди ақалли мулоим/сахт, "рахи барқ" - ҳангоми расидан ба 90% буҷа, барои нигоҳ доштани давлат тӯҳфаҳои калон месупоранд.
Арзиши ягона: 'Арзиши мукофот ва мукофот барои як фаъол/пардохт', Net Uplift.
Афзалиятҳо: RG ва риояи он назар ба промо муҳимтар аст - дар сурати муноқиша, мукофот ба таъхир гузошта мешавад.
Намунаи санҷиши буҷет (эскизи SQL):sql
SELECT pool_id, SUM (маблағи) сарфшуда, буҷети AS лимит, SUM (маблағ )/буҷет ҳангоми пур кардан
АЗ reward_ledger
ДАР куҷо pool_id =: ҳавз ва сана (ts) = current_date
ГУРӮҲ АЗ РӮИ pool_id, буҷа;
7) Дарвозаҳои RG/KYC/Geo (бехатарӣ ва риояи бозингарон)
KYC: ҳадди аққали L2 барои кэш/тӯҳфаҳои калон; freespins бо L1 эътибор доранд.
RG: санҷиши маҳдудиятҳои амонатӣ, худидоракунӣ, мукофотҳои сард ва то лағви маҳдудиятҳо ях карда мешаванд.
Geo: рӯйхати кишварҳои иҷозатдодашуда барои ҳар як қоида/ҳавзи ҷоиза.
Огоҳии ҳадди аксар: афзоиши якбора дар ҳисобҳои инфиродӣ = сабаби нигоҳ доштан ва баррасӣ кардан.
8) Қоидаҳои зидди қаллобӣ ва телеметрия
Ҳадди ақалли нуқтаҳо бо суръат/дақиқа/соат/рӯз, фарқияти ҳадди ақали гаравҳо, манъи намунаҳои "идеалӣ".
Сигналҳои техникӣ: бе сар, device_fp такрорӣ, зершабақаҳои прокси.
Аномалияҳо: "нуқтаҳо/гаравҳо" ва "нуқтаҳо/дақиқа" - "думҳо" -и дароз дар 99-фоизӣ.
Нигоҳдорӣ ва баррасии ғолибони беҳтарин: санҷиши автоматии KYC + баррасии дастӣ.
9) Мониторинг, ченакҳо ва огоҳиҳо
SLO/SLA:- Inest p95 ≤ 250 ms; коркарди қоидаҳо p95 ≤ 150 ms; навсозии ҳайати роҳбарикунанда ≤ 2 с; барориши мукофот ≤ 60 с.
- Буҷаи хато <0. 1% рӯйдодҳо/рӯз.
- SRM оид ба таҷрибаҳо (трафик), афзоиши DLQ, коҳиши имзои тасдиқи HMAC, барзиёдии буҷа, афзоиши такрории такрорӣ.
- Ҳодисаҳо/с, ақибмонӣ, таҳаммулпазирии гуноҳ;
- Funnel: ҳодиса → қоида → reward_task → reward_issued;
- Арзиш: Мукофот/Бонус барои як фаъол, Net Uplift;
- Сифат: парчамҳои қаллобӣ, блокҳои KYC, триггерҳои RG.
10) Версия ва муҳоҷират
Ҳар як қоида санҷида мешавад ('қоидаҳо. версия ').
Шумо қоидаҳои фаъолро бе нусхаи нав таҳрир карда наметавонед; ficheflag ва "гармидиҳии ҳамвор" -ро истифода баред (10% → 50% → 100%).
Диаграммаи рӯйдодҳо тавассути феҳристи схема; тағиротҳои номувофиқ - танҳо версияи асосӣ.
11) Санҷишҳои автоматикунонии A/B (кӯтоҳ)
Воҳиди - истифодакунанда; таъини часпанда; стратификатсия (пардохткунанда/гео/платформа).
Лавҳаҳои алоҳида ё ба эътидол овардани нуқтаҳо барои рафъи мудохила.
Ибтидоӣ: participation_net, анҷом, Net ARPPU; Гвардияҳо: шикоятҳо/1к, парчамҳои қаллобӣ, триггерҳои RG.
CUPED ва ковариатҳо барои кам кардани ихтилоф.
12) Намунаҳо: аз қоида то нашр
12. 1. Триггери пешрафти Micro-мукофот
json
{
"намуди": "reward_task. офаридашуда, "" reward_task_id": "rt_456," "user_id":" u_123, "" пайдоиш ": {" rule _ id ":" r _ points _ winmult _ v2 "," остона ": 300}," подош ": {" намуд ":" bonus_cash, "" маблағ ": 2," асъор ":" EUR "," wagering ": 15}," pool_id": "nov_season," "" мақоми ":" интизорӣ "," created_at": "2025-10-24T11:38:30Z"
}
12. 2. Webhook баромад барои ҳамён
POST/ҳамён/қарз
X-Дархост-Шиноса: rid_7f5...
X-Timestamp: 1730061700
Имзои X: sha256 = 7b9a...
{"user_id":"u_123," "маблағ": 2. 00, "асъор":" EUR", "сабаб ": "қоида: r _ points _ winmult _ v2"}
Муваффақият → 'мукофот _ вазифа' = 'муваффақ' ва навиштан ба 'мукофот _ ledger'.
Нокомӣ (5xx/timeout) → бозпас бо ҳамон 'X-Request-Id'.
Dip (4xx) → DLQ + таҳлили дастӣ.
13) Таҳхонаҳо ва мизҳо (эскиз)
sql
- маҷаллаи мукофотҳо
ОФАРИДАНИ reward_ledger (
id BIGSERIAL PRIMARIAL KEY, reward_task_id TEXT UNIQUER, user_id TEXT, pool_id TEXT TEXT (18,2), - матн, матн, намуди матн, арзиши NUMERERIC (18,2), TEXXT T, - муваффақ шуд /ноком/баргузор шуд created_at TIMESTAMPTZ, updated_at TIMESTAMPTZ
);
- бетарафӣ
ИНДЕКСИ НОДИРРО uniq_reward_task ДАР reward_ledger (reward_task_id);
- буҷа
ОФАРИДАНИ reward_budget (
pool_id Калиди ибтидоии матн, рақами буҷавӣ (18,2), NUMERIC (18,2), давраи сарфшуда
);
14) Амният ва махфият
Имзои HMAC, MTLS, рӯйхати IP иҷозат дода мешавад.
Рамзгузорӣ дар транзит/истироҳат, гардиши калидҳо, асрори таҳхона.
Кам кардани маълумот дар сарборӣ (PII алоҳида, тавассути пайванди токен, TTL).
Гузоришҳои аудиторӣ тағйирнопазиранд (WORM).
Сиёсати нигоҳдорӣ ва ихтиёрдорӣ (ҳуқуқ ба фаромӯш кардан, аз байн бурдани бехатарӣ).
15) Рӯйхати назоратӣ оғоз кунед
- Нақшаи чорабиниҳо ва сабти ном, шартномаҳои webhook (имзоҳо, TTL).
- Навбатҳо, ретрейҳо, DLQ, коркардкунандагони idempotent.
- Сарпӯшҳо/посбонҳо дар қоидаҳо, дарвозаҳои KYC/RG.
- Ҳавзҳои буҷавӣ, пайвасткунакҳо, огоҳиҳои аз ҳад зиёд.
- панелҳои SLO + юбка мукофот.
- Филтрҳои A/B ва мониторинги SRM.
- Дафтарчаи рӯйдодҳо (такрорӣ, ях кардан, масъалаи дастӣ).
16) Парвандаи хурд (синтетикӣ)
Рӯйдодҳои пайвастшуда аз провайдерҳои бозӣ ва ҳамён; голҳои "win/bet" -ро бо посбонони даҳон дохил карданд.
Webhooks HMAC-ро имзо кард, то 8 кӯшиши худро идома медиҳад, DLQ бо баррасии ҳар 2 соат.
Дар тӯли 4 ҳафта: коркарди ақиб p95 180 мс; DLQ <0,06%; пардохтҳои такрорӣ 0; парчамҳои қаллобӣ − 0. 4 саҳ; ΔParticipation_net + 6,3 c. п.; Δ ARPPU (холис) + €2,1 прри Мукофот ва Бонус/Фаъол + €0,7.
Хулоса: қоидаҳои миқёсан васеъ кардани гео нав бо ҳавзҳои буҷети маҳаллӣ.
Автоматикунонии мукофотҳо "тела бо freespins нест. "Ин як системаи муҳандисӣ аст: таҳвили боэътимоди рӯйдодҳо, ҳукми қатъии қоидаҳо, аблаҳӣ ва имзоҳо, шахсони хусусии буҷа, дарвозаҳои KYC/RG, зидди қаллобӣ ва мониторинг. Ин чаҳорчӯбро як рӯз созед - ва ҳама гуна миссияҳо, мусобиқаҳо ва "лаҳзаҳои ғорат" пешгӯишаванда, саривақт ва бо таъсири мусбати соф кор хоҳанд кард.