"#### この記事のテーマ:
Amplitudeでは、セッションはプロダクトへのユーザーのエンゲージメントの頻度と時間を把握するために便利なメトリックです。セッションベースの分析を作成する最も直接的な方法はユーザーセッションチャートを使用して他の分析タイプにセッションを統合することができます。
**注:**こちらにユーザーセッションの動画もございます。
通常、セッションはユーザーがアプリを前面に置いているか、またはウェブサイトを開いている時間のことです。モバイルとウェブのアプリケーションは次のように細部でやや違いがあります。
Amplitudeは新規セッションにセッションIDを自動的に生成します。このIDはepoch(Unixタイムスタンプとしても知られる)を起点とするミリ秒単位のセッションの開始時間です。同じセッション内のすべてのイベント間で同じセッションIDが共有されます。AmplitudeのSDKを使用している場合、共有は自動的に実行されます。一方、HTTP APIを使用してAmplitudeにデータを送信する場合、セッションをトラックするためにsession IDフィールドを明示的に設定する必要があります。
Amplitudeのセッションプロパテのデフォルト設定はsession ID
です。同じセッションIDと同じユーザーIDを持つすべてのイベントは同じセッションにグループ化されます。セッションIDは複数のユーザー間で固有である必要はありません。セッションをグループ化するのに使用するプロパティを変更することもできます。
上記の通り、Amplitude SDK経由で送信されるイベントのセッションIDは自動的に生成および管理されます。一方、HTTP API経由で送信されるイベントでは、AmplitudeのデフォルトのセッションIDは-1
になります。 つまり、イベントはすべてのセッション指標から除外されます。
**注意:**これは、SegmentからAmplitudeにクラウドモード接続経由でデータを送信するときによく発生します。HTTP API経由でデータを送信する場合と同様に、セッションをトラックするためにはセッションIDを明示的に設定する必要があります。
同じセッションに含まれるイベントは、上図のように青線で連結されます。
Amplitudeは、デフォルトではセッションIDの各セッションの開始時刻と終了時刻を使用して、[Start Session](開始セッション)イベントと[End Session](終了セッション)イベントを追跡します。また、AmplitudeはセッションIDを使用して、セッションの長さを計算します。セッションIDを使用する場合、Amplitudeは月次イベント数の制限に追加イベントを追加しません。
ただし、セッションの長さを超えてStart Session
イベントとEnd Session
イベントのトラッキングが分析に重要とされる場合は、SDKを初期化する前にこのコード行を追加してこれらのイベントのトラッキングを簡単に有効にすることができます。
Androidの場合:
Amplitude amplitude = new Amplitude(new Configuration( apiKey = AMPLITUDE\_API\_KEY, context = applicationContext, trackingSessionEvents = true, ));
iOSの場合:
[Amplitude instance].trackingSessionEvents = YES;
ブラウザの場合:
amplitude.init(API\_KEY, OPTIONAL\_USER\_ID, { defaultTracking: { sessions: true, }, });
重要な注意:
End Session
イベントはユーザーの次のセッションの開始時に送信されます。Open App
およびClose App
カスタムイベントの実装をお試しください。セッションIDを-1
に設定して、イベントをセッション外として記録することもできます。 Out-of-sessionイベントは現在のセッションの一部とみなされません。現在のセッションを延長しないため、プッシュ通知によりトリガーされたイベントを記録する場合に便利です。
Out-of-sessionイベントは通常はAmplitudeが受け取るサーバー側のイベントです(詳しくは、HTTP APIの記事をご覧ください)。これらのイベントは、ユーザーのイベントストリームに切り離された緑色の正方形として表示されます。
デフォルトでは、AmplitudeはセッションIDに基づいてイベントをセッションに分類します。また、一定のプロパティ、カスタムタイムアウトウィンドウ、またはグループセッションに開始と終了するイベントを設定するだけで、実装なしのセッションを定義することもできます。
セッション定義を編集するには、管理者またはマネージャーの権限が必要です。
**注:**カスタムセッション定義は、ユーザーセッションとパスファインダーチャート、ユーザーのタイムラインでのみ利用できます。セッションにはアクティブイベントのみが含まれます。
カスタムセッション定義を設定するには、次のステップに従ってください:
セッション定義モーダル内では、プロジェクトでセッションを定義する3つの条件のいずれかに仕様を設定することができます。1つの条件または複数の条件を定義できますが、Amplitudeがセッションをカウントするために指定するすべての条件を満たす必要があります。
これらの条件のいずれかを定義しない場合は、Amplitudeはセッション定義プロパティとしてデフォルトがセッションIDにされます。
条件は次のとおりです:
注:セッション定義を変更すると、プロジェクトのすべてのユーザーセッションとパスファインダーチャート、およびユーザーのタイムラインに適用されます。カスタムセッション定義を設定または変更する前に、インパクトが何であるかを理解する必要があります。
Amplitudeは条件の組み合わせを論理ANDとして扱います。例えば、セッションのすべてのイベントが同じソースからであることを保証する場合は、タンデムでconstantプロパティとタイムアウトウィンドウを使用することによってこれを達成することができます:
デバイスID
30 min
または、アプリ内使用に基づいてセッションを定義するには、開始イベントとタイムアウトウィンドウを使用することができます:
30 min
session IDをセッションプロパティとして使用する場合、Amplitudeは次の式を使用してセッションの長さを計算します:
*max(client\_event\_time) - min(client\_event\_time)*
ここでは:
client_event_time
はデバイスがイベントを記録した現地時間のタイムスタンプ(UTC)です。max(client_event_time)
はデバイスにより記録された最後のイベントの現地時間のタイムスタンプ(UTC)です。また、hidden、inactiveおよびdeletedの各イベントはセッションの長さの計算に含まれません。例えば、次の一連のイベントがあるとします:
イベントA --> イベントB --> イベントC --> イベントD
イベントCとイベントDがGovern(データ管理)で非表示、非アクティブまたは削除となっている場合、max(client_event_time)
はイベントDではなくイベント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.