GH GambleHub

Мазмун каталогунун кыймылдаткычы

Каталогдун кыймылдаткычы - бул алдыңкы оюндардын жана промо-тандоолордун өзөгү: ал провайдерлерден (RGS) мета-маалыматтарды чогултат жана нормалдаштырат, издөө/фильтрлерди/ранжирлөөнү камсыз кылат, юрисдикциялар жана бренддер боюнча жеткиликтүүлүк эрежелерин колдонот, жекелештирүүнү жана промо-оюндарды аралаштырат, андан кийин менен API аркылуу тез жоопторду берет алдын ала SLO.


1) Максаттары жана принциптери

Fast Readings: p95 ≤ 100-150 ms каталог/издөө суроо-талап боюнча.
Чындык жана жаңылык: негизги атрибуттардын кепилденген актуалдуулугу (жеткиликтүүлүк, джекпот, провайдердик статустар).
Ийкемдүүлүк: редактордук коллекциялар жана жарнамалык слоттор релизсиз.
Шайкештик: гео/жаш/мазмун эрежелери, лицензия, жоопкерчиликтүү оюнду чектөө.
Multi-Тенант/аймак: Brands изоляция жана data residency сактоо.
Байкоо: чыгаруу сапаты метрика, A/B, оюн/коюмга айландыруу.


2) Домен модели (минималдуу)

Маңызы:
  • Game - оюн/продукт провайдери.
  • Provider - RGS/студия.
  • Variant - бир оюндун варианттары (туруксуздук, линиялар, лимиттер, сервер).
  • Collection - редактордук/автоматтык тандоо (мисалы, "Жаңылык", "Джекпот").
  • Placement - бекемделген позиция/баннер/тайл баракта/слотто.
  • Capability/Feature - оюндун атрибуттары (free spins, buy feature, jackpot).
  • JurisdictionRule - жеткиликтүүлүк/чектөө эрежелери.
  • Сигналдар - жүрүм-турум/операциялык сигналдар (популярдуулук, CTR, revenue).
  • Asset - медиа (сөлөкөттөр, плакаттар, демо) түзмөктөр/тыгыздыгы үчүн параметрлери менен.

Keys: 'game _ id' (туруктуу ички, барабар эмес provider_game_id), 'tenant _ id', 'region', 'locale'.


3) Ingest жана нормалдаштыруу

Конвейер:

1. Source Adapters (Pullers): RGS/студиялар менен бириктирүү (каталогдор, чүчүкулак, RTP, теги).

2. Sanitize & Map: бирдиктүү сөздүк тышкы талаалар mapping (ACL), валидация жана дедупликация.

3. Enrich: локализациялар, категориялар, семантикалык теги, жаш курактык чектөөлөрдүн рейтинги.

4. Moderate: контент желектери (NSFW/диний белгилер/сезимтал темалар) базарларда.

5. Publish: окуялар 'GameUpserted/ProviderStatusChanged' → каталог проекциялары.

Демпотенттик: бардык билдирүүлөр менен 'source _ id' + 'version _ ts'; кайталоо эч кандай терс таасирлери жок иштетилет.
Эволюция схемасы: 'schema _ version' адаптерлерде + маппер миграциялары.


4) Нормалдаштырылган схема (жөнөкөйлөштүрүлгөн)

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) Издөө, чыпкалар, фасеттер

Индекстер: аты/синоним боюнча толук текст, 'provider', 'capabilities', 'volatility', 'rtp _ bucket', 'tags' деген фасеттер.
чыпкалар: юрисдикция/аймак/тил/түзмөк/жашы, гана активдүү/тастыкталган.
Синонимдер/стемминг: колдонуучунун терминдеринин картасы ("китептер", "мөмө-жемиштер", "шарлар").
Каталар: толерант издөө (edit distance ≤ 1-2) узундугу боюнча чектөө менен.


6) Ранжирлөө: сигналдар жана формула

Сигналдар (мисал):
  • Freshness (чыгаруу убактысы).
  • Популярдуулук (учуруу/саат, уникалдуу оюнчулар).
  • Quality (оюн каталогдон CTR, сактоо 1/7 күн).
  • Бизнес (маркетинг күчөтүүлөр, бүтүмдөр, жарнамалык Slots).
  • Compliance (зарыл болсо, сезгич мазмун үчүн жумшак төмөндөтүү).
  • Player-fit (ылайыктуулугу/артыкчылык).
Комбинация (түшүнүк):

score = w1freshness + w2popularity + w3ctr + w4player_fit + w5boost

Салмагы конфигурация/эксперименттер тарабынан башкарылат; бардык сигналдар [0; 1].


7) Персоналдаштыруу

Кыска эс: акыркы учуруулар жана жанрлары, RYW - колдонуучу дароо жаңы иш-аракеттерди көрөт.
Узак эс: оюндардын жана оюнчу профилинин эмбеддинги (оюн жанрлары/туруксуздук/сессиялар).
Коопсуздук: жекелештирүү эч качан юрисдикция/курактык эрежелерди бузбайт.
Fallback: сигналдар аз болсо - бейтарап рейтинги + редактордук жыйнактары.


8) Коллекциялар жана жарнамалык плейсменттер

Коллекциялар:
  • Auto: эреже/суроо (мисалы, 'capabilities contains' jackpot 'AND release_date> = NOW () -30d').
  • Editor: тартиби жана мөөнөттөрү менен кол тизмеси.
  • Плейсмент: беттерде бекитилген позициялар (hero, row-1-slot-3), A/B, сегменттер/юрисдикциялар боюнча максаттуу.
  • Мөөнөттөрү жана артыкчылыктары: 'starts _ at/ends _ at', чыр-чатактын артыкчылыгы, жарыялоо алдында алдын ала.

9) Комплаенс жана жеткиликтүүлүк саясаты

Гео/юрисдикция: өлкөлөрдүн/аймактардын ак/кара тизмелери, лицензияларды/сертификаттарды текшерүү.
Жаш рейтинги: минималдуу жаш курагы, эскертүүлөр, туура келбеген базарлар үчүн жашыруу.
Тематика/символика: өлкөлөр боюнча сезгич контенттин желектери (дин, спирт ж.б.).
Жооптуу оюн: лимиттери/тайм-аут менен оюнчулар үчүн жашыруу/төмөндөтүү.
Аудит: себептери менен жеткиликтүүлүктүн өзгөрүлбөс журналы.


10) Көп-тенант жана көп-аймак

Бардык маалыматтар 'tenant _ id' жана 'region' деп белгиленет.
Изоляция: региондор боюнча кворумдар/кампалар; кросс-аймактык проекциялар - агрегаттар гана.
Fairness: ingest/жарыялоо per tenant боюнча квота, ошондуктан "ызы-чуу" бренд башкаларды кечиктирбейт.


11) Архитектуралык контур

Write-ядро каталогу (CP): нормалдаштыруу + транзакциялык outbox окуялар.
Проекциялар/Read Models (EC): издөө индекстери, материалдаштырылган коллекциялар, популярдуулук эсептегичтери.

Кэш катмарлары:
  • "муздак" барактар/сүрөттөр үчүн Edge/CDN.
  • In-memory ысык суроолор үчүн кэш (key = чыпкалар + бет + tenant + аймак).
  • Ficheflags: релизи жок ранжирлөө эрежелери/жыйнактары ижарага.

12) API (REST/GraphQL, мисалдар)

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

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
}
}
Контракттар:
  • Ар дайым 'as _ of/freshnessMs', пэйджинг, фасеттер.
  • Персоналдаштыруу үчүн - PIIсиз сессиянын маркери (RYW).

13) Сигналдар жана маалымат агымы

Популярдуулук: оюндар → мүнөттүк бакеттер → проекциядагы агрегаттар башталганда инкременттер.
CTR/конверсия: плейсмент/жыйнактарда клик/учуруу эсептегичтери.
Операциялык статустар: провайдерлердин ден соолугу (RGS), джекпоттор/лимиттер (окуялардын агымы).
Маркетинг-күчөтүүлөр: оюндар/категориялар/берүүчүлөр үчүн убактылуу коэффициенттер.


14) Байкоо жана SLO

Каталогдун көрсөткүчтөрү:
  • `catalog_p95_ms`, `catalog_p99_ms`, `error_rate`.
  • 'index _ freshness _ ms' (долбоордук кечигүү), 'ingest _ lag _ ms'.
  • 'ctr', 'click-to-launch', 'collection _ coverage' (коллекциялардан% чыгаруу).
Персоналдаштыруу:
  • `lift_ctr`, `lift_conversion`, «explore vs exploit» доля.
Комплаенс:
  • Туура колдонулган гео/курактык эрежелердин%, блоктордун саны/саат.

Алерталар: 'ingest _ lag _ ms' өсүшү, негизги жыйнактарда CTR кулашы, провайдердин деградациясы (чыгаруудагы белгилер).


15) Аткаруу жана кэш

Стратегия: ысык суроолор - 30-120 ачкычы менен cache; жеке блоктор - кыска TTL (10-30 с) же кэш жок.
Майыптык: окуялар боюнча 'GameUpserted/AvailabilityChanged/PlacementUpdated'.
Пагинация: сигналдарды жаңыртканда карталар "секирип" кетпеши үчүн туруктуу курсорлор.


16) Медиа менен иштөө

Render профилдери: web/mobile/TV үчүн өлчөмдөр/тыгыздыктар.
оптималдаштыруу: WebP/AVIF, lazy-load, плиткалар үчүн sprite/атлас.
Мазмун коопсуздугу: сканерлөө, суу белгилери, inline-PII тыюу салуу.


17) Сыноо

Адаптер жана API үчүн Contract/Schema tests.
Relevancy tests: алтын суроо топтомдору → күтүлгөн натыйжалар/тартиби.
Персоналдаштыруу: оффлайн AUC/NDCG + онлайн A/B guardrail-метриктер менен (оюнда убакыт, депозиттер, RG сигналдары).
Chaos: провайдерлердин деградациясы, ingest жарылуулары, индекстөөнүн кечеңдеши.


18) Playbooks (runbooks)

1. Lag Index> SLO: экинчи жыйнактарды токтотуу, ingest артыкчылыгын жогорулатуу, убактылуу жөнөкөйлөтүү рейтинги.
2. "Кызыл" провайдери: анын оюндарын төмөндөтүү/жашыруу, альтернативдик коллекцияларды көтөрүү.
3. API каталарынын секирүү: Кэш/Backend текшерүү, коргоочу таймауттарды күйгүзүү, барактардын өлчөмүн азайтуу.
4. Туура эмес жеткиликтүүлүк: акыркы эрежени артка кайтаруу, маанилүү рыноктордун "ак тизмесин" киргизүү, өзгөрүүлөргө аудит жүргүзүү.
5. Release ранжирлөө: Канар rollout (5% → 25% → 50% → 100%), CTR/конверсия боюнча артка чегинүү.


19) типтүү каталар

Бирден-бир "сыйкырдуу" белги жана A/B жок ранжирлөө формуласы

ички модель (ACL жок) менен провайдерлердин тышкы схемаларын аралаштыруу.
Жок 'as _ of/freshness' → "эскирген" каталогу жөнүндө талаш.
Юрисдикция эрежелерин бузган персоналдаштыруу.
Чоң барактар кэшсиз жана курсорлору жок → p99 "атышат".
Dual-write индекс жана OLTP ордуна окуялар + проекциялар.


20) Азык-түлүктүн алдындагы чек-тизме

  • Бардык провайдерлер үчүн нормалдаштырылган талаа жана ACL сөздүгү.
  • Idempotent ingest, outbox/inbox, DLQ жана редрайв.
  • SLO сергектик менен каталог проекциялары жана издөө индекстери.
  • Башкарылуучу таразалар, сигналдардын бузулушу жана A/B менен рейтинги
  • Комплаенс эрежелери (гео/жаш/тема) жана аудит өзгөрүүлөр.
  • Multi-Тенант/аймак: маалыматтарды изоляциялоо, fairness, residency.
  • API 'as _ of', фасеттер, курсорлор менен; окуялар боюнча кэш жана майыптык.
  • Метрика p95/p99, ingest/индекстөө, CTR/конверсия; Алерталар.
  • Playbook окуялар; Канар релиздери жана фичефлагдар.
  • Тиешелүү тесттер, келишимдер, башаламандык жана жекелештирүү.

Корутунду

Каталогдун кыймылдаткычы - бул оюн мазмунунун үстүнөн "издөө системасы + эреже системасы + витрина". Күчтүү ACL, нормалдаштырылган маалыматтар, тез окуу үчүн проекциялар, ачык-айкын рейтингдик сигналдар, guardrail-метриктер менен жекелештирүү жана катуу комплаенс каталогду туруктуу жана өлчөнүүчү продукт өсүү рычагына айландырат - өндүрүштө сюрпризсиз жана жөнгө салуучу менен компромисссиз.

Contact

Биз менен байланышыңыз

Кандай гана суроо же колдоо керек болбосун — бизге кайрылыңыз.Биз дайым жардам берүүгө даярбыз!

Интеграцияны баштоо

Email — милдеттүү. Telegram же WhatsApp — каалооңузга жараша.

Атыңыз милдеттүү эмес
Email милдеттүү эмес
Тема милдеттүү эмес
Билдирүү милдеттүү эмес
Telegram милдеттүү эмес
@
Эгер Telegram көрсөтсөңүз — Emailден тышкары ошол жактан да жооп беребиз.
WhatsApp милдеттүү эмес
Формат: өлкөнүн коду жана номер (мисалы, +996XXXXXXXXX).

Түшүрүү баскычын басуу менен сиз маалыматтарыңыздын иштетилишине макул болосуз.