スコアリングルールのA/Bテスト
得点はあらゆるゲーミフィケーションの中心です。ポイントがどのようにカウントされるかは、プレイヤーの行動、参加構造、経済学(ARPPU、ボーナスボーン)を決定します。以下は、新しいポイントルールを有効にテストし、メトリックの成長がアーティファクトではなく実際であることを確認するための実用的なレシピです。
1)私達がテストしている何を丁度
ルールの例:- ベット金額:€1ベットごとに1ポイント。
- 勝利/ベット乗数:ポイント=⌊乗数× k ⌋、ベットあたりのキャップ。
- ハイブリッド:ターンオーバーあたりのポイント+「シリーズ」のブースト(連続したNスピン)、毎分/時のキャップ。
- ミッション:複雑さを増すタスク(T1...Tn)を完了するためのポイントを修正します。
仮説(例):"乗数+キャップモデルは、Net ARPPU(賞金/ボーナス後)を悪化させることなく、participation_netと完了率を増加させます。
2)実験単位とランダム化
単位:ユーザー(ないセッション、ない装置)。
配分:固定塩が付いている静的なハッシュ(user_id→bucket);A/B/Cのための50/50または33/33/33の分数。
層別(推奨):支払者ステータス(新しい支払い/再払い/非払い)、プラットフォーム、地理。
Sticky-assignment:ユーザーはテスト中に常に同じルールを見ます。
Test SRM (Sample Ratio Mismatch)-グループの実際のシェアを予想されるシェア(chi-square)に対して毎日チェックします。SRM-トラフィックリーク信号、誤ったフィルタリング、バグ。
3)指標と「ポイントの漏斗」
アクティビティと参加
リーチ:イベントを見た人を共有します。
Participation_gross:入力/オプション。
Participation_net:進捗/理想を開始しました。
完了:完了/開始。
品質とお金
Δ DAU/WAUの粘着性(DAU/WAU)。
セッションごとのAvg Bet、 Avg Betサイズ。
ARPPU (net)=ARPPU − (Prize+Bonus Cost per payer)。
Avgの沈殿物、支払の共有。
Net Uplift:(追加収益)−(賞金+ボーナス+操作+不正流出)。
Gardereils(ガーデレイ
1,000ユーザーの苦情/テクニカルサポート、KYC拒否、異常な賭けパターン、RGフラグ(制限、自己排除)。
4)期間、季節性および目新しさ
最低2つの完全なビジネス周期(例えば。週末をキャプチャする2週間)。
ノベルティ効果を考えてみましょう:最初の48-72時間のスプラッシュ。フェーズでの修正と分析(D0-D2、 D3-D7、 D8+)。
大きなプロモーションでクロスしたり、グループで「等しいノイズ」を計画したりしないでください。
5)サンプリング容量と体積(計算例)
目標:平均「ユーザーごとのポイント」(またはNet ARPPU)によってΔの違いを検出する。
2サンプルのtテストの公式(等しくグループで):[
n_{\text{na group}} =\frac {2、 (z_{1-\alpha/2}+z_{1-\beta})^2 、\sigma^2} {\Delta^2}
]
例: Δ=5点、σ=120、 α=0をキャッチします。05(両面)、力80% (β=0。2).
(z_{1-α/2}=1{,}96)、 (z_{1-β}=0{,}84)→和2。8→スクエア7。84.
(\sigma^2=14,400)。
(n =\frac {2\times 7{、}84\times 14,400}{25 }\approx\frac {225,792}{25 }\approx 9,032)
6)分散の減少: テストを「より安く」させます"
CUPED:テスト前の共変量の回帰調整(例えば、過去1週間のポイント/レート)。
共変量:payer-flag、売上高、活動、プラットフォーム、地理のログ変換。
エラークラスタリング:ユーザーレベルで(内部で繰り返しセッション)。
7)干渉および「海峡」
ポイントルールは、テスト参加者だけではなく、
社会比較(一般的なリーダーボード)→「スピルオーバー」。
共有ジャックポット/共同ミッション→クロスエフェクト。
ソリューション:- グループ別のリーダーボードまたはポイントの非表示の正規化。
- トラフィック/ジオクラスタによるクラスタのランダム化(より高価ですがクリーン)。
- プロトコル単位(ITT)+敏感なアッセイ。
8)規則のAntifraudそしてmouthfuls
メガネの変化は最適化を刺激します:マイクロベット、botovodstvo、「メガネファーム」。
最低の保護:- キャップポイント/分/時/日と1ベットのために。
- ベットの最小ボラティリティ(「理想的な」シーケンスの禁止)。
- ヘッドレス/繰り返し指紋の検出、プロキシ。
- 大きな賞品+KYCの遅延検証。
- 分析:「ポイント/ベット」と「ポイント/分」分布を比較し、尾を探します。
9)イベントとデータスキーム(最小)
イベント:- 'session_start {user_id、 ts、 platform}'
- 'event_view {user_id、 event_id、 ts}'
- 'event_join {user_id、 event_id、 ts}'
- 'points_award {user_id、 event_id、 rule_id、量、ソース、ts}'
- 'mission_progress {user_id、 mission_id、 step、 value、 ts}'
- 'mission_complete {user_id、 mission_id、 ts}'
- 'bet {user_id、 game_id、 bet、 win、 ts}'
- 'deposit {user_id、量、ts}'
- 'rules {rule_id、 name、 params、 caps_minute、 caps_hour、 caps_day、 version}'
- 'assignments {user_id、 test_id、グループ、assigned_at}'
10)分析のためのSQLスケッチ
SRMチェック(グループ割り当て):SQL
SELECTグループ、COUNT()ユーザーとして
FROM割り当て
WHERE test_id=:テスト
グループ別にグループ化する。
--さらにカイ二乗と予想される分数
グループによる参加/完了:
SQL
対象となるAS(
ユーザーからuser_idを選択
WHERE last_active_at>=:start-INTERVAL '14 day'
)、結合されたAS(
user_idから特定のevent_joinを選択してください
WHERE event_id=:event AND ts BETWEEN: start AND: end
)、開始したAS(
user_idから特定のmission_progressを選択してください
WHERE TS BETWEEN: START AND: END AND mission_id IN(:ミッション)
)、完了したAS(
user_idから特定のmission_completeを選択してください
WHERE TS BETWEEN: START AND: END AND mission_id IN(:ミッション)
)
SELECT a。 group、 COUNT (DISTINCT j。 (DISTINCT e。 ) AS 、 COUNT (DISTINCT s。 (DISTINCT e。 ) AS 、 COUNT (DISTINCT c。 AS完了
FROM対象e
JOIN割り当てUSING (user_id)
j USINGに参加しました(user_id)
LEFT JOINが使用を開始しました(user_id)
左の結合はcを使用して完了しました(user_id)
WHERE a。 test_id=:テスト
GROUP BY。グループ;
Net ARPPUと賞金/ボーナスの価値:
SQL
支払者を使って(
支払いから明確なuser_idを選択
WHERE TS BETWEEN:開始と終了
)、rev AS(
SELECT user_id、 SUM (ggr) AS ggr
FROM収益
WHERE TS BETWEEN:開始と終了
user_idでグループ化
)、コストAS(
SELECT user_id、 SUM(賞金+ボーナス)ASコスト
FROM promo_costs
WHERE TS BETWEEN:開始と終了
user_idでグループ化
)
SELECT。 group、 AVG (COALESCE (r。ggr、 0)-COALESCE (c。cost、 0)) FILTER (WHERE p。 user_id IS NOT NULL) AS net_arppu
FROM割り当てa
LEFT JOIN payors pを使用して(user_id)
LEFT JOIN REV r USING (user_id)
左の参加費用cを使用して(user_id)
WHERE a。 test_id=:テスト
GROUP BY。グループ;
CAPPED(例):
SQL
--pre_value:ガラス/前試験収益;値:テスト中
SELECTグループ、AVG (value-theta pre_value) AS cuped_mean
FROM(から)
SELECT。グループ、x.user_id、 x。value、 x.pre_value、 (SELECT COVAR_SAMP(値、pre_value)/VAR_SAMP (pre_value)
FROM x) ASシータ
FROM割り当てa
JOIN x ON x.user_id=a。 user_id
WHERE a。 test_id=:テスト
)t
グループ別にグループ化する。
11)部分的な効果と異質性
HETエフェクトを確認します:- 初心者とコア、低価格、高価格、異なるプラットフォーム/地理。
- 時々新しいメガネの式は、クジラを変更せずに中核を「ライトアップ」-これは望ましい結果です。
- 「p-ハッキング」をキャッチしないようにセグメントを事前登録します。
12)頻繁なトラップ
1.すべてのグループの一般的なリーダーボード→干渉。
2.テスト中に賞金構造を変更する→比類のない。
3.メガネのマイクロベッティング→無効なアップリフト。
4.ETL→バイアス推定におけるSRMとフローティングフィルタ。
5.賞品/ボーナスを控除せずに「汚い」ARPPUに依存します。
6.正しい連続統計のない変動による早期停止。
13)ベイズvs周波数とシーケンシャル決定
フレームワーク:特に時間をかけてモニタリングする場合は、ベイズのアプローチ(メトリックの後方差、確率「BがAより優れている」)を使用できます。
注意:メガネのルールの盗賊は、最初の検証ではなく、動作の段階で-確認されたアップリフトの後に適切です。
14)責任あるプレーとコンプライアンス
透明なルールとキャップ:プレイヤーはポイントを獲得する方法を理解する必要があります。
活動と預金の制限、「一時停止」とRGプロンプト。
遊びのスタイルのための隠された「ペナルティ」はありません。
15)ミニケース(合成)
コンテキスト:ウィークリーイベント、A=「€1ベットのポイント」、B=「win/bet乗数によるポイント、cap=50/ベット」。
サイズ:支払者の状態によって層別にされる2 × 10,000人のユーザー。SRM-約。
結果:- Participation_net: A 17,3%→B 22,1%(+4,8%。п.).
- 完了:A 38,9%→B 44,0%(+5,1%。п.).
- ネットARPPU: A €41。2→B €43。5 (+ €2.3)賞金+ボーナス≈ €6。4(変更なし)。
- Complaints/1k:変更されていません。詐欺フラグはキャップのため0,3 ppです。
- 結論:ルールB-勝者;私たちは賞品の「ロングテール」でスケールし、マウスガードを保存します。
16) ポイントA/B起動チェックリスト
- Unit=user、 sticky-assignment、 stratification。
- 干渉を除去するために別々のリードボード/正規化。
- メガネ、アンチボット信号、主要な勝者へのKYCのための明確な帽子。
- 仮説と指標(プライマリ/セカンダリ/ガードレール)の事前登録。
- 容量と期間の計画、季節性を考慮に入れました。
- 接続されたCUPED/共変量、パイプラインSRMアラート。
- 「Reach→Participation→Progress→Complete→Value」。
- レポート:賞金/ボーナス、テール後効果の後のお金の増加。
スコアリングルールは行動のレバーです。正しく設計されたA/Bテスト(SRMなし、不正防止と共変)により、プレイヤーの信頼とキャンペーンの経済性を維持しながら、安全に参加、完了、Net ARPPUを増やすことができます。