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.
実験のクイックスタート
実験はワークフロー主導型の行動実験プラットフォームで、テスト用のさまざまな機能やWebサイトの作成を高速化します。
実験を使用すると、以下の方法でユニークなユーザー向けにプロダクト体験を変更および設定できます。
- プロダクトの実験: 実験やA/Bテストを実施して新規ユーザーをオンボーディングしたり、チェックアウト体験におけるフリクションを減らしたり、新機能を展開したりできます。
- プログレッシブな機能提供: ベータテスター、ユーザーの割合、または特定のターゲットユーザー向けに新機能を事前に計画および準備します。
- 動的な製品内体験: カスタム体験を大規模にデプロイおよび適応させます。
- ウェブ実験: 自社のウェブサイト上で直接A/Bテストを実施します。
実験は、機能実験またはウェブ実験のいずれかによる実験をサポートしています。
- Feature Experimentはフィーチャーフラグを通して実験を実行します。機能フラグとは、コードを変更することなく製品の体験を変更できるスイッチです。
- ウェブ実験はビジュアルエディタを通じて実験を実行します。ビジュアルエディタは、既存のウェブサイト上にダイナミックでカスタマイズ可能なレイヤーを配置します。ビジュアルエディタを使用すると、ウェブサイトの任意の要素を、サイトの基盤となるコードや構造を変更することなくカスタマイズできます。
各タイプの実験のユースケースについての詳細は、「機能とウェブ実験のユースケース」を参照してください。
このページでは、クイックスタートを機能実験とウェブ実験に分けています。設定したい実験タイプに対応するタブを選択します。
このクイックスタートガイドには、実験を実装するために必要な基本情報のみが含まれています。実験に関するドキュメントのセット全体を確認して、プロダクトの複雑さを完全に理解してください。
実験と機能フラグは、Amplitude実験 SDKまたはREST APIを使用してAmplitude実験と通信します。
実験の設定は、以下の手順を含む複数の段階にわたるプロセスです。
- SDK とデプロイメントをインストールして設定します。
- 機能フラグを作成します。
- デプロイメントを選択し、ペイロードを作成します。
- バリエーションを作成し、ペイロードを送信します。
- 実験を設計する。
始める前に
実験の使用を開始する前に:
- Experiment SDK への開発者書き込みアクセス権を持っていることを確認してください。
- 実験機能へのアクセス権があることを確認してください。
- 機能フラグを統合するアプリケーションへの開発者アクセス権を持っていることを確認してください。
SDK の設定
実験クライアントと一緒にAmplitude SDKをインストールします。 例えば:
npm install @amplitude/analytics-browser @amplitude/experiment-js-client
import * as amplitude from "@amplitude/analytics-browser";
import { Experiment } from "@amplitude/experiment-js-client";
amplitude.init("AMPLITUDE_API_KEY");
const experiment = Experiment.initialize("DEPLOYMENT_API_KEY");
await experiment.start();
デプロイメントのセットアップ
実験はAmplitudeアナリティクスと同じプロジェクトを使用しています。 ベストプラクティスとして、プロダクトごとと環境ごとにプロジェクトを1つ作成してください。 フラグ、実験、およびデプロイメントは単一のプロジェクト内にのみ存在するため、これらのオブジェクトを同じプロダクト内の複数のプロジェクトに複製する必要があります。
Amplitude実験では、デプロイメントはアプリケーションで使用するためのフラグや実験のグループを提供します。 各プロジェクトには、デフォルトで使用できるプロジェクトAPIキーをデプロイキーとして使用するデプロイメントがあります。作成時に、実験はランダムに生成されたデプロイメントキーを各デプロイメントに割り当てます。実験はデプロイメントキーを使用してデプロイメントを識別し、評価サーバーへのリクエストを承認します。
クライアントとサーバのデプロイメント
デプロイメントには、クライアントデプロイメントとサーバデプロイメントの2種類があります。クライアント側のデプロイメントを使用してクライアント側の SDK を初期化します。サーバー側のデプロイメントを使用してサーバー側の SDK を初期化したり、評価 API へのリクエストを承認したりします。
デプロイメントはAmplitudeアナリティクスプロジェクトに属しており、1つのプロジェクトに複数のデプロイメントがある可能性があります。 Amplitudeは、Experimentがバリアントを提供するプラットフォーム(クライアント側)またはサービス(サーバー側)にちなんでデプロイメントに名前を付けることを推奨しています(例:android、ios、web)。 デフォルトのプロジェクト API キーのデプロイメントは、始める際に役立ちます。 大規模な組織やチームでは、同じアプリケーションに対して複数のプラットフォーム間で同じAmplitudeプロジェクトを共有している可能性があるため、各プラットフォームやサービスに対して明示的なデプロイメントを使用してください。 各デプロイメントは、アプリケーションで使用するための一意のキーを受け取ります。
デプロイメントを作成するには
- Experiments > Deployments に移動します。
- 「デプロイメントを作成」を選択します。
- ドロップダウンリストから目的のプロジェクトを選択します。
- デプロイメントに名前を付けます。
- デプロイメントがクライアント用かサーバー用かを選択します。
- 「デプロイメントを作成」を選択します。 詳細については、「実験の設定」を参照してください。
新しいフラグを作成する
フラグを使用すると、毎回新しいコードをデプロイメントすることなく、プロダクトの機能や特性を有効または無効にできます。フラグは実験と機能の展開の両方を促進します。 フラグは、十分なデータを収集した後に実験を開始したり終了したり、新しい機能をロールアウトしたり(必要に応じてそれらをロールバックしたり)したりするのに役立ちます。
新しいフィーチャーフラグを作成するには
- _「実験」>「機能フラグ」_に移動します。
- **[機能フラグの作成] **を選択します。
- 「フラグを作成」セクションで、ドロップダウンリストから必要なプロジェクトを選択し、フラグに名前を付けます。 Amplitude実験は、選択した名前からフラグキーを生成します。 フラグキーは、コードベースで使用されているフラグの識別子です。
- 実験の評価モードを指定します。 Remote または Local を選択します。
- この実験に使用するバケット単位を指定してください。
一般的に、最適なバケット作成単位はユーザーです。 一部のB2Bユースケースでは、会社IDまたは都市をバケット設定単位として使用したい場合があります。たとえば、会社 ID によるバケット分割は、特定の会社のすべてのユーザーが同じユーザー体験を得られるようにします。 選択したユニットにかかわらず、安定したユニット処理値の仮定が適用されることを確認してください。
- [作成] を選択します。 実験では、フラグ用の空白のテンプレートが開きます。
- [デプロイ]ドロップダウンメニューから目的のデプロイを選択します。
- (オプション)詳細設定を選択して、バケットソルトのオプションを変更します。
バケッティングソルトを変更すると、ユーザーは実験でバリアントを切り替えることができます。 そのため、Amplitudeは仕組みを理解している場合を除き、バケッティングソルトを変更しないことを推奨しています。 詳細については、「Amplitude実験におけるランダム化の仕組み」を参照してください。
バリエーションを作成する
バリアントはフラグや実験の期間内に存在し、ユーザーにとってのさまざまな体験を表します。バリアントとは、テストしたいA/B変更を意味します。 すべての機能フラグには、少なくとも1つのバリアントが含まれている必要があります。フラグには必要な数のバリアントを追加できます。
バリアントを追加するには
- _実験 > 機能フラグ_に移動し、自分のフラグを選択します。
- 「バリアント」セクションで、「プラス」アイコンを選択してバリアントを作成します。
- バリアントの名前、値、および説明を入力します。
- 適用を選択します。
ペイロードをバリアントと一緒に送信できます。 ペイロードとは JSON でコード化された変数のセットであり、手動でコードを変更することなく、リモートでフラグや実験を変更できます。 コントロールと一緒にペイロードを送信できるため、コントロール自体にバリアントを作成する必要はありません。
バリアントを作成するときに、JSON コンテンツを Payload フィールドに追加してください。 ペイロードのコンテンツは次のようになります。
{
"layout": "cards",
"titlePosition": "above",
"gradient": false,
"showDescription": true,
"cardCount": 3
}
フラグにターゲット設定を追加する
「割り当て」セクションで、新機能を体験したいユーザーセグメントを定義します。 ユーザーセグメントを定義すると、特定の地理的場所にいるユーザー、特定の人口統計グループ、またはプロダクトで特定の使用基準を満たすユーザー(パワーユーザーなど)にロールアウトを制限できます。セグメンテーションの詳細については、「オーディエンスの定義」を参照してください。
ターゲット設定を追加するには
- バリアントを受け取るユーザーの割合を指定します。
- ユーザーセグメントを定義するには、ルールベースのユーザーセグメントセクションに移動し、セグメント1を選択します。次に、Amplitudeアナリティクスでユーザーセグメントを作成する場合と同じ手順に従います。
フラグを完成させる
フラグを設定し、それをデプロイに関連付けて、バリアントまたはペイロードを設定し、ユーザーをターゲットに設定したら、機能フラグを完成させます。 フラグを完成させると、フラグがアクティブになり、使用できるようになります。
フィーチャーフラグを確定するには
- フィーチャーフラグに移動します。
- **[アクティブ化フラグ] **を選択します。
実験を設計する
実験を直接作成することも、既存のフラグを実験に変換することもできます。
実験を設計する場合:
- 実験のメトリックを設定します。
- 任意のバリエーションとペイロードを設定します。
目標(または指標)を追加することで、実験の成功率を追跡できます。 すべての実験には少なくとも1つのメトリックが必要です。 Amplitude実験にどのような主要なメトリックを望むかを伝えて、任意の副次メトリックを定義してください。主要なメトリックは、Amplitudeが仮説を受け入れるか拒否するかどうかを決定し、したがって実験が成功したか失敗したかを決定します。
メトリクスを追加するには
- 実験を開き、「メトリクス」セクションに移動します。
- メトリックドロップダウンから推奨されるメトリックを選択するか、カスタムメトリックを作成します。
- 「should」または「should not」を使用してメトリックタイプを選択します。
- 「Should」:成功メトリックは、目標が目標量および目標方向へ変化することを示します。
- 「Should not」:ガードレールメトリックは、目標が目標量および目標方向へ変化しないことを示します。
- メトリックが増加または減少することを期待するかを指定します。
- (オプション)実験の許容可能な最小限の目標を設定します。これは最小検出効果とも呼ばれます。検出可能な最小効果とは、実験が肯定的な結果とみなされるための対照とバリアントとの間の最小限の差です。
- セカンダリメトリックを追加するには、[メトリックを追加]を選択し、追加したいメトリックごとにこのプロセスを繰り返します。
より多くのバリエーションとペイロードを追加するには
さらに多くのバリエーションとペイロードを作成するには、「フラグにバリエーションを作成する」の手順を繰り返します。
実験を開始する
実験の設計が完了したら、「実験を開始」を選択して開始します。
コード例
次のコード例は、フィーチャーフラグとJSONペイロードのコードを示しています。
import { useState, useEffect } from 'react';
import { getBlogLayoutFlag } from '../services/featureFlags'; // Adjust to wherever you fetch your Amplitude flag
import type { BlogPost } from '../types';
type LayoutFlag = {
layout: 'cards' | 'list' | 'carousel';
titlePosition: 'above' | 'below' | 'center';
gradient: boolean;
showDescription: boolean;
cardCount: number;
};
export default function BlogPostLayoutClient({ posts }: { posts: BlogPost[] }) {
const [layoutFlag, setLayoutFlag] = useState<LayoutFlag | null>(null);
useEffect(() => {
getBlogLayoutFlag().then((flag) => {
console.log(':magic_wand: Received Flag from Amplitude:', flag);
if (flag) {
setLayoutFlag(flag);
} else {
console.log(':warning: No flag returned, falling back to default layout');
setLayoutFlag({
layout: 'cards',
titlePosition: 'above',
gradient: false,
showDescription: true,
cardCount: 3,
});
}
});
}, []);
if (!layoutFlag) {
// You might render a loader here
return null;
}
// Render your posts according to layoutFlag...
return (
<div>
{/* e.g. layoutFlag.layout === 'cards' ? <CardGrid posts={posts} /> : ... */}
</div>
);
}
これは役に立ちましたか?