この記事のテーマ:* 実験バリアントにランダムにユーザーを割り当てるために、Amplitude Experimentが使用するプロセスを理解する |
Amplitude Experimentは多様な決定的ランダム化を使用します。このランダム化では、Experiment IDが使用されます。これは、Experimentが各ユーザー(デバイスIDとユーザーIDに基づく)、およびフラグのバケティングソルトに割り当てるものです。
このランダム化モデルは2次元です: Amplitude Experimentは、「bucketingSalt/amplitude_id」
のmurmur3ハッシュを実行します。また、そのハッシュを使用して、特定のユーザーがバリアントを割り当てるかどうかをまず決定し、2番目に、ユーザーにどのバリアントが割り当てられるかを決定します。
最初のステージ(つまり、初期割り当て)では、Experimentは、mod(murmur3_x86_32("bucketingSalt/id", 100)
の値に基づいて、ユーザーを100バケットに分割します。返されたバケットがロールアウト率未満の場合、ユーザーは実験にバケットされます。この場合、ユーザーはバリアントを割り当てられます。ユーザーが実験にバケットをかけていない場合は、フォールバックバリアントが表示されます。
第2ステージ(バリエーション割り当て)では、Experimentは、実験にバケットされたすべてのユーザーを取り上げ、floor(murmur3_x86_32("bucketingSalt/id"), 100)
の値に従って、各バリアントを割り当てます。
バリアントは、ウェイトに基づいて、0から42949672の値に関連付けられます。たとえば、2バリアント実験では、Variant Aにウェイト1があり、Variant Bにウェイト1がある状態で(つまり、各バリアントは実験のトラフィックの50%を受け取る)、ハッシュ値が0から21474835の場合、ユーザーはバリアントAに割り当てられます。その値が21474836から42949672の場合は、ユーザーはバリアントBに割り当てられます。
Need help? Contact Support
Visit Amplitude.com
Have a look at the Amplitude Blog
Learn more at Amplitude Academy
© 2025 Amplitude, Inc. All rights reserved. Amplitude is a registered trademark of Amplitude, Inc.