إدارة الترقيات والمكافآت على المستوى الخلفي
مقالة كاملة
1) لماذا تأخذ العرض الترويجي إلى نهاية خلفية منفصلة
الثوابت النقدية. المكافأة ≠ «التوازن الإضافي»: هذا عقد بشروط (فجر، مساهمة في الألعاب، الحد الأقصى للرهان/الفوز).
معدل التغيير. تطلق فرق التسويق الحملات يوميًا - فأنت بحاجة إلى محرك قواعد تفسيري والتراجع.
مكافحة الإساءة/الامتثال. KYC/RG/AML، السرعة، التجزئة، مهام العين الأربع للعروض باهظة الثمن.
إمكانية الرصد والإبلاغ. SLO، التكلفة الترويجية، التأثير على GGR/NGR/LTV.
المبدأ: النواة الترويجية هي خدمة منفصلة مع آلات الحالة الخاصة بها، ولا يتحرك المال إلا عبر المحفظة، بحماقة.
2) تصنيف المكافآت والثوابت
تطابق الودائع (100٪ قبل X): مستحق بعد الإيداع، vager X ×.
استرداد النقود: محسوب بنافذة الوقت/الألعاب، يمكن أن يكون لزجًا/غير لزج.
تدور مجانًا/رهانات مجانية: قسائم/رموز بسعر لكل دوران/رهان، مسبح RTP ثابت.
المهام/البعثات: المهمة → التقدم المحرز → المكافأة.
البطولات/أحداث الطيران: مساهمة الأحداث، التصنيف، الجوائز المالية.
الثوابت:- لزج: لا يمكن إخراجه حتى يتم استيفاء الشروط.
- Max bet/Max win: حدود الرهان/الدفع من أموال المكافآت.
- المساهمة: المساهمة حسب اللعبة (على سبيل المثال الفتحات = 100٪، العيش = 10٪).
- انتهاء الصلاحية: فترة صلاحية المكافأة ونافذة vager.
3) بنية خدمة المكافآت
الإدارة ─Promo ─Rules واجهة برمجة التطبيقات للمحرك/الأهلية
│
├─Bonus دفتر الأستاذ (حالة العروض)
محرك ├─Wagering (تقدم)
├─Anti - إساءة الاستخدام (الحدود/الغش/السرعة)
└─Outbox (الأحداث) ─Kafka/Pulsar ─BI/DWH/CRM
Wallet/Ledger── الأوامر الحمقاء ───┘Rules Engine - declarization conditions (species, geo/licence, channel, KYC/RG).
4) نموذج البيانات (مبسط)
"bonus _ grant'
'الرهان _ التقدم'- 'grant _ id, required_minor, contributed_minor, remaining_minor, last_update_at'
- 'schema _ id، القواعد: [{game _ type: "slot"، pct: 100}، {game _ type: "live"، pct: 10}] "
«bonus _ ledger _ entry» (مراجعة)
5) آلات الحالة والملاحم
5. 1 العدد - ملحمة
1. الأهلية. تحقق (الجزء، RG/KYC، السرعة)
2. منحة. إنشاء (الحالة = 'إصدار')
3. المحفظة. الائتمان [المكافأة] (الخصوصية ؛ في اللزجة - إلى رصيد فرعي إضافي)
4. نشط (الحالة = 'نشط')
5. مكافأة الانبعاث. '
التراجع: عند الوقوع في منحة الخطوة 3 →. إلغاء مكافأة '+ حدث'. تم إلغاؤها '.
5. 2 تقدم فاجر
نابيت. تمت تسوية «مساهمة العد =» حصة _ contribution_pct' ثانوية (أو وفقًا لقواعد الربح/الخسارة).
تحديث 'الرهان _ التقدم' ذريا ؛ عندما يتم الوصول إلى 100٪ - «كامل».
5. 3 إنهاء (استهلاك)
محفظة → كاملة. convert_bonus_to_cash' (إذا كانت غير لزجة) أو إزالة قيود الإنتاج.
مكافأة الانبعاث. استهلكت '.
5. 4 انتهاء الصلاحية/الاستدعاء
من خلال "expires _ at' أو قاعدة الاحتيال →" إلغاء "(idempotent)، يمكن التعويض وفقًا للسياسة.
6) عقود المحفظة (فقط عبر واجهة برمجة التطبيقات، دائمًا ما تكون خفية)
مكافأة الاستحقاق
POST/v1/wallet/credit
الرؤوس: X-Idempotency-Key: bonus_grant_123
{
«player_id":"p_001,» «المبلغ»: {«minor _ units': 100000،» العملة «:» EUR «}،» balance_type":"bonus, «مرجع»: {«grant _ id»: «gr _ 123»، «offer _ id»: «of _ 777»}
}
→ 200 {"status':" credited "," entry _ id ":" e _ 9001 "}تحول إلى مخبأ عند استيفاء الشروط
POST/v1/wallet/confert
الرؤوس: 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 {«حالة «: «حولت «،» مدخل _ معرف»:» e _ 9010»}- طلب الرهانات. الإذن "مرفوض بالرمز" BONUS _ MAX _ BET _ EXCEDED ".
7) واجهة برمجة التطبيقات للخدمة الترويجية (قوالب)
إنشاء عرض (إدارة)
POST/v1/العروض
{
«الاسم»: «مرحبًا بكم بنسبة 100٪ حتى 100€»، «النوع»: «الإيداع _ المباراة»، «البارامز»: {«المباراة _ pct': 100،» cap _ minor «: 10000،» الرهان _ x «: 20،» اللزج «:» صحيح «،» max_bet_minor":200,"max_win_minor":50000,"contribution_schema_id":"c_slot100_live10"} «،» الأهلية «: {» العلامات التجارية «: [» A «]،» المناطق «:» [«الاتحاد الأوروبي»]، «الجزء»: «المودعون الجدد»}، «الجدول الزمني»: {«البداية»: «2025-10-20T00: 00: 00Z»، «النهاية»: «2025-11-30T23: 59: 59Z»}
}
→ 201 {«عرض _ معرف «:» من _ 777»}إصدار مكافأة (وقت التشغيل)
POST/v1/العلاوة/المنح
الرؤوس: 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»}تقدم الرهان (اقرأ)
احصل على/ v1/bonus/grants/gr_123/progress
→ 200 {"مطلوب _ طفيف": 200000، "ساهم _ طفيف": 45000، "باقي _ طفيف": 155000، "pct': 0. 225}الفراغ/الإلغاء
البريد/ v1/bonus/grants/gr_123/revoke
الرؤوس: X-Idempotency-Key: revoke_gr_123
{«السبب «: «الغش _ السرعة»}
→ 200 {«الحالة «:» أُلغيت»}جميع مكالمات الكتابة باستخدام "X-Idempotency-Key" و "X-Trace-Id'.
8) مكافحة الإساءة والامتثال
حدود السرعة: المشكلات/التحويلات/محاولات الإيداع (Redis counters + TTL + Lua).
تسريح الزناد: وديعة واحدة → منحة واحدة بموجب القاعدة.
التجزئة والنمو الحقيقي: استبعاد الاستبعاد الذاتي/الحد ؛ لكل ترخيص علامة تجارية/منطقة.
كتلة تضارب العروض: يتم تشغيل مكافأة ترحيب واحدة فقط في كل مرة ؛ الأولويات.
كاشف الشذوذ: حسابات/أجهزة/ASN متعددة، «تصفير» سريع للمهرج.
«أربع عيون» على المنح الكبيرة والتعديلات اليدوية.
مراجعة WORM لجميع التغييرات في القواعد/المنح/التحويل.
9) إمكانية الرصد والمقاييس و SLO
SLO (معالم):- 'grant. (issue→credited) ≤ 300-500 мс.
- تحديث 'wager _ progress' p95 ≤ 200 ms منذ' bet. settled '.
- مكافأة الأحداث. في الحافلة رقم 95 ≤ على بعد 2 دقائق مما حدث.
- «المنح/التحويلات المفقودة/المكررة» = 0.
- معدل/زمن الانتقال по 'قضية/تحويل/إلغاء'، معدل الخطأ (العمل/4xx/5xx)، 'IDEMPOTENCY _ MISMATCH'.
- تحويل Vager، متوسط «وقت الإكمال»، النسبة المتأخرة.
- التكلفة الترويجية: "promo _ cost' (ثانوي) و" promo _ roi "على المجموعات.
- مكافحة الإساءة: محفزات السرعة مرفوضة بأقصى قدر من الرهان/الفوز.
التتبع: OpenTelemetry على سلسلة 'trigger → grant → wallet. الائتمان → التقدم. التحديث → التحويل '.
10) التكامل مع RGS/الألعاب
قسائم Free Spins/Free Bets - عبر واجهة برمجة التطبيقات "entitlements': إصدار الرموز، والتخلص من وقت التشغيل، والقياس عن بعد بالاستخدام.
ماكس الرهان/الفوز - القواعد في الرهانات. رهانات «и» ' رموز الإرجاع «BONUS _ RULE _ HEALCH».
المساهمة - مخطط على مستوى الرهان. settled '(by' game _ type/provider _ id '), schema version.
11) DWH/BI والتقارير
أحداث Outbox → بحيرة (برونزية) → فضية (dedup، SCD2) → تعرض ذهبية:- "fact _ bonus _ grants'،" fact _ wager _ progress'، "fact _ bonus _ cost'،" fact _ promo _ roi ".
- نضارة SLA: فضية ≤ 15 دقيقة، ذهبية ≤ 30-60 دقيقة.
- اللوحات: التحويل حسب العروض/القطاعات، وقت الإكمال، مساهمة الألعاب، حوادث الإساءة.
12) السلامة والإقامة
MTLS + OAuth2 CC; scope'ы 'promo: issue', 'promo: convert', 'promo: recoke'.
المفاتيح/الرموز - لكل ماركة/منطقة، قصيرة الأجل ؛ أسرار في Vault/HSM.
عزل PII: «player _ id» - الاسم المستعار ؛ RLS по «العلامة التجارية/المنطقة».
حدود الأسعار وحصص الإصدار ؛ الحماية من العواصف المعاودة.
13) القوائم المرجعية
المنصة/المشغل
- تمر جميع المعاملات النقدية عبر Wallet باستخدام «Idempotency-Key».
- تحرر القواعد/الأهلية ؛ «حرف مزدوج» من أحداث الهجرات.
- مخططات الاشتراكات مركزية، مشمولة بالاختبارات.
- تمكين السرعة ومكافحة الغش ؛ «أربع عيون» على مبالغ كبيرة.
- Outbox/CDC و DLQ والإعادة المدارة لـ "المكافأة. '.
- لوحات معلومات SLO، OpenTelemetry، تدقيق WORM.
- واجهات متاجر DWH لعائد الاستثمار والامتثال (RG/AML).
عمليات التكامل (RGS/wallet/CRM)
- التحقق من الحد الأقصى للرهان/الفوز ؛ إعادة رمز خطأ العمل.
- أرمي «trace _ id» و «idempotency _ key».
- مشغلات الوفيات وضمانات التسليم (تم التوقيع على خطوط الويب).
14) الأعلام الحمراء (الأنماط المضادة)
شحن المكافأة «يدويًا» مباشرة في الميزان، متجاوزًا المحفظة.
الافتقار إلى الخصوصية → المنح/التحويلات المزدوجة.
يعتبر الرهان من قبل «bet. placed»، وليس وفقًا لنتائج «bet. settled».
لا توجد مخططات مساهمة أو أنها «محمية» في مدونة مقدمي الخدمة.
يتم تفعيل العروض المتضاربة في وقت واحد.
لا يوجد تدقيق للسرعة/مكافحة الاحتيال و WORM.
«بونس». يتم نشر events تجاوز outbox/CDC.
لا تضيف المقاييس الترويجية ما يصل إلى Ledger/BI (لا توجد عروض عائد استثمار).
15) خلاصة القول
العروض الترويجية الخلفية الموثوقة هي عقود وثابتة، وليس "إضافة التوازن. "إنه يفصل القواعد عن المال، وينظر في التقدم وفقًا للنتائج الفعلية، ويضمن الخصوصية والمراقبة، ويحمي من إساءة الاستخدام ويضمن الامتثال. مع مثل هذه التحركات الأساسية والتسويقية بسرعة، يرى اللاعب شروطًا صادقة، ويحصل الشؤون المالية والمنظمون على صورة دقيقة لتكلفة وتأثير كل عرض.
