GH GambleHub

Kontent katalogi

Katalog dvigateli - bu oldingi o’yinlar va promo-tanlovlarning yadrosi: u provayderlardan meta ma’lumotlarni to’playdi va normallashtiradi (RGS), qidirish/filtrlash/reytinglashni ta’minlaydi, yurisdiksiya va brendlar bo’yicha foydalanish qoidalarini qo’llaydi, shaxsiylashtirish va promo-pleysmentlarni aralashtiradi, so’ngra API orqali tezkor javoblarni beradi bashorat qilinadigan SLO.


1) Maqsad va prinsiplar

Tez o’qish: p95 ≤ 100-150 ms katalog/qidiruv so’roviga.
Haqiqat va yangilik: asosiy atributlarning kafolatlangan dolzarbligi (qulaylik, jekpotlar, provayder maqomlari).
Moslashuvchanlik: tahririyat kolleksiyalari va reklama slotlari.
Muvofiqlik: geo/yosh/kontent qoidalari, litsenziya, mas’uliyatli o’yinni cheklash.
Ko’p tenant/mintaqa: brendlarni izolyatsiya qilish va data residency-ga rioya qilish.
Kuzatish: berish sifati metrikasi, A/B, o’yinga/stavkaga konversiya.


2) Domen modeli (minimal)

Mohiyati:
  • Game - provayder o’yini/mahsuloti.
  • Provider - RGS/studiya.
  • Variant - bitta o’yinning variantlari (o’zgaruvchanlik, chiziqlar, limitlar, server).
  • Collection - tahririyat/avtomatik tanlov (masalan, «Yangiliklar», «Jekpotlar»).
  • Placement - sahifadagi/slotdagi biriktirilgan pozitsiya/banner/tayl.
  • Capability/Feature - o’yin atributlari (free spins, buy feature, jekpot).
  • JurisdictionRule - foydalanish/cheklash qoidalari.
  • Signals - xulq-atvor/operatsion signallar (mashhurlik, CTR, revenue).
  • Asset - media (piktogramma, poster, demo-video).

Kalitlar:’game _ id’(ichki barqaror, teng emas provider_game_id),’tenant _ id’,’region’,’locale’.


3) Ingest va normallashtirish

Konveyer:

1. Source Adapters (pullerlar): RGS/studiyalar bilan integratsiya (kataloglar, fichlar, RTP, teglar).

2. Sanitize & Map: tashqi maydonlarning yagona lug’atga (ACL) mapping, validatsiya va de-duplikatsiya.

3. Enrich: mahalliylashtirish, toifalar, semantik teglar, yosh chegaralari reytinglari.

4. Moderate: bozorlar bo’yicha kontent bayroqlari (NSFW/diniy ramzlar/sezgir mavzular).

5. Publish:’GameUpserted/ProviderStatusChanged’voqealari → katalog proyeksiyalari.

Idempotentlik:’source _ id’+’version _ ts’bilan barcha xabarlar; takrorlash nojo’ya ta’sirlarsiz qayta ishlanadi.
Evolyutsiya sxemasi:’schema _ version’adapterlarda + mapper migratsiyasida.


4) Normallashtirilgan sxema (soddalashtirilgan)

json
{
"game_id": "g_3f92",
"tenant_id": "brand_eu",
"provider": { "id": "pr_evolution", "name": "Evolution" },
"title": { "en": "Lightning Roulette", "de": "Lightning Roulette" },
"capabilities": ["live","roulette","multiplier","bonus"],
"rtp": 97.3,
"volatility": "high",
"limits": { "min": 0.1, "max": 1000.0, "currency": "EUR" },
"jurisdiction": {
"allowed": ["MT","EE","DE"],
"blocked": ["NL","BE"],
"age_rating": 21
},
"assets": {
"tile": { "1x":"...", "2x":"..." },
"poster": { "web":"...", "mobile":"..." }
},
"tags": ["new","jackpot"],
"release_date": "2025-09-12",
"status": "active",
"variants": [{ "id":"v1","server":"eu-central-1","rtp":97.3 }]
}

5) Qidiruv, filtrlar, fasetlar

Indekslar: nomi/sinonimlari bo’yicha to’liq matn,’provider’,’capabilities’,’volatility’,’rtp _ bucket’,’tags’bo’yicha fasetlar.
Filterlar: yurisdiksiya/mintaqa/til/qurilma/yosh, faqat aktiv/sertifikatlangan.
Sinonimlar/stemming: foydalanuvchi atamalari xaritasi («kitoblar», «mevalar», «sharlar»).
Xatolar: tolerant search (edit distance ≤ 1-2) uzunligi cheklangan.


6) Ranjirlash: signallar va formula

Signallar (misol):
  • Freshness (chiqish vaqti).
  • Popularity (ishga tushirish/soat, noyob o’yinchilar).
  • Quality (CTR katalogdan o’yinga, ushlab turish 1/7 kun).
  • Business (marketing bustlari, bitimlar, promo-slotlar).
  • Compliance (agar talab qilinsa, sezgir kontent uchun yumshoq pasayishlar).
  • Player-fit (profil/afzalliklar mosligi).
Kombinatsiya (konsept):

score = w1freshness + w2popularity + w3ctr + w4player_fit + w5boost

Vaznlar konfiguratsiya/eksperimentlar bilan boshqariladi; barcha signallar [0; 1].


7) Personallashtirish

Qisqa xotira: so’nggi ishga tushirishlar va janrlar, RYW - foydalanuvchi darhol yangi harakatlarni ko’radi.
Uzoq xotira: o’yinlar va o’yinchi profilining embeddinglari (o’yin janrlari/o’zgaruvchanlik/sessiyalar).
Xavfsizlik: shaxsiylashtirish hech qachon yurisdiksiya/yosh qoidalarini buzmaydi.
Fallback: agar signal kam boʻlsa - neytral reyting + muharrir toʻplamlari.


8) Kolleksiyalar va promo-pleysmentlar

Toʻplamlar:
  • Avto: qoida/so’rov (masalan,’capabilities contains’jackpot’AND release_date> = NOW () -30d’).
  • Tahririyat: tartib va muddatlar bilan qo’lda ro’yxat.
  • Pleysmentlar: sahifalarda mustahkamlangan pozitsiyalar (hero, row-1-slot-3), A/B, segmentlar/yurisdiksiyalar bo’yicha targeting.
  • Muddatlari va ustuvorliklari:’starts _ at/ends _ at’, konfliktlarning ustuvorligi, e’lon qilishdan oldin prevyu.

9) Komplayens va foydalanish siyosati

Geo/yurisdiksiya: mamlakatlar/mintaqalarning oq/qora ro’yxatlari, litsenziyalar/sertifikatlarni tekshirish.
Yosh reytingi: minimal yosh, ogohlantirish, nomuvofiq bozorlar uchun yashirish.
Mavzular/ramzlar: mamlakatlar bo’yicha sezgir kontent bayroqlari (din, alkogol va boshqalar).
Mas’uliyatli o’yin: limitli/taym-autli o’yinchilar uchun yashirish/kamaytirish.
Audit: sabablar bilan foydalanish imkoniyatini o’zgartirishning o’zgarmas log.


10) Ko’p tenant va ko’p mintaqa

Barcha maʼlumotlar «tenant _ id» va «region» bilan belgilangan.
Izolyatsiya: mintaqalar bo’yicha kvorumlar/omborlar; kross-mintaqaviy proyeksiyalar - faqat agregatlar.
Fairness: «shovqinli» brend boshqalarni kechiktirmasligi uchun ingest/per tenant nashrlariga kvotalar.


11) Arxitektura konturi

Write - katalog yadrosi (CP): normallashtirish + tranzaksion outbox hodisalari.
Proyeksiyalar/Read Models (EC): qidiruv indekslari, materiallashtirilgan kolleksiyalar, mashhurlik hisoblagichlari.

Kesh qatlamlari:
  • «Sovuq» sahifalar/rasmlar uchun Edge/CDN.
  • Issiq soʻrovlar uchun In-memory keshlari (key = filtrlar + sahifa + tenant + region).
  • Ficheflaglar: rang/kolleksiyalarni relizsiz prokatga berish.

12) API (REST/GraphQL, misollar)

REST


GET /v1/catalog?tenant=brand_eu&region=EE&locale=ru
&filter=jackpot,true&sort=score_desc&page=1&size=24
→ 200 { items:[...], facets:{...}, as_of:"2025-10-31T12:10:02Z" }

GraphQL (parcha)

graphql query Catalog($tenant:String!,$region:String!,$q:String,$filters:Filters){
catalog(tenant:$tenant, region:$region, q:$q, filters:$filters){
items { gameId title provider { name } score badges assets { tile } }
facets { providers { key,count } capabilities { key,count } }
freshnessMs
}
}
Kontraktlar:
  • Har doim’as _ of/freshnessMs’, peyjing, fasetlarni qaytaring.
  • Personallashtirish uchun - PIIsiz sessiya markeri (RYW).

13) Signallar va ma’lumotlar oqimi

Mashhurlik: o’yinlarni boshlashda inkrementlar → daqiqali baketalar → proyeksiyadagi agregatlar.
CTR/konvertatsiya: pleysmentlarda/kolleksiyalarda klik/ishga tushirish hisoblagichlari.
Operatsion maqomlar: provayderlarning health (RGS), jekpotlar/limitlar (voqealar oqimi).
Marketing-bustlar: o’yinlar/toifalar/yetkazib beruvchilar uchun vaqtinchalik koeffitsiyentlar.


14) Kuzatuv va SLO

Katalog metrikasi:
  • `catalog_p95_ms`, `catalog_p99_ms`, `error_rate`.
  • ’index _ freshness _ ms’ (loyiha kechikishi),’ingest _ lag _ ms’.
  • ’ctr’,’click-to-launch’,’collection _ coverage’(kolleksiyalardan berilgan%).
Shaxsiylashtirish:
  • `lift_ctr`, `lift_conversion`, «explore vs exploit» доля.
Komplayens:
  • Geo/yosh qoidalarining to’g "ri qo’llanilganligi, bloklar soni/soat.

Alertlar:’ingest _ lag _ ms’ning o’sishi, asosiy kolleksiyalarda CTRning pasayishi, provayderning degradatsiyasi (berishdagi belgilar).


15) Unumdorlik va keshlash

Strategiya: issiq so’rovlar - filtrlar bo’yicha kalitli 30-120 kash; shaxsiy bloklar - qisqa TTL (10-30 s) yoki keshsiz.
Nogironlik:’GameUpserted/AvailabilityChanged/PlacementUpdated’voqealari bo’yicha.
Paginatsiya: signallarni yangilashda kartochkalar «sakrab» ketmasligi uchun barqaror kursorlar.


16) Media bilan ishlash

Render profillari: web/mobile/TV uchun oʻlchamlar/zichliklar.
Optimallashtirish: WebP/AVIF, lazy-load, sprite/atlas.
Kontent xavfsizligi: skanerlash, suv belgilari, inline-PII taqiqlanadi.


17) Test sinovlari

Adapterlar va API uchun Contract/Schema tests.
Relevancy tests: oltin soʻrovlar toʻplami → kutilayotgan natijalar/tartib.
Personallashtirish: offline AUC/NDCG + online A/B guardrail-metriklar bilan (o’yindagi vaqt, depozitlar, RG-signallar).
Chaos: provayderlarning tanazzullari, ingest portlashlari, indeksatsiya kechikishlari.


18) Pleybuklar (runbooks)

1. Lag indeks> SLO: ikkilamchi kolleksiyalarni toʻxtatish, ingest ustuvorligini oshirish, reytingni vaqtincha soddalashtirish.
2. «Qizil» provayder: uning o’yinlarini kamaytirish/yashirish, muqobil kolleksiyalarni ko’tarish.
3. API xatosi: kesh/orqa tomonni tekshirish, himoya taymautlarini yoqish, sahifalar hajmini kamaytirish.
4. Noto’g "ri foydalanish imkoniyati: oxirgi qoidani bekor qilish, tanqidiy bozorlarning" oq ro’yxati "ni kiritish, o’zgarishlar auditini o’tkazish.
5. Rang chiqarish: kanar rollout (5% → 25% → 50% → 100%), CTR/konversiya bo’yicha orqaga qaytish.


19) Tipik xatolar

Signallar parchalanmagan holda yagona «sehrli» reyting formulasi va A/B

Provayderlarning tashqi sxemalarini ichki model bilan aralashtirish (ACL mavjud emas).
’as _ of/freshness’ → «eskirgan» katalog haqida bahslar mavjud emas.
Yurisdiksiya qoidalarini buzadigan shaxslashtirish.
Kesh va kursorsiz katta sahifalar → p99 «otadi».
Hodisa + proyeksiya oʻrniga OLTP va indeksga dual-write.


20) Sotishdan oldingi chek-varaq

  • Barcha provayderlar uchun normal dala va ACL lugʻati.
  • Idempotent ingest, outbox/inbox, DLQ va redrayv.
  • Yangilik SLO bilan katalog proyeksiyalari va qidiruv indekslari.
  • Boshqariladigan tarozilar bilan reytinglash, signallarning parchalanishi va A/B.
  • Komplayens qoidalari (geo/yosh/mavzu) va o’zgarishlar auditi.
  • Ko’p tenant/mintaqa: ma’lumotlarni izolyatsiya qilish, fairness, residency.
  • API s’as _ of’, fasetlar, kursorlar; voqealar bo’yicha kesh va nogironlik.
  • Metrika p95/p99, ingest/indeksatsiya, CTR/konvertatsiya; alertlar.
  • Voqealar pleybuklari; kanar relizlari va ficheflaglar.
  • Tegishli, kontrakt, xaos va shaxsiylashtirish testlari.

Xulosa

Katalog dvigateli - bu oʻyin kontenti ustidagi «qidiruv tizimi + qoidalar tizimi + vitrin». Kuchli ACL, me’yorlashtirilgan ma’lumotlar, tez o’qish uchun proyeksiyalar, shaffof reyting signallari, guardrail-metrik personalizatsiya va qat’iy komplayens katalogni oziq-ovqat mahsulotlarida kutilmagan hodisalarsiz va regulyatorlar bilan murosasiz barqaror va o’lchanadigan o’sish dastagiga aylantiradi.

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.