सामग्री कैटलॉग इंजन
कैटलॉग इंजन गेम शोकेस और प्रोमो संग्रह का मूल है: यह प्रदाताओं (आरजीएस) से मेटाडेटा एकत्र और सामान्य करता है, अधिकार क्षेत्र और ब्रांड द्वारा पहुंच नियम लागू करता है, निजीकरण और प्रोमो प्लेसमेंट को मिलाता है।
1) लक्ष्य और सिद्धांत
फास्ट रीड्स: p95 ≤ 100-150 ms प्रति निर्देशिका/खोज अनुरोध।
सत्य और ताजगी: प्रमुख विशेषताओं (उपलब्धता, जैकपॉट, प्रदाता क़ानून) की गारंटी।
लचीलापन: संपादकीय संग्रह और प्रोमो स्लॉट बिना रिलीज के।
अनुपालन: भू/आयु/सामग्री नियम, लाइसेंस, जिम्मेदार खेल प्रतिबंध।
मल्टी-किरायेदार/क्षेत्र: ब्रांड अलगाव और डेटा रेजीडेंसी अनुपालन।
अवलोकन: आउटिंग क्वालिटी मेट्रिक्स, ए/बी, गेम रूपांतरण/बेट।
2) डोमेन मॉडल (न्यूनतम)
इकाइयाँ:- खेल प्रदाता का एक खेल/उत्पाद है।
- प्रदाता - आरजीएस/स्टूडियो।
- एक खेल के वेरिएंट (अस्थिरता, पंक्ति, सीमा, सर्वर)।
- संग्रह - संपादकीय/स्वचालित चयन (उदा। "न्यू आइटम्स", "जैकपॉट्स")।
- स्लॉट में पृष्ठ/स्थान पर स्थिर स्थिति/बैनर/टाइल।
- क्षमता/सुविधा - खेल विशेषताएं (मुफ्त स्पिन, सुविधा खरीदें, जैकपॉट)।
- क्षेत्राधिकार - पहुँच/प्रतिबंध नियम।
- संकेत - व्यवहार/परिचालन संकेत (लोकप्रियता, सीटीआर, राजस्व)।
- उपकरणों/घनत्वों के विकल्पों के साथ एसेट - मीडिया (आइकन, पोस्टर, डेमो वीडियो)।
कुंजियाँ: 'game _ id' (स्थिर आंतरिक, provider_game_id), 'किरायेदार _ id', 'क्षेत्र', 'लोकेल' के बराबर नहीं.
3) निगरानी और सामान्यीकरण
कन्वेयर:1. स्रोत एडाप्टर्स (पुलर): आरजीएस/स्टूडियो (निर्देशिका, सुविधाएँ, आरटीपी, टैग) के साथ एकीकरण।
2. मैप - मैप बाहरी क्षेत्रों को एकल शब्दकोश (एसीएल) में स्वच्छ करें, मान्य करें और डीडुप्लिकेट करें।
3. समृद्धि: स्थानीयकरण, श्रेणियां, शब्दार्थ टैग, आयु सीमा रेटिंग।
4. मध्यम: बाजार द्वारा सामग्री झंडे (NSFW/धार्मिक प्रतीक/संवेदनशील विषय)।
5. प्रकाशित: 'GameUpserted/ProviderCommendChanged' घटनाएँ - कैटलॉग प्रक्षेपण।
पहचान: 'source _ id' + 'version _ ts' के साथ सभी संदेश; दोहराने को साइड इफेक्ट्स के बिना संसाधित किया
एवोल्यूशन योजना: एडाप्टर + मैपर माइग्रेशन में 'स्कीमा _ वर्जन'।
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) खोज, फिल्टर, पहलू
इंडेक्स: नाम/पर्यायवाची शब्द, 'प्रदाता', 'क्षमताओं', 'अस्थिरता', 'rtp _ balket', 'टैग' द्वारा पूरा पाठ।
फ़िल्टर: अधिकार क्षेत्र/क्षेत्र/भाषा/उपकरण/आयु, केवल सक्रिय/प्रमाणित।
Synonyms/stemming: उपयोगकर्ता शब्दों का एक नक्शा ("पुस्तकें", "फल", "गेंद")।
टाइपोस: लंबाई प्रतिबंध के साथ सहिष्णु खोज (दूरी ≤1 -2 संपादित करें)।
6) रैंकिंग: संकेत और सूत्र
संकेत (उदाहरण):- ताजगी (रिलीज के बाद का समय)।
- जनसंख्या (शुरू/घंटे, अद्वितीय खिलाड़ी)।
- गुणवत्ता (कैटलॉग से गेम तक सीटीआर, 1/7 दिन रखें)।
- व्यवसाय (विपणन बूस्ट, सौदे, प्रचार स्लॉट)।
- अनुपालन (संवेदनशील सामग्री के लिए नरम डाउनग्रेड, यदि आवश्यक हो)।
- खिलाड़ी-फिट (प्रोफ़ाइल/वरीयता संगतता)।
score = w1freshness + w2popularity + w3ctr + w4player_fit + w5boost
वजन विन्यास/प्रयोगों द्वारा नियंत्रित किया जाता है; सभी संकेत सामान्यीकृत [0; 1].
7) निजीकरण
लघु स्मृति: हाल ही में लॉन्च और शैलियों, RYW - उपयोगकर्ता तुरंत ताजा कार्रवाई देखता है।
लंबी मेमोरी: गेम और प्लेयर प्रोफाइल एम्बेडिंग (गेम शैलियों/अस्थिरता/सत्र)।
सुरक्षा: निजीकरण कभी भी अधिकार क्षेत्र/आयु नियमों का उल्लंघन नहीं करता है।
फॉलबैक: यदि कुछ संकेत हैं - तटस्थ रैंकिंग + संपादकीय संग्रह।
8) संग्रह और प्रचार प्लेसमेंट
संग्रह:- स्वतः: नियम/क्वेरी (जैसे। 'कैपेबिलिटीज़में' जैकपॉट 'और release_date> = अब () -30d') शामिल हैं।
- संपादकीय: क्रम और समय के साथ मैनुअल सूची।
- प्लेसमेंट: पृष्ठों पर निश्चित स्थिति (नायक, पंक्ति -1-स्लॉट -3), ए/बी, खंड/अधिकार क्षेत्र द्वारा लक्षित।
- दिनांक और प्राथमिकताएं: 'starts _ at/end _ at', टकराव प्राथमिकता, प्रकाशन से पहले पूर्वावलोकन।
9) अनुपालन और पहुँच नीति
भू/क्षेत्राधिकार: देशों/क्षेत्रों की सफेद/काली सूची, लाइसेंसों/प्रमाणपत्रों का सत्यापन।
आयु रेटिंग: न्यूनतम आयु, चेतावनी, असंगत बाजारों के लिए छिपना।
विषय/प्रतीकवाद: देश द्वारा संवेदनशील सामग्री के झंडे (धर्म, शराब, आदि)।
जिम्मेदार नाटक: सीमा/समय समाप्ति खिलाड़ियों के लिए छुपाएँ/डिमोट करें।
लेखा परीक्षा: कारणों के साथ उपलब्धता में परिवर्तन का अपरिवर्तनीय लॉग।
10) बहु-किरायेदार और बहु-क्षेत्र
सभी डेटा 'किरायेदार _ id' और 'क्षेत्र' चिह्नित हैं।
अलगाव: क्षेत्र द्वारा कोरम/वाल्ट; क्रॉस-क्षेत्रीय अनुमान - केवल एकत्र करता है।
निष्पक्षता: प्रति किरायेदार/प्रकाशनों के लिए कोटा ताकि "शोर" ब्रांड बाकी में देरी न करे।
11) वास्तुशिल्प की रूपरेखा
लिखें-कोर निर्देशिका (CP): सामान्यीकरण + ट्रांजेक्शनल आउटबॉक्स घटनाएँ।
अनुमान/पढ़ें मॉडल (EC): खोज सूचकांक, भौतिक संग्रह, लोकप्रियता काउंटर।
कैश परतें:- ठंडे पृष्ठों/छवियों के लिए किनारा/सीडीएन।
- गर्म प्रश्नों के लिए इन-मेमोरी कैश (कुंजी = फ़िल्टर + पृष्ठ + किरायेदार + क्षेत्र)।
- Ficheflags: रिलीज के बिना रैंकिंग/संग्रह नियम रोलिंग।
12) API (REST/GraphQL, उदाहरण)
REST
GET /v1/catalog?tenant=brand_eu®ion=EE&locale=ru
&filter=jackpot,true&sort=score_desc&page=1&size=24
→ 200 { items:[...], facets:{...}, as_of:"2025-10-31T12:10:02Z" }
ग्राफक्यूएल (टुकड़ा)
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
}
}
संविदाएँ:
- हमेशा 'के रूप में/ताज़ा', पृष्ठ, पहलू वापस करें।
- पीआईआई के बिना निजीकरण - सत्र मार्कर (RYW) के लिए।
13) सिग्नल और डेटा प्रवाह
लोकप्रियता: प्रक्षेपण में गेम → मिनट बाल्टी → इकाइयों को लॉन्च करते समय वृद्धि।
CTR/रूपांतरण: प्लेसमेंट/संग्रह पर क्लिक/लॉन्च काउंटर।
ऑपरेटिंग स्थिति: स्वास्थ्य प्रदाता (आरजीएस), जैकपॉट/लिमिट (इवेंट स्ट्रीम)।
विपणन बूस्ट: खेल/श्रेणियों/आपूर्तिकर्ताओं के लिए समय कारक।
14) अवलोकन और एसएलओ
निर्देशिका मेट्रिक्स:- 'catalog _ p95 _ ms', 'catalog _ p99 _ ms', 'त्रुटि _ दर'।
- 'index _ freshness _ ms' (प्रोजेक्ट देरी), 'ingest _ lag _ ms'।
- 'सीटीआर', 'क्लिक-टू-लॉन्च', 'कलेक्शन _ कवरेज' (% संग्रह से बाहर देखें)।
- 'लिफ्ट _ ctr', 'लिफ्ट _ रूपांतरण', "बनाम शोषण का पता लगाएं" доля।
- % सही ढंग से लागू भू/आयु नियम, ब्लॉकों/घंटे की संख्या.
अलर्ट: 'ingest _ lag _ ms' की वृद्धि, प्रमुख संग्रह पर CTR में गिरावट, प्रदाता का क्षरण (अंक में टैग)।
15) प्रदर्शन और कैशिंग
रणनीति: गर्म प्रश्न - फिल्टर द्वारा एक कुंजी के साथ 30-120 एस के लिए कैश; व्यक्तिगत ब्लॉक - छोटे टीटीएल (10-30 एस) या कोई कैश नहीं।
विकलांगता: 'GameUpserted/AlbaysCommented/PlackPollacebarated' घटनाओं द्वारा।
Pagination: स्थिर संकेतक ताकि संकेतों को अपडेट करते समय "कूद" कार्ड न हो।
16) मीडिया के साथ काम करना
रेंडर प्रोफाइल: वेब/मोबाइल/टीवी के लिए आकार/घनत्व।
अनुकूलन: वेब/एवीआईएफ, आलसी-लोड, टाइलों के लिए स्प्राइट/एटलस।
सामग्री सुरक्षा: स्कैनिंग, वॉटरमार्क, इनलाइन-पीआईआई निषेध।
17) परीक्षण
एडेप्टर और एपीआई के लिए संविदा/स्कीमा परीक्षण।
प्रासंगिकता परीक्षण: प्रश्नों के सुनहरे सेट - अपेक्षित परिणाम/क्रम।
निजीकरण: रेलिंग मेट्रिक्स (इन-गेम टाइम, डिपॉजिट, आरजी सिग्नल) के साथ ऑफ़ लाइन एयूसी/एनडीसीजी + ऑनलाइन ए/बी।
अराजकता: प्रदाता गिरावट, निगरानी स्पाइक्स, अनुक्रमण देरी।
18) प्लेबुक (रनबुक)
1. इंडेक्स लैग> एसएलओ: द्वितीयक संग्रह बंद करें, निगलने की प्राथमिकता बढ़ाएं, अस्थायी रूप से रैंकिंग को सरल करें।
2. प्रदाता "लाल": अपने खेल को कम/छिपाएं, वैकल्पिक संग्रह बढ़ाएं।
3. एपीआई त्रुटि कूद: कैश/बैकेंड की जाँच करें, सुरक्षा समय समाप्त करें, पृष्ठ आकार कम करें।
4. गलत उपलब्धता: अंतिम नियम को वापस रोल करें, महत्वपूर्ण बाजारों की "सफेद सूची" शामिल करें, ऑडिट परिवर्तन।
5. रैंकिंग रिलीज़: कैनरी रोलआउट (5% → 25% → 50% → 100%), सीटीआर/रूपांतरण रोलबैक।
19) विशिष्ट त्रुटियां
एक आंतरिक मॉडल (कोई एसीएल) के साथ बाहरी प्रदाता स्कीमा मिलाना।
'as _ of/ताजगी' की अनुपस्थिति - "पुरानी" निर्देशिका के बारे में विवाद।
न्यायिक नियमों का उल्लंघन करने वाला निजीकरण।
संकेतों के अपघटन के बिना एकमात्र "जादू" रैंकिंग सूत्र और ए/बी।
कैशिंग और कर्सर के बिना बड़े पृष्ठ - p99 "शूट"।
घटनाओं + अनुमानों के बजाय सूचकांक और OLTP पर दोहरी लिखें।
20) प्री-सेल चेकलिस्ट
- सभी प्रदाताओं के लिए सामान्यीकृत क्षेत्र शब्दकोश और एसीएल।
- Idempotent ingest, outbox/inbox, DLQ और redrive।
- कैटलॉग अनुमान और ताजगी एसएलओ के साथ सूचकांक खोजें।
- वजन नियंत्रित रैंकिंग, सिग्नल अपघटन और ए/बी।
- अनुपालन नियम (भू/आयु/विषय) और परिवर्तनों का लेखा परीक्षा।
- मल्टी-किरायेदार/क्षेत्र: डेटा अलगाव, निष्पक्षता, निवास।
- 'as _ of' के साथ API, पहलू, कर्सर; घटना द्वारा कैश और विकलांगता।
- p95/p99 मेट्रिक्स, इनगेस्ट/इंडेक्सिंग, सीटीआर/रूपांतरण; अलर्ट।
- हादसा प्लेबुक; कैनरी रिलीज़ और ficheflags।
- प्रासंगिकता, अनुबंध, अराजकता और निजीकरण के परीक्षण।
निष्कर्ष
कैटलॉग इंजन गेम सामग्री पर एक "खोज इंजन + नियम प्रणाली + शोकेस" है। मजबूत एसीएल, सामान्यीकृत डेटा, त्वरित पढ़ ने के लिए अनुमान, पारदर्शी रैंकिंग संकेत, रेलिंग मैट्रिक्स के साथ निजीकरण और सख्त अनुपालन कैटलॉग को विकास के एक टिकाऊ और औसत दर्जे के उत्पाद लीवर में बदल देते हैं।