このページでは

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セッションにリンクします。

セッションリプレイには複数のセッション照合オプションがあります。ご自身の技術的制約とセッション定義に最適なオプションを選択してください。

セッション照合オプション

Amplitudeは、セッションを直接照合したり、時間に基づいたイベントを照合したり、AmplitudeセッションIDによる照合を行うためのオプションを提供します。

Amplitudeセッションの照合(推奨)

プロジェクトのセッション定義に基づいてAmplitudeセッションを一致させます。 Amplitudeセッションのマッチングは、イベントプロパティ、タイムアウトウィンドウ、開始/終了イベントで定義したセッションを含め、Amplitudeプロジェクト設定でのセッション設定方法に従います。

デフォルトの session_idを使用する場合、セッションリプレイは追加設定なしで自動的に動作します。

カスタムセッションプロパティを使用する場合は、同じプロパティ値を抽出して送信するようにセッションリプレイSDKを設定してください。その後、セッションリプレイはプロジェクトのカスタムセッション定義を使用してセッションを照合します。これにより、リプレイデータとアナリティクスセッションを最も正確に調整できます。

カスタム セッション定義の要件

最小SDKバージョン
  • ブラウザSDKプラグイン:@amplitude/plugin-session-replay-browserバージョン1.10.0以降。
  • ブラウザスタンドアロンSDK:@amplitude/session-replay-browserバージョン1.17.0以降。
  • iOS(プラグインおよびスタンドアロン):iOSバージョン0.11.2以降用のセッションリプレイ。
  • Android(プラグインおよびスタンドアロン):Androidバージョン 0.26.4 以降用のセッションリプレイ。
プロジェクト構成
  • [設定] > [プロジェクト] > [セッション定義] でカスタムセッション定義を設定します。
  • 「<>プロパティに基づいてカウント」オプションを使用すると、特定のプロパティによってセッションを定義できます。
  • 詳細については、「セッションの追跡」を参照してください。
制約事項:
  • セッションリプレイ ID の形式は <deviceId>/<sessionId>です。セッションリプレイは /を区切り文字として使用するため、deviceId やカスタムセッションID値に /を含めることはできません。
  • deviceId とカスタムセッションIDの両方に使用できる文字: a-z A-Z 0-9 _ - . | @ : =。
  • 追加の文字が必要な場合は、サポートまでお問い合わせください。

カスタムセッション定義用の SDK を設定する

以下のコード例は、Amplitudeプロジェクト設定でカスタムセッション定義を設定した場合にのみ適用されます。

ブラウザSDKプラグイン:

AmplitudeイベントからカスタムセッションIDを抽出するメソッドを渡します。

javascript
import * as amplitude from "@amplitude/analytics-browser";
import { sessionReplayPlugin } from "@amplitude/plugin-session-replay-browser";
const sessionReplayTracking = sessionReplayPlugin({
  customSessionId: (event) => {
    const props = event.event_properties;
    if (!props) {
      return;
    }
    const sessionId = props["your_custom_session_id_property"];
    return sessionId;
  },
});
amplitude.add(sessionReplayTracking);
amplitude.init(AMPLITUDE_API_KEY);
Standalone SDK

スタンドアロンSDKは、カスタムセッションIDとタイムスタンプベースのセッションIDを同じ方法で扱います。スタンドアロンのSDKにセッションIDを渡し、同じセッションIDをプロジェクトのカスタムセッション定義に一致するイベントプロパティとしてAmplitudeに送信します。

javascript
import * as sessionReplay from "@amplitude/session-replay-browser";
// Initialize Session Replay with session ID
sessionReplay.init(AMPLITUDE_API_KEY, {
  customSessionId: (event) => {
    const props = event.event_properties;
    if (!props) {
      return;
    }
    const sessionId = props["your_custom_session_id_property"];
    return sessionId;
  },
});

セッション ID プロパティ名が、プロジェクトのカスタムセッション定義 (「設定」>「プロジェクト」>「セッション定義」) で設定したプロパティと一致していることを確認してください。

モバイルSDK

iOS および Android SDK は、コールバックではなく文字列のセッション ID を直接受け入れます。 カスタムセッションが変更されるたびに値を設定し、セッション定義イベントプロパティと同じ値をAmplitudeに送信します:

時間ベースのイベント照合

イベントのアクティビティに基づいて、30分または60分の時間枠を使用してセッションを構築できます。分析パイプラインにイベントに関するセッション ID が含まれていない場合(たとえば、イベントのタイムスタンプのみを S3 に送信する自社開発のパイプラインなど)、時間ベースのイベント照合を使用してください。

時間ベースのマッチングは、デバイス ID と重複する時間枠に基づいて、リプレイを分析イベントにリンクします。この方法は、実際のセッションマッチングよりも精度が若干劣りますが、それでも信頼性が高く有用なジャーニービューを提供します。

セッションリプレイSDKには引き続きセッションIDが必要です

スタンドアロンのセッションリプレイ SDK では、リプレイ データをセッションに関連付ける前に sessionId が必要です。このIDは、Amplitudeがリプレイをアナリティクスイベントに照合する方法とは別物です。

時間ベースのイベント照合を使用すると、セッションリプレイsessionIdを完全にフロントエンドで生成できます。これは、アナリティクスセッションIDやアナリティクスパイプライン内のどのフィールドとも一致する必要はありません。

60分間の時間ベースのマッチングに合わせるには、現在の時刻を時間の始まりまで丸め、そのUnixタイムスタンプをミリ秒単位で指定してSDKに渡します。

javascript
const HOUR_MS = 60 * 60 * 1000;
const sessionId = Date.now() - (Date.now() % HOUR_MS);
await sessionReplay.init(AMPLITUDE_API_KEY, {
  deviceId: "<string>",
  sessionId,
}).promise;
// Call setSessionId when the hour bucket changes
await sessionReplay.setSessionId(Date.now() - (Date.now() % HOUR_MS)).promise;

時間ベースのイベント照合では、セッションリプレイsessionIdはリプレイ データのアップロード バケットです。これはアナリティクスと一致する必要はありませんが、サーバーがアップロードを受け入れるためには、この値は依然として有効なUnixタイムスタンプ(ミリ秒単位)である必要があります。

30 分の一致時間枠の場合、HOUR_MS ではなく30 * 60 * 1000 を使用してください。 バケット サイズは、[組織設定] > [セッションリプレイ] で設定した時間枠と一致するようにしてください。

スタンドアロン SDK の初期化に関する詳細については、「セッションリプレイスタンドアロン SDK」を参照してください。

セッション ID の一致(レガシー)

session_id がカスタムセッション定義と一致していなくても、Amplitude session_id に基づいて一致させます。セッション ID の照合は下位互換性のために存在しており、変更は必要ありません。

一致するオプションを選択してください

同じセッションIDをAmplitudeとセッションリプレイの両方に送信することを条件として、カスタムセッション定義を含め、可能な限りAmplitudeセッションを一致させてください。

分析パイプラインにイベントに関するセッション ID が含まれていない場合は、時間ベースのイベント照合を使用して、セッションリプレイ SDK のフロントエンド セッション ID を生成してください。「セッションリプレイ SDK には依然としてセッション ID が必要」で説明されているとおりです。

セッションマッチングの設定

セッション照合はプロジェクトレベルではなく組織レベルで設定してください。 _[組織設定] > [セッションリプレイ] _でセッション照合オプションを設定します。詳細については、セッションリプレイとヒートマップの設定を参照してください。

組織レベルの設定

セッションの照合は、組織内のすべてのプロジェクトに適用されます。この設定は_プロジェクトごとではなく_、組織設定で構成してください。

セッションリプレイ SDK 実装でセッション照合を設定するための正確な手順は、使用する SDK によって異なります。

カスタムセッションIDを使用する場合は、セッションが正しく一致するように、セッションリプレイ SDKがAmplitudeで使用しているものと同じセッションID値を送信することを確認してください。

セッション マッチングの変更は迅速かつ元に戻すことができます。 データを失うことなく、いつでも一致オプションを変更できます。

履歴データ

セッション照合オプションを変更しても、履歴データには影響しません。この変更は、Amplitudeが今後どのようにマッチングし、再生をどのように表示するかに影響します。

よくある質問

セッションの照合には再計装が必要ですか?

通常はいいえ。カスタムセッションを使用する場合は、セッションリプレイ SDKがAmplitudeで既に使用しているのと同じセッションID値を送信することを確認してください。

時間ベースのマッチングにおけるトレードオフは何ですか?

時間ベースのマッチングはセッション境界での精度がやや低下しますが、それでもユーザーの行動を明確かつ実用的に把握できます。

一致オプションを後で変更することはできますか?

はい セッションの一致をすばやく変更することができ、その変更を完全に元に戻すこともできます。

一致オプションを変更すると履歴データに影響がありますか?

データを失うことはありません。 この変更は、Amplitudeが今後どのようにマッチングし、再生をどのように表示するかに影響します。

AmplitudeはセッションIDによるマッチングを非推奨にしようとしていますか?

いいえ。Amplitudeは引き続きセッションIDの照合をサポートしていますが、ほとんどのユースケースでは新しいオプションを推奨しています。

これは役に立ちましたか?