For AI agents: a documentation index is available at /docs/llms.txt. Append .md to any page URL for markdown, or send Accept: text/markdown.
データモデル
Amplitudeでは、組織は階層構造の最上位レベルです。 組織内では、実験はAmplitudeアナリティクスが定義したプロジェクト構造に従います。すべての実験データを1つの分析プロジェクトに関連付けてください。
Amplitudeプロジェクトにはフラグ、実験、デプロイメントが含まれています。
プロジェクト
実験はAmplitudeアナリティクスと同じプロジェクトを使用しています。 ベストプラクティスとして、プロダクトごとおよび環境ごとにプロジェクトを作成してください。フラグ、実験、およびデプロイメントは単一のプロジェクト内にのみ存在するため、これらのオブジェクトは同じプロダクトについて複数のプロジェクトに複製してください。
フラグを別のプロジェクトにコピー
実験を使用して新しい機能を開発する場合、開発環境プロジェクトに実験を作成して実装を開発およびテストしてください。次に、実験を本番環境プロジェクトにコピーして、本番環境で実験を実行します。
デプロイメントは、アプリケーションで使用するためのフラグや実験のグループを提供します。各プロジェクトには、プロジェクト API キーをデプロイメントキーとして使用するデプロイメントがあります。デフォルトで使用できます。 Amplitudeはデプロイメントキーをランダムに生成します。 作成時に、Amplitudeは各実験デプロイメントに関連付けられたデプロイメントキーを割り当てます。 実験はデプロイメントキーを使用してデプロイメントを識別し、評価サーバーへのリクエストを承認します。
クライアントおよびサーバのデプロイ
デプロイは、クライアントデプロイまたはサーバデプロイのいずれかです。クライアント側のデプロイメントを使用してクライアント側の SDK を初期化し、サーバー側のデプロイメントを使用してサーバー側の SDK を初期化したり、Evaluation API へのリクエストを承認したりできます。
デプロイメント
デプロイメントは分析プロジェクトに属しており、1 つのプロジェクトに複数のデプロイメントを含めることができます。実験がバリアントを提供しているプラットフォーム(クライアント側)またはサービス(サーバー側)にちなんでデプロイメントに名前を付けます(例:android、ios、web)。デフォルトのプロジェクト API キーのデプロイメントは、始める際に役立ちます。 ただし、各プラットフォームまたはサービスに対する明示的なデプロイメントは、同じアプリケーションに対して複数のプラットフォーム間で同じAmplitudeプロジェクトを共有している大規模な組織やチームにとってより効果的です。
同じプロジェクト内のフラグと実験にデプロイメントを追加します。実験の評価サーバーがユーザーのバリアントを取得するためのリクエストを受信すると、実験はデプロイメントキーを使用して評価用に関連付けられているすべてのフラグと実験を検索します。
フラグと実験
実験は機能フラグと実験を使用して、ユーザーにさまざまな体験を提供しています。フラグキーはフラグと実験を識別します。フラグと実験は0-nのデプロイメントに関連付けられ、1-kのバリアントを含んでいます。評価モード(ローカルまたはリモート)は、フラグまたは実験がローカル評価をサポートしているかどうかを決定し、ローカルモードはフラグのターゲティング機能を制限する場合があります。
フィーチャーフラグと実験は同じ基本データモデルを共有しており、一方からもう一方へ遡及的に移行できます。最も目に見える違いはプロダクトインターフェイスにあります。実験では実験ライフサイクル全体をガイドし、成功指標を定義して分析を実行できます。フラグにはより基本的な機能が含まれており、特別な計画セクションや分析セクションは含まれていません。
フラグ
ユーザー分析を伴わない標準的な機能フラグには、フラグを使用してください。新しいフラグには、デフォルトのバリアント on が用意されています。
フラグの使用例
- ユーザーの一部(ベータ版のお客様など)に機能を展開すること。
- 行動コホートごとに異なる体験(パワーユーザーなど)。
実験
ユーザーに対する機能の実験のために実験を使用してください。新しい実験には、controlおよびtreatmentという2つのデフォルトのバリアントが用意されています。
実験のユースケース
- アプリケーションの新機能についてA/Bテストを実行します。
- サーバー上で複数のレコメンデーションアルゴリズムを実験してください。
バリエーション
バリアントとは、カスタマーのために変更する実験の一部です。たとえば、コール・トゥ・アクション(CTA)ボタンのテキストを実験すると、テキストの各バージョンはバリアントになります。バリエーションはフラグ内や実験内に存在することができます。 単一のバリアントを単一のフラグに関連付けることもできますし、複数のバリアントをより大規模な実験に関連付けることもできます。 実験には、実験の仮説を検証できるようにバリエーションが必要です。
SDK の使用
SDK または Evaluation API からバリアントにアクセスする場合、value と payload のみが使用できます。
| プロパティ | 要件 | 概要 |
|---|---|---|
value | 必須 | 計装のバリアントを識別する文字列です。 Amplitude は、SDK または評価 API がバリアントにアクセスするときに値文字列が同等かどうかをチェックします。 フォーマットは lowercase、kebab-case、または snake_case である必要があります。 |
payload | オプション | バリアントを使用して任意のデータを送信するための動的 JSON ペイロード。 たとえば、アプリケーション内のコンポーネントの色を変更するために 16 進コードを送信できます。 |
name | オプション | バリアントの名前。 名前は value と似ていますが、フォーマットに関する制限はありません。また、コードベースのインストルメンテーションを壊すことなく変更できます。 |
description | オプション | バリアントの詳細な説明です。 この説明を使用して、バリエーションのエクスペリエンスをより詳細に表示したときにユーザーが体験する内容を説明してください。 |
ユーザー
実験ユーザーはAmplitudeアナリティクス内のユーザーにマップされます。 フラグ設定に加えて、ユーザーも評価への入力要素となります。フラグと実験ターゲティングルールはユーザープロパティにアクセスします。
ユーザーを、リモート評価のリクエストfetchを通じて評価に渡すか、ローカル評価のためにevaluate関数に直接渡します。
評価を成功させるには、ユーザーIDまたはデバイスIDのいずれかをユーザーオブジェクトに含めます。 たとえば、ユーザー ID とデバイス ID の両方が null、空白、または欠落している場合、リモート評価は 400 エラーを返します。
| プロパティ | 型 | 説明 || --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- | | user_id | string | ユーザー ID はユーザーの主要な識別子です。 この値は通常、システム内のユーザーの ID です。 実験は、リモート評価の前のエンリッチメント時にAmplitude IDを解決する際、ユーザーIDを使用します。この場合、Amplitude IDがデフォルトのバケットキーとなります。 | | device_id| string| デバイス ID は、ユーザーの二次識別子です。 通常、アナリティクス SDK はクライアント側でデバイス ID をランダムに生成するか、サーバー側の Cookie に設定します。 また、実験はリモート評価の前にエンリッチメント時にAmplitude IDを解決するときにもデバイスIDを使用します。この場合、Amplitude IDはデフォルトのバケットキーです。 | | user_properties| object| ローカルまたはリモートの評価中にユーザーを評価するときに使用されるカスタムプロパティのオプションオブジェクト。 | | groups| object| ベータ。 このユーザーに関連付けられているグループをリストするオプションのオブジェクト。 形式はオブジェクトです。キーはグループタイプで、値はグループ値文字列の配列です(例:{"org name":["Amplitude"]})。 | | group_properties| objectベータ。このユーザーに関連付けられているグループプロパティをリストするオプションのオブジェクト。形式は、キーがグループタイプであり、値がオブジェクト(キーがグループ値であり、値がプロパティオブジェクト)であるネストされたオブジェクトです(例:{"org name":{"Amplitude":{"plan":"enterprise"}}})。 |
この機能は早期アクセスです。 この機能は今後も進化を続ける可能性があります。 このドキュメントにはまだ最新の更新情報が反映されていない可能性があります。
組織がアカウントアドオンを購入している場合、ユーザーではなくグループに対してバケット設定と分析を実行できます。アクセス権を取得するには、担当者に連絡してください。
フェッチリクエストと一緒に送信されるときは、ユーザーと一緒にグループを含めるようにしてください(推奨)。 または、Group Identify API の group identify 呼び出し、あるいは setGroup()分析 SDK からの呼び出しを使用して、ユーザーとグループを識別します。
すべての実験SDKはグループをサポートしています。次の表に、最小バージョンを示します。
| SDK | 最小バージョン |
|---|---|
| Android | 1.9.0 |
| iOS | 1.10.0 |
| React Native | 1.1.0 |
| JavaScript | 1.5.6 |
| ルビー | 1.4.0 |
| Go | 1.7.0 |
| Python | 1.3.0 |
| JVM | 1.3.0 |
| ノード | 1.5.0 |
| PHP | 1.0.0 |
完全なユーザー定義
これは役に立ちましたか?