مدیریت تبلیغات و پاداش در سطح باطن
مقاله کامل
1) چرا تبلیغی را به یک backend جداگانه
ناورداهای پولی پاداش ≠ «تعادل اضافه شده»: این یک قرارداد با شرایط (vager، سهم به بازی، حداکثر شرط/پیروزی) است.
نرخ تغییر. تیم های بازاریابی روزانه کمپین ها را منتشر می کنند - شما نیاز به یک موتور قوانین اعلانی و بازپرداخت دارید.
ضد سوء استفاده/انطباق. KYC/RG/AML، سرعت، تقسیم بندی، وظایف چهار چشم برای پیشنهادات گران قیمت.
قابلیت مشاهده و گزارش دهی SLO، هزینه تبلیغاتی، تاثیر بر GGR/NGR/LTV.
اصل: هسته تبلیغی یک سرویس جداگانه با دستگاه های وضعیت خاص خود است و پول تنها از طریق کیف پول حرکت می کند.
2) نوع شناسی پاداش و ناوردا
بازی سپرده (100٪ قبل از X): پس از ضبط سپرده، vager X × تعلق می گیرد.
Cashback: محاسبه شده توسط پنجره زمان/بازی ها، می تواند چسبنده/غیر چسبنده باشد.
چرخش آزاد/شرط رایگان: کوپن/نشانه با قیمت در هر چرخش/شرط, استخر RTP ثابت.
Quests/Missions: وظیفه، پیشرفت، پاداش
مسابقات/رویدادهای پرواز: سهم رویدادها، رتبه بندی، پول جایزه.
تغییرناپذیر ها:- چسبنده: تا زمانی که شرایط برآورده نشود، نمی تواند خروجی باشد.
- حداکثر شرط/حداکثر پیروزی: محدودیت در شرط/پرداخت از وجوه پاداش.
- مشارکت: مشارکت در بازی (به عنوان مثال slots = 100٪، زنده = 10٪).
- انقضای: مدت اعتبار پاداش و پنجره vager.
3) معماری خدمات پاداش
مدیر ─Promo ─Rules موتور API/واجد شرایط بودن
│
├─Bonus لجر (وضعیت پیشنهادات)
موتور ├─Wagering (پیشرفت)
├─Anti -Abuse (محدودیت/تقلب/سرعت)
└─Outbox (رویدادها) ─Kafka/Pulsar ─BI/DWH/CRM
Wallet/Ledger── فرمانهای آرمانی ───┘قوانین موتور - شرایط اعلامی (بخش ها، جغرافیایی/مجوز، کانال ها، KYC/RG).
4) مدل داده (ساده شده)
«مادربزرگ»
'شرط بندی _ پیشرفت'- شناسه بزرگ، ، ،
- ' schema _ id, rules: [{game _ type:» slot», pct: 100}, {game _ type:» live», pct: 10}]'
'bonus _ ledger _ entry' (حسابرسی)
5) ماشین آلات وضعیت و ساگا
5. شماره 1 - حماسه
1. واجد شرایط بودن. بررسی کنید (بخش، RG/KYC، سرعت)
2. اعطا شود. create (وضعیت = 'صادر شده')
3. کیف پول اعتبار [پاداش] (idempotent ؛ در چسبنده - به پاداش زیر تعادل)
4. فعال کردن (وضعیت = «فعال»)
5. پاداش را منتشر کنید. صادر شده '
برگشت: هنگامی که سقوط در مرحله 3 → 'grant. لغو پاداش «+ رویداد». لغو شد.
5. 2 پیشرفت وگر
به هيچ وجه. حل و فصل 'تعداد سهم =' سهام _ جزئی contribution_pct' (و یا با توجه به برنده/از دست دادن قوانین).
به روز رسانی 'شرط _ پیشرفت' اتمی ؛ هنگامی که 100٪ رسیده است - «کامل».
5. 3 پایان (مصرف)
کیف پول کامل → convert_bonus_to_cash' (اگر غیر چسبنده) و یا حذف محدودیت های خروجی.
پاداش را منتشر کنید. مصرف کرد.
5. 4 انقضا/فراخوان
توسط 'expires _ at' یا قانون تقلب → 'لغو' (idemotent)، جبران خسارت با توجه به سیاست امکان پذیر است.
6) قراردادهای کیف پول (فقط از طریق API، همیشه idempotent)
پاداش جمع آوری
پست/v1/کیف پول/اعتبار
هدر: X-idempotency-کلید: bonus_grant_123
{
"player_id":"p_001," "مقدار": {"جزئی _ واحد": 100000، "ارز": "EUR"} "، balance_type":"bonus," مرجع ": {" grant _ id ":" gr _ 123 "،" پیشنهاد _ id ":" از _ 777 "}
}
→ 200 {«وضعیت «: «اعتبار «،» ورود _ id»:» e _ 9001»}تبدیل به حافظه پنهان زمانی که شرایط ملاقات
پست/v1/کیف پول/تبدیل
هدر: X-idempotency-کلید: bonus_convert_gr_123
{
« » « » « »، «مرجع»: {«grant _ id»: «gr _ 123»}
}
→ 200 {«وضعیت «: «تبدیل «,» entry _ id»:» e _ 9010»}- درخواست شرط بندی authorize 'توسط کد' BONUS _ MAX _ BET _ EXCESSED 'رد می شود.
7) API خدمات تبلیغاتی (قالب)
ایجاد یک پیشنهاد (مدیر)
پست/v1/پیشنهادات
{
«نام»: «100٪ تا 100 € خوش آمدید»، «نوع»: «سپرده _ مطابقت»، «پارامز»: {«match _ pct»: 100، «cap _ minor»: 10000، «wager _ x»: 20، «چسبنده»: درست، «max_bet_minor":200,"max_win_minor":50000,"contribution_schema_id":"c_slot100_live10"}»، «واجد شرایط بودن»: {«برندها»: [A «]،» مناطق «: [» EU «]»، بخش «:» new _ depositors «},» schedule «: {» start «:» 2025-10-20T00: 00: 00Z «,» end «: 2025-11-30T23: 59: 59Z»}
}
→ 201 {«پیشنهاد _ id «:» از _ 777»}صدور پاداش (زمان اجرا)
پست/v1/پاداش/کمک های مالی
هدر: X-idempotency-کلید: grant_p001_of777
{
"player_id":"p_001,""offer_id":"of_777,""trigger":"deposit_captured,""amount_minor":10000
}
→ 200 {«grant _ id «: «gr _ 123»,» وضعیت»:» فعال»}پیشرفت شرط بندی (بخوانید)
دریافت/ v1/bonus/grants/gr_123/progress
→ 200 {«required _ minor «: 200000, «contributed _ minor»: 45000,» remaining _ minor»: 155000,» pct»: 0. 225}باطل/لغو
پست/ v1/bonus/grants/gr_123/revoke
هدر: X-idempotency-کلید: revoke_gr_123
{«دلیل «: «تقلب _ سرعت»}
→ 200 {«وضعیت «:» لغو»}تمام تماسهای نوشتاری با «X-Idempotency-Key» و «X-Trace-Id» هستند.
8) ضد سوء استفاده و انطباق
محدودیت سرعت: مسائل/تبدیل/تلاش سپرده (شمارنده Redis + TTL + Lua).
dedup ماشه: یک سپرده → یک کمک مالی توسط حکومت.
تقسیم بندی و RG: حذف خود محروم/محدود ؛ در هر نام تجاری/مجوز منطقه.
بلوک درگیری پیشنهادات: تنها یک جایزه خوش آمدید در یک زمان فعال است ؛ اولویت ها
آشکارساز ناهنجاری: چندین حساب/دستگاه/ASN، سریع «صفر کردن» از vager.
«چهار چشم» در کمک های بزرگ و تنظیمات دستی.
ممیزی WORM از تمام تغییرات قانون/کمک مالی/تبدیل.
9) قابلیت مشاهده، معیارها و SLO
SLO (نشانه ها):- مادربزرگ. شماره p95 (شماره → اعتبار) ≤ 300-500 мс.
- به روز رسانی 'vager _ progress' ≤ 200 ms از زمان 'bet. settled'.
- پاداش حوادث. "در اتوبوس p95 ≤ 2 دقیقه از آنچه اتفاق افتاده است.
- «از دست رفته/تکراری کمک های مالی/تبدیل» = 0.
- نرخ/تاخیر по 'شماره/تبدیل/لغو'، نرخ خطا (کسب و کار/4xx/5xx)، 'IDEMPOTENCY _ عدم تطابق'.
- تبدیل Vager، متوسط «زمان برای تکمیل»، نسبت به عقب افتاده است.
- هزینه تبلیغاتی: «promo _ cost» (جزئی) و «promo _ roi» در گروه ها.
- ضد سوء استفاده: محرک های سرعت توسط حداکثر شرط/برنده رد شده است.
ردیابی: OpenTelemetry در زنجیره "trigger → grant → کیف پول. اعتبار - پیشرفت به روز رسانی → تبدیل '.
10) ادغام با RGS/بازی ها
چرخش آزاد/شرط رایگان کوپن - از طریق 'entilements' API: صدور نشانه, scrapping در زمان اجرا, تله متری با استفاده از.
حداکثر شرط/برنده - قوانین در شرط. شرط بندی های «и» را تأیید کنید. آرام بگیرید. کدهای بازگشت «پاداش _ قانون _ نقض».
مشارکت - طرح در 'سطح شرط. حل و فصل '(توسط' game _ type/provider _ id ')، نسخه طرح.
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: revoke'.
کلید/نشانه - در هر نام تجاری/منطقه، کوتاه مدت ؛ اسرار در Vault/HSM.
جداسازی PII: 'player _ id' - نام مستعار ؛ RLS по «نام تجاری/منطقه».
محدودیت نرخ و سهمیه صدور ؛ محافظت در برابر طوفان ها
13) چک لیست
پلت فرم/اپراتور
- تمام معاملات پولی از طریق کیف پول با «Idempotency-Key» انجام می شود.
- قوانین/واجد شرایط بودن نسخه; «دو حرف» از حوادث در مهاجرت.
- طرح های مشارکت متمرکز هستند، تحت پوشش آزمون.
- سرعت و ضد تقلب فعال ؛ «چهار چشم» در مبالغ بزرگ.
- Outbox/CDC، DLQ و پخش مجدد مدیریت شده برای «پاداش». '.
- داشبورد SLO، OpenTelemetry، حسابرسی WORM.
- فروشگاه های DWH برای ROI و انطباق (RG/AML).
یکپارچه سازی (RGS/کیف پول/CRM)
- چک کردن حداکثر شرط/برنده ؛ بازگشت کد خطای کسب و کار.
- من «trace _ id» و «idempotency _ key» را پرتاب می کنم.
- deadup باعث و تضمین تحویل (webhooks امضا).
14) پرچم های قرمز (ضد الگوهای)
شارژ پاداش «دستی» به طور مستقیم به تعادل, دور زدن کیف پول.
عدم توانایی → کمک های مالی دوگانه/تبدیل.
شرط بندی توسط «شرط بندی شده» در نظر گرفته می شود، و نه با توجه به نتایج «شرط بندی شده».
هیچ طرح مشارکتی وجود ندارد و یا در کد ارائه دهندگان «محافظت» می شود.
پیشنهادات متضاد به طور همزمان فعال می شوند.
هیچ حسابرسی سرعت/ضد تقلب و WORM وجود ندارد.
سلام. 'events با دور زدن outbox/CDC ارسال می شود.
معیارهای تبلیغاتی به Ledger/BI اضافه نمی شوند (بدون ویترین ROI).
15) خط پایین
Promos Backend قابل اعتماد قراردادها و ناورداها هستند، نه «اضافه کردن تعادل». این قوانین را از پول جدا می کند، پیشرفت را با توجه به نتایج واقعی در نظر می گیرد، بی نظمی و قابلیت مشاهده را تضمین می کند، در برابر سوء استفاده محافظت می کند و انطباق را تضمین می کند. با چنین هسته ای، بازاریابی به سرعت حرکت می کند، بازیکن شرایط صادقانه را می بیند، و امور مالی و تنظیم کننده ها یک تصویر دقیق از هزینه و اثر هر پیشنهاد را دریافت می کنند.
