מנוע קטלוג תוכן
מנוע הקטלוג הוא הליבה של תצוגות משחקים ואוספי פרומו בחזית: הוא אוסף ומנרמל מטאדטה מספקים (RGS), מספק חיפוש/פילטרים/דירוג, מיישם כללי נגישות על ידי סמכות שיפוט ומותג, מערבב פרסונליזציה ומיקום פרומו, ואז מעביר תגובות מהירות באמצעות API עם SLO צפוי.
1) מטרות ועקרונות
רישומים מהירים: p95 בלום 100-150 מ "מ לתיקייה/בקשת חיפוש.
אמת ורעננות: מובטח רלוונטיות של תכונות מפתח (זמינות, קנקנים, סטטוסים מספקים).
גמישות: אוספי עריכה ושיבוצי פרומו ללא שחרור.
ציות: חוקי גיאו/גיל/תוכן, רישיונות, הגבלות משחק אחראיות.
רב-דייר/אזור: בידוד מותג וציות לתושבות נתונים.
יכולת תצפית: יציאת מטריצות איכות, A/B, המרת משחק/בית.
2) מודל דומיין (מינימום)
ישויות:- משחק הוא משחק/תוצר של הספק.
- ספק - RGS/סטודיו.
- וריאנט - וריאנטים של משחק אחד (תנודתיות, קווים, גבולות, שרת).
- אוסף - עריכה/בחירה אוטומטית (למשל: "פריטים חדשים", "Jackpots').
- מיקום - מיקום/באנר/אריח קבוע על הדף/בחריץ.
- יכולת/תכונה - תכונות משחק (ספינים חופשיים, תכונת קנה, כל קופה).
- חוק סמכות שיפוט - כללי נגישות/הגבלה.
- אותות - אותות התנהגותיים/מבצעיים (פופולריות, CTR, הכנסות).
- נכס - מדיה (סמלים, כרזות, סרטוני הדגמה) עם אפשרויות למכשירים/צפיפות.
מפתחות: "game _ id" (פנימי יציב, לא שווה provider_game_id), "terant _ id'," region "," locale ".
3) בליעה ונורמליזציה
מסוע:1. עיבוד מקור (pullers): אינטגרציה עם RGS/studios (ספריות, תכונות, RTP, תגיות).
2. Sanitice & Map - למפות שדות חיצוניים למילון יחיד (ACL), לאמת ולשכפל.
3. העשרה: מיקומים, קטגוריות, תגיות סמנטיות, דירוג מגביל גיל.
4. מתון: דגלי תוכן (NSFW/סמלים דתיים/נושאים רגישים) על ידי שוק.
5. Publish: 'GameUpsered/ListenChanged Changed' experience action.
idempotence: כל ההודעות עם ”source _ id' +” version _ ts'; חוזר מעובד ללא תופעות לוואי.
ערכת אבולוציה: ”schema _ version” בהתאמות + mapper נדידה.
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 _ bucket”, ”תגיות”.
מסננים: תחום שיפוט/אזור/שפה/התקן/גיל, פעיל/מוסמך בלבד.
מילים נרדפות: מפה של מונחי משתמש (”ספרים”, ”פירות”, ”כדורים”).
שגיאות שגיאות: חיפוש סובלני (עריכה של מרחק סימון 1-2) עם הגבלת אורך.
6) דירוג: אותות ונוסחה
אותות (דוגמה):- רעננות (זמן מאז השחרור).
- אוכלוסייה (התחלה/שעה, שחקנים ייחודיים).
- איכות (CTR מקטלוג למשחק, להחזיק 1/7 יום).
- עסקים (מגברים שיווק, עסקאות, מקומות קידום מכירות).
- ציות (ציונים נמוכים רכים לתוכן רגיש, במידת הצורך).
- כושר-שחקן (תאימות פרופיל/העדפה).
score = w1freshness + w2popularity + w3ctr + w4player_fit + w5boost
משקולות נשלטות על ידי תצורה/ניסויים; כל האותות מנורמלים [ 0; 1].
7) התאמה אישית
זיכרון קצר: השקות וז 'אנרים חדשים, RYW - המשתמש רואה מיד פעולה חדשה.
זיכרון ארוך: Game and Player profile medings (ז 'אנרי משחק/תנודתיות/הפעלות).
התאמה אישית לעולם לא מפרה את כללי השיפוט/גיל.
גיבוי: אם יש מעט אותות - דירוג נייטרלי + אוספי מאמרים.
8) אוספים ומיקומי קידום
אוספים:- אוטומטי: כלל/שאילתה (למשל. 'captives מכיל' כל הקופה 'ו release_date> = עכשיו () -30d'.
- מאמר מערכת: רשימה ידנית עם סדר ותזמון.
- מיקום: מיקום קבוע על עמודים (גיבור, שורה-1-חריץ-3), A/B, מיקוד על ידי תחום/תחום שיפוט.
- תאריכים וסדרי עדיפויות: ”מתחיל _ at/ends _ at”, עדיפות התנגשות, תצוגה מקדימה לפני הפרסום.
9) ציות ומדיניות נגישות
גיאו/תחום שיפוט: רשימות לבנות/שחורות של מדינות/אזורים, אימות רישיונות/תעודות.
דירוג גיל: גיל מינימלי, אזהרות, מסתור לשווקים לא מתאימים.
נושא/סמליות: דגלים של תוכן רגיש על ידי מדינה (דת, אלכוהול וכו ').
משחק אחראי: הסתר/הורדה בדרגה עבור שחקני הגבלה/פסק זמן.
ביקורת: רישום בלתי משתנה של שינויים בזמינות עם סיבות.
10) רב-דייר ורב-אזור
כל הנתונים מסומנים "דייר _ id' ו" אזור ".
בידוד: קוורומים/קמרונות לפי אזור; תחזיות אזוריות בלבד.
הגינות: מכסות לבלוע/פרסומים לדייר כדי שהמותג ”רועש” לא יעכב את השאר.
11) מתווה אדריכלי
ספריית כתיבה-ליבה (CP): נורמליזציה + אירועים מחוץ לתיבה.
תחזיות/קריאה מודלים (EC): מדדי חיפוש, אוספים ממשיים, דלפקי פופולריות.
- Edge/CDN עבור עמודים קרים/תמונות.
- מטמונים בזיכרון לשאילתות חמות (מפתח = מסננים + עמוד + אזור).
- Ficheflags: מגלגל דירוג/כללי איסוף ללא שחרור.
12) API (שאר/GRAPHQL, דוגמאות)
מנוחה
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 (מקטע)
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/treensMs', זימון, היבטים.
- לאישיות - סמן הפעלה (RYW) ללא PII.
13) אותות וזרימת נתונים
פופולריות: גדלים בעת שיגור משחקים * דליים מזעריים * יחידות בהקרנה.
CTR/המרה: לחץ/השקה על מיקומים/אוספים.
סטטוסים תפעוליים: ספקי בריאות (RGS), זכרונות/גבולות (event stream).
מגברים שיווקיים: גורמי זמן למשחקים/קטגוריות/ספקים.
14) יכולת תצפית ו ־ SLO
מדידות ספריות:- 'catalog _ p95 _ ms',' קטלוג _ p99 _ ms', 'שגיאה _ קצב'.
- 'index _ treeness _ ms' (עיכוב פרויקט),' integry _ lag _ ms'.
- ctr ',' לחץ-להשקה ',' collection _ cassion '(% לבדוק מאוספים).
- lift _ ctr ',' lift _ conservation ',' לחקור נגד לנצל 'to.
- % יישום נכון כללי הגיאו/גיל, מספר בלוקים/שעה.
התראות: גידול של 'Ingest _ lag _ ms', הטלת CTR על אוספי מפתחות, פירוק הספק (תגיות בגיליון).
15) ביצועים והצטיידות
אסטרטגיה: שאילתות חמות - מטמון עבור 30-120 S עם מפתח על ידי מסננים; בלוקים אישיים - TTL קצר (10-30 s) או לא מטמון.
נכות: על ידי 'GameUpsered/זמינות השתנו/Place Updated' אירועים.
Pagination: מלצרים יציבים כדי לא ”לקפוץ” קלפים בעת עדכון אותות.
16) עבודה עם אמצעי התקשורת
הפוך פרופילים: גדלים/צפיפות עבור web/mobile/TV.
אופטימיזציה: WebP/AVIF, self-load, sprite/atlas עבור אריחים.
אבטחת תוכן: סריקה, סימני מים, איסור של מח "ש.
17) בדיקה
מבחני חוזה/סכימה למתאמים וAPI.
בדיקות רלוונטיות: סטים מוזהבים של שאילתות = = תוצאות/סדר צפויות.
Personalization: AUC/NDCG + מקוון A/B עם מדדים של מעקה בטיחות (בזמן משחק, מרבצים, אותות RG).
תוהו ובוהו: השפלת הספקים, בלע קוצים, אינדקס עיכובים.
18) ספרי משחק (ספרי הפעלה)
1. אינדקס לג> SLO: לעצור אוספים משניים, להגדיל את העדיפות של דירוג בלע, לפשט זמנית.
2. ספק ”אדום”: להוריד/להסתיר את המשחקים שלו, להעלות אוספים אלטרנטיביים.
3. קפיצת שגיאה של API: בדוק מטמון/גב, אפשר פסקי זמן אבטחה, להפחית את גודל הדף.
4. זמינות שגויה: להחזיר את החוק האחרון, לכלול ”רשימה לבנה” של שווקים ביקורתיים, שינויים בביקורת.
5. שחרור דירוג: rollout קנרית (5% = 25% = 50% = 100%), rollback CTR/המרה.
19) שגיאות אופייניות
ערבוב סכימות הספק חיצוניות עם מודל פנימי (אין ACL).
ההיעדר של 'as _ of/treeness' * חולק על הספרייה ”המיושנת”.
התאמה אישית שמפרה את חוקי השיפוט.
נוסחת הדירוג היחידה ללא פירוק אותות ו A/B.
עמודים גדולים ללא מטמון וקורסים = p99 ”לירות”.
כתיבה כפולה לאינדקס ו ־ OLTP במקום אירועים + תחזיות.
20) רשימת בדיקות לפני המכירה
[ ] מילון שדה נורמלי ואצ "ל לכל הספקים.
[ ] אידמפוטנט לבלוע, תיבת דואר אלקטרוני, DLQ ונסיעה מחדש.
[ ] תחזיות קטלוג ומדדי חיפוש עם SLO רענן.
[ ] דירוג מבוקר משקל, פירוק אות ו A/B.
[ ] כללי ציות (geo/age/option) וביקורת על שינויים.
[ ] רב-דייר/אזור: בידוד נתונים, הגינות, תושבות.
[ ] API עם 'as _ of', היבטים, קורסים; מטמון ונכות באירוע.
[ ] p95/p99 מיטרים, בליעה/אינדקס, CTR/המרה; התראות.
[ ] מחזות תקרית; קנרית משחררת ופישפלאגים.
[ ] מבחנים של רלוונטיות, חוזים, כאוס והאנשה.
מסקנה
מנוע הקטלוג הוא ”מנוע חיפוש + מערכת שלטון + הצגה” מעל תוכן המשחק. ACL חזק, מידע מנורמל, תחזיות לקריאה מהירה, אותות דירוג שקופים, התאמה אישית עם מדדי מעקה בטיחות ותאימות קפדנית להפוך את הקטלוג למנוף מוצר בר קיימא ומדיד - ללא הפתעות בייצור וללא פשרות עם רגולטורים.