GH GambleHub

コンテンツカタログエンジン

カタログエンジンは、プロバイダ(RGS)からメタデータを収集および正規化し、検索/フィルタ/ランキングを提供し、管轄とブランドによるアクセシビリティルールを適用し、パーソナライゼーションとプロモーションの配置をミックスし、予測可能なSLOでAPIを介して迅速な応答を提供します。


1)目標と原則

高速読み取り:ディレクトリ/検索リクエストごとにp95 ≤ 100-150 ms。
真実と新鮮さ:重要な属性(可用性、ジャックポット、プロバイダのステータス)の関連性を保証します。
柔軟性:リリースなしのエディトリアルコレクションとプロモーションスロット。
コンプライアンス:地域/年齢/コンテンツルール、ライセンス、責任あるプレイ制限。
マルチテナント/リージョン:ブランドアイソレーションとデータ常駐コンプライアンス。
Observability: Outing Quality Metrics、 A/B、 Game Conversion/Bet。


2)ドメインモデル(最小)

エンティティ:
  • ゲームはプロバイダのゲーム/製品です。
  • プロバイダ-RGS/studio。
  • バリアント-1つのゲームのバリアント(ボラティリティ、ライン、制限、サーバー)。
  • コレクション-編集/自動選択(例:「New Items'、」 Jackpots')。
  • 配置-ページ上の固定位置/バナー/タイル/スロット内。
  • 機能/機能-ゲームの属性(フリースピン、購入機能、ジャックポット)。
  • 管轄規則-アクセシビリティ/制限規則。
  • シグナル-行動/運用シグナル(人気、CTR、収益)。
  • 資産-デバイス/密度のオプションを備えたメディア(アイコン、ポスター、デモビデオ)。

キー:'game_id' (stable internal、 provider_game_id)、 'tenant_id'、 'region'、 'locale'と等しくない。


3)摂取と正規化

コンベヤー:

1.ソースアダプタ(プラー):RGS/スタジオ(ディレクトリ、機能、RTP、タグ)との統合。

2.Sanitize&Map-外部フィールドを単一の辞書(ACL)にマップし、検証し、重複除外します。

3.豊かな:ローカライズ、カテゴリ、セマンティックタグ、年齢制限評価。

4.中程度:市場別のコンテンツフラグ(NSFW/宗教シンボル/機密トピック)。

5.公開:「GameUpserted/ProviderStatusChanged」イベント→カタログ投影。

Idempotence: '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'。
フィルタ:管轄/地域/言語/デバイス/年齢、アクティブ/認定のみ。
同義語/ステミング:ユーザー用語(「books」、 「fruits'、」 balls')のマップ。
Typos:長さ制限付きの許容検索(距離≤ 1-2を編集)。


6)ランキング: 信号および方式

シグナル(例):
  • 新鮮さ(リリースからの時間)。
  • 人口(開始/時間、ユニークなプレーヤー)。
  • 品質(カタログからゲームまでCTR、 1/7日を保持)。
  • ビジネス(マーケティングブースト、ディール、プロモーションスロット)。
  • コンプライアンス(必要に応じて、機密コンテンツのソフトダウングレード)。
  • プレーヤーフィット(プロファイル/好みの互換性)。
組み合わせ(コンセプト):

score = w1freshness + w2popularity + w3ctr + w4player_fit + w5boost

重量は構成/実験によって制御されます;[0;に正規化されたすべての信号;1].


7)パーソナライゼーション

短いメモリ:最近の発売とジャンル、RYW-ユーザーはすぐに新鮮なアクションを見ます。
長い記憶:ゲームおよびプレーヤーのプロフィールの埋め込み(ゲームのジャンル/ボラティリティ/セッション)。
セキュリティ:パーソナライゼーションは、管轄/年齢のルールに違反することはありません。
フォールバック:信号が少ない場合-ニュートラルランキング+編集コレクション。


8)コレクションとプロモーションの配置

コレクション:
  • Auto:ルール/クエリ(例:'capabilities'には'jackpot' AND release_date>=NOW()-30d')が含まれています。
  • 編集:注文とタイミングの手動リスト。
  • 配置:ページ上の固定位置(ヒーロー、行1スロット3)、 A/B、セグメント/管轄によるターゲティング。
  • 日付と優先順位:'starts_at/ends_at'、衝突優先度、公開前のプレビュー。

9)コンプライアンスとアクセシビリティポリシー

地理/管轄:国/地域の白/黒のリスト、ライセンス/証明書の検証。
年齢評価:最低年齢、警告、互換性のない市場のための非表示。
主題/象徴:国(宗教、アルコールなど)による機密性の高いコンテンツの旗。
責任あるプレイ:制限/タイムアウトプレーヤーを非表示/降格します。
監査:理由のある可用性の変更の不変のログ。


10)複数のテナントおよび複数の地域

すべてのデータは'tenant_id'と'region'にマークされています。
分離:地域ごとのquorums/vaults;クロスリージョナルプロジェクション-集計のみ。
公平性:「騒々しい」ブランドが残りを遅らせないようにテナントごとのingest/publicationsのためのクォータ。


11)建築の概要

書き込みコアディレクトリ(CP):正規化+トランザクションアウトボックスイベント。
予測/読み取りモデル(EC):検索インデックス、実体化コレクション、人気カウンタ。

キャッシュレイヤー:
  • コールドページ/画像のエッジ/CDN。
  • ホットクエリのインメモリキャッシュ(key=filters+page+tenant+region)。
  • 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'(%collectionsからチェックアウト)。
パーソナライゼーション:
  • 'lift_ctr'、 'lift_conversion'、 「explore vs exploit」
コンプライアンス:
  • %正しく適用されたgeo/ageルール、ブロック数/時間。

アラート:'ingest_lag_ms'の増加、主要なコレクションのCTRの低下、プロバイダの劣化(問題のタグ)。


15)パフォーマンスとキャッシュ

戦略:ホットクエリ-フィルターによってキーを持つ30-120秒のキャッシュ。パーソナルブロック-短いTTL (10-30秒)またはキャッシュなし。
Disability: 'GameUpserted/AvailabilityChanged/PlacementUpdated'イベント。
ページネーション:信号を更新するときにカードを「ジャンプ」しないように安定したカーソル。


16)メディアでの作業

プロファイルのレンダリング:Web/モバイル/TVのサイズ/密度。
最適化:WebP/AVIF、遅延負荷、タイル用のスプライト/アトラス。
コンテンツセキュリティ:スキャン、透かし、インラインPII禁止。


17)テスト

アダプターとAPIの契約/スキーマテスト。
関連テスト:クエリのゴールデンセット→予想される結果/順序。
パーソナライゼーション:オフラインAUC/NDCG+オンラインA/Bガードレールメトリック(ゲーム内の時間、預金、RG信号)。
カオス:プロバイダの劣化、スパイクの取り込み、インデックス作成の遅延。


18)プレイブック(ランブック)

1.インデックスラグ>SLO:セカンダリコレクションを停止し、インジェストの優先度を高め、一時的にランキングを簡素化します。
2.プロバイダー「赤」:自分のゲームを下げる/非表示、代替コレクションを上げます。
3.APIエラージャンプ:キャッシュ/バックエンドをチェックし、セキュリティタイムアウトを有効にし、ページサイズを縮小します。
4.誤った可用性:最後のルールをロールバックし、重要な市場の「ホワイトリスト」、監査の変更を含める。
5.ランキングリリース:カナリアロールアウト(5%→25%→50%→100%)、 CTR/コンバージョンロールバック。


19)典型的なエラー

外部プロバイダスキーマと内部モデル(ACLなし)をミックスします。
'as_of/freshness'→「outdated」ディレクトリに関する論争。
管轄規則に違反するパーソナライゼーション。
信号とA/Bの分解のない唯一の「魔法」ランキング式。
キャッシュとカーソルなしの大きなページ→p99「撮影」。
イベント+投影の代わりにインデックスとOLTPへの二重書き込み。


20)売り上げ前のチェックリスト

  • すべてのプロバイダの正規化フィールド辞書とACL。
  • Idempotent ingest、 outbox/inbox、 DLQ、 redrive。
  • 新鮮さSLOのカタログ投影と検索インデックス。
  • 重量管理されたランキング、信号の分解およびA/B。
  • コンプライアンスルール(地理/年齢/トピック)と変更の監査。
  • マルチテナント/リージョン:データ分離、公平性、居住。
  • 'as_of'、ファセット、カーソルを持つAPI;イベントごとにキャッシュと障害。
  • p95/p99メトリクス、ingest/indexing、 CTR/conversion;警告します。
  • インシデントプレイブック;カナリアリリースとficheflags。
  • 関連性、契約、混乱、パーソナライゼーションのテスト。

おわりに

カタログエンジンは、ゲームコンテンツ上の「検索エンジン+ルールシステム+ショーケース」です。強力なACL、正規化されたデータ、迅速な読み取りのための予測、透明なランキングシグナル、ガードレールメトリックによるパーソナライゼーション、および厳格なコンプライアンスにより、カタログは生産に驚くことなく、規制当局との妥協なしに、持続可能で測定可能な製品レバーに変わります。

Contact

お問い合わせ

ご質問やサポートが必要な場合はお気軽にご連絡ください。いつでもお手伝いします!

統合を開始

Email は 必須。Telegram または WhatsApp は 任意

お名前 任意
Email 任意
件名 任意
メッセージ 任意
Telegram 任意
@
Telegram を入力いただいた場合、Email に加えてそちらにもご連絡します。
WhatsApp 任意
形式:+国番号と電話番号(例:+81XXXXXXXXX)。

ボタンを押すことで、データ処理に同意したものとみなされます。