Amplitude Experimentのスティッキーバケット

スティッキーバケットは、実験のターゲット基準、パーセンテージのロールアウト、またはロールアウトの重み付けが変更された場合も、同じバリアントを表示し続けることを保証します。Amplitude Experimentは、一貫したバケッティングを使用しています。これにより、何も変更しない限り、ユーザーは元のバリアントと同じバケットに留まります。

**注:**Amplitude Experimentは、ランダムハッシュアルゴリズムではなく、決定論的ハッシュアルゴリズムを使用しています。

スティッキーバケットがオンになっていると、Amplitude Experimentは、ターゲット条件または割り当てパーセントに基づくユーザー評価を行いません。その代わりに、ユーザーが最後に見たバリアントが引き続き表示されます。評価が行われる順序について、詳しくは評価フローチャートを参照してください。

スティッキーバケットは、バリアントジャンピングに対する防御メカニズムとしてよく使用されます。しかし、スティッキーバケットを有効にするだけでは、バリアントジャンピングが起こらないことが保証されるわけではありません。実験にログアウトエクスペリエンスとログインエクスペリエンスの両方が含まれている場合でも、発生する可能性があります。ユーザーがログアウトするときに、ログイン時とは異なるAmplitude IDになる場合があります。

スティッキーバケットをオンまたはオフにするには、[Configure](設定)タブに移動し、[Advanced Settings](詳細設定)でスティッキーバケットトグルを探します。

image5.png

注:「オフ」になっているバリアントに対してスティッキーバケットを使用することはできません。

スティッキーバケットの仕組み

スティッキーバケットが有効になると、Amplitude Experimentは、ユーザーが実験に関連したユーザープロパティ値をすでに持っているかどうかをチェックします。持っている場合は、ユーザーにユーザープロパティの現在値が割り当てられます。それ以外の場合は、ユーザーは再評価されます。

**注:**数秒以内に2つ以上の実験の割り当てが発生した場合、Amplitude Experimentはスティッキーバケットを適用する時間が無い場合があります。

スティッキーバケットの使用が適しているときと、そうでないとき

スティッキーバケットの使用が適しているとき:

  • **ターゲットとしているユーザープロパティが変更された場合も、**ユーザーに一貫したエクスペリエンスを提供したい場合。例えば、米国のみで実験を行っている場合、スティッキーバケットを有効にすると、ユーザーが国外に旅行した場合にも、同じバリアントが確実に表示されます。
  • 例えば、ユーザーの半分にロールアウトしたけれども、対象グループの結果がよくない実験のロールアウトの割合を減少させたいと考えたとします。しかし、対象または管理のどちらのバリアントも表示したことがないグループにユーザーを移動させることもしたくありません。スティッキーバケットを有効にすると、ロールアウトの割合を変更した後でも、ユーザーは割り当てられたグループに保持されます。
  • ユーザーのターゲティングを特定の期間(例えば2週間)行った後で、新規ユーザーのターゲティングを中止し、すでにバケットに割り当てられているユーザーを維持したい場合もあります。(特定の取り扱いがユーザーの行動に及ぼす長期的な影響を研究したいとき、または1つ以上の実験で行われた取り扱いの性質を確かめたいときに、これを行う場合があります。)実験の開始時に、50/50に分割して、スティッキーバケットを有効にします。期間が過ぎると、ロールアウトの割合をゼロに変更します。
  • 失敗した実験を終了させたいけれども、特定のエクスペリエンスのバケットに割り当てられたユーザーのエクスペリエンスをそのまま継続したい場合は、スティッキーバケットを有効にし、ロールアウトの割合をゼロに設定します。

スティッキーバケットの使用が適していない場合:

  • ターゲットのユーザープロパティが変更されるにつれて、ユーザーのエクスペリエンスを変更したい。前と同じ例で、今度は逆に、米国で実験を行っていて、ユーザーが海外旅行をしているときには、同じエクスペリエンスを提供したくない場合があります。特定の国でアプリの一部の機能を有効化できない法的理由がある、アプリのUIの表示方法に影響を与えるローカライゼーションの問題がある、などの可能性があります。
  • 実験が、報酬の獲得によって無料ユーザーを有料ユーザーへと導くことを目的としている場合、これらのユーザーがコンバージョンすると、報酬を提供する必要はなくなります。しかし、スティッキーバケットが有効になっている場合、これらのユーザーは、有料にアップグレードした後も、無料エクスペリエンスを受け取ることになります。
  • 割引付与の合間に**「クールダウン」の期間を適用**したい場合。各ユーザーの割引の頻度を7日ごとに1回に制限したい場合は、ターゲット基準に7日間のフィルタを追加できます。ユーザーがその期間内に割引を受けた場合、フラグが[off]になります。スティッキーバケットが有効になっていると、これが発生せず、止めたくてもユーザーが別の割引を利用できる状態になります。
  • バリアントをロールアウトまたはロールバックする場合。スティッキーバケットが有効なときにトラフィックの割り当てを変更すると、実際は、古い割り当てと新しい割り当ての加重平均を得ることになります(変更以前にバケットに割り当てられていたユーザーがバケットにとどまるため)。希望する割り当てで実験できるまでに、しばらく時間がかかってしまいます。

網羅的なリストを意図したものではないことに注意してください。スティッキーバケットがオンかオフかにかかわらず、結果が同じになるケースもあります。例として、ホームページを表示する全員をターゲットにしている実験で、実験の実行中に実験の調整をまったく行わない場合があります。

スティッキーバケットが特定のユーザーに対して有効になっているかどうかを確認する

ユーザーがスティッキーバケットの対象かどうかを確認するには、イベントストリームでExperiment Assignment(実験割り当て)イベントを確認します。(これを行うことができるのは、GovernまたはDataでExperiment Assignmentイベントをブロックしていない場合のみです。)関心のある実験フラグキーに対応する「.details」ユーザープロパティを見つけます。これは、評価されたフラグのバージョンと、どのターゲットルールがユーザーに適用されるかを示します。これは、割り当ての問題をデバッグするのにも役立ちます。

image2.png

この例では、デバイスファミリーがiOSではない(この場合は、iOS以外にまったく対応していなかった)ため、ユーザーのlp-app-downloadsフラグにoffが割り当てられました。また、これが21番目のバージョンのフラグであり、適用されるルール名はnon-iOS users(iOS以外のユーザー)で、ユーザーが最初のルールベースのターゲットフィルタに該当しなかったため、2番目のフィルタに行ったことがわかります。

image3.png

この例では、スティッキーバケットが有効になり、ユーザーはsignup-ux-updates(サインアップUXの更新)フラグの14番目のバージョンのバケットに割り当てられ、phone-number-removed(電話番号削除)バリアントが提供されました。フラグバージョンがあると、フラグが変更されたときにデバッグすることができます。(割り当てイベントはそのプロジェクト内のすべてのアクティブフラグの評価を表示し、露出イベントはフラグごとに表示されます。)関心のあるフラグに対応するイベントプロパティが表示されない場合は、「Experiment Environment Name」フィールドをチェックし、フラグが属するデプロイメントと一致していることを確認します。

その他の資料

Interpret the cumulative exposures graph in Amplitude Experiment(Amplitude Experimentで累積露出グラフを解釈する)

Local evaluation targeting capabilities(ローカル評価ターゲット機能)

Evaluation implementation(評価の実施)

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.