このページでは

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はイベントをセッションIDごとにセッションへグループ化し、Start SessionイベントとEnd Sessionイベントを導出し、セッション数と期間をユーザーセッションチャートに表示します。

Amplitude SDKにセッション境界を自動的に管理してもらいたい場合は、デフォルトのセッショントラッキングを使用してください。 特定のイベントや異なるタイムアウトに結びつけられたセッション境界が必要な場合は、代わりにカスタムセッション定義を設定してください。

Amplitudeがセッションをどのように定義するか

セッションの動作は、モバイルアプリケーションとブラウザアプリケーションによって異なります:

  • モバイルの場合、セッションはアプリがフォアグラウンドに移動したときに開始されます。 モバイルセッションは、アプリがバックグラウンドに移行し、少なくとも5分間イベントを送信しないと終了します。5分以内に送信されたイベントは、現在のセッションにカウントされます。setMinTimeBetweenSessionsMillis(timeout)を使用してカスタムセッションの有効期限を定義できます。その際、timeoutはミリ秒単位で指定します。
  • ブラウザでは、ウェブサイトがロードされ、SDKが初期化されると、セッションが開始されます。ブラウザ セッションは、最後のイベントが発生したときに終了します。 Web セッションはデフォルトで 30 分後にタイムアウトします。 30 分以内に送信されたイベントは、同じセッションにカウントされます。 ブラウザのタイムアウトウィンドウは、ブラウザ SDK の設定オプションを使用してカスタマイズできます。

Amplitudeは、新しいセッションごとにセッションIDを自動的に生成します。 セッション ID は、エポック(UNIX タイムスタンプとも呼ばれます)からのセッション開始時刻(ミリ秒単位)です。同じセッション内のすべてのイベントは同じセッション ID を共有します。 Amplitude SDKはセッションIDを自動的に管理します。 HTTP API経由でAmplitudeにデータを送信する場合、セッションIDフィールドを明示的に設定してセッションを追跡してください。

Amplitudeがセッションをカウントする方法

セッションをカウントするために、Amplitudeは「アクティブ」とマークされたイベントをフィルタリングし、プロジェクトのセッション定義を適用し、フィルタリングされたイベントをセッションにグループ化し、グループ化されたセッションをカウントします。

プロジェクトのセッション定義を設定する方法の詳細については、「組織とプロジェクトの管理」を参照してください。

Amplitudeがイベントをセッションにグループ化する方法

デフォルトでは、AmplitudeはセッションIDをセッションプロパティとして使用します。 Amplitudeは、同じセッションIDと同じユーザーIDを持つすべてのイベントを同じセッションにグループ化します。 セッションIDは複数のユーザー間で一意である必要はありません。セッションをグループ化するために使用するプロパティを変更できます。

Amplitude SDKはイベント用のセッションIDを自動的に生成および管理します。 HTTP API 経由で送信されたイベントの場合、Amplitude はデフォルトで -1 というセッション ID を使用します。 -1 のセッション ID は、そのイベントをすべてのセッション メトリックから除外します。

というセッション ID は、-1クラウドモード接続を介してデータが Segment から Amplitude に届くときに一般的に発生します。HTTP API を介して送信されるデータと同様に、セッションを追跡するにはセッション ID を明示的に設定する必要があります。

ユーザーのイベントストリームでは、同じセッション内のイベントを青い線で結んでいます。

Amplitudeは、実際の開始時間に基づいてセッションを特定の日付に割り当てます。 Amplitudeがそのチャートにセッションを含めるには、開始時刻がチャートで選択された日付範囲内に含まれている必要があります。

たとえば、セッションは5月17日の午後8時に始まり、5月18日の午前1時30分に終了します。セッションは、選択された日付範囲にセッション開始日である5月17日が含まれているチャートに表示されます。 この例のセッションの日付範囲は、5月17日以前に開始し、5月17日以降に終了することができます。チャートの日付範囲が5月18日に始まる場合、セッションは5月18日にまだアクティブであったとしてもチャートに表示されません。

セッション開始イベントとセッション終了イベント

デフォルトでは、Amplitudeは各セッションのセッションIDからStart SessionおよびEnd Sessionイベントを導出します。Amplitudeはまた、セッションIDを使用してセッション時間を計算します。セッションIDを使用する場合、Amplitudeは月間イベントボリューム制限に追加イベントを追加しません。

セッションの長さを超えてStart SessionおよびEnd Sessionイベントを分析する必要がある場合は、SDK を初期化する前に次のコードを追加してStart SessionおよびEnd Sessionイベントトラッキングを有効にしてください。

Androidの場合:

java
Amplitude amplitude = new Amplitude(new Configuration(apiKey = AMPLITUDE_API_KEY, context = applicationContext, trackingSessionEvents = true, ));

iOSの場合:

objc
[Amplitude instance].trackingSessionEvents = YES;

ブラウザの場合:

js
amplitude.init(API_KEY, OPTIONAL_USER_ID, {
  defaultTracking: {
    sessions: true,
  },
});

セッション開始とセッション終了の制限事項

  • セッションイベントトラッキングは、AmplitudeのAndroid、iOS、ブラウザSDKにのみ適用されます。
  • Start Session および End Session イベントは、お客様の月間 イベントボリューム制限 にカウントされます。
  • Amplitudeはユーザーの次のセッション開始時にEnd Sessionイベントを送信します。
  • デフォルトでは、自動生成されたStart SessionおよびEnd Sessionイベントに、追加のイベントプロパティを追加することはできません。セッション開始イベントと終了イベントのイベントプロパティを送信するには、次の2つのオプションがあります。
    • 独自のカスタムOpen AppイベントをClose App実装してください。
    • エンリッチメントプラグインを使用して、生成されたセッションイベントにプロパティを追加できます。 エンリッチメントプラグインを使用すると、イベントオブジェクトのプロパティを変更できます。

セッション外イベント

セッション ID を -1 に設定することで、セッション外でのイベントを記録できます。 セッション外イベントは現在のセッションの一部ではなく、現在のセッションを延長するものではありません。 セッション外イベントは、プッシュ通知によってトリガーされるイベントに役立ちます。

セッション外イベントは通常、Amplitudeが受信するサーバー側イベントです。 詳細については、HTTP API のドキュメントを参照してください。 セッション外イベントは、ユーザーのイベントストリームに分離された緑色の四角形として表示されます。

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

デフォルトでは、AmplitudeはイベントをセッションIDに基づいてセッションにソートします。 計装を追加することなくセッションを定義できます。 カスタムセッション定義では、定数プロパティ、カスタムタイムアウトウィンドウ、開始イベントと終了イベントを使用できます。

セッション定義を編集するには、管理者権限またはマネージャ権限が必要です。

カスタムセッション定義は、ユーザーセッションとパスファインダーのチャートとユーザータイムラインでのみ使用できます。 セッションにはアクティブなイベントのみが含まれます。

カスタムセッション定義を設定するには:

  1. 左側のサイドバーから、設定 > プロジェクトに移動します。

  2. 作業したいプロジェクトを選択します。

  3. [セッション定義] を選択します。 セッション定義モーダルが表示されます。

  4. [カスタム セッション定義] を選択します。

  5. 1 つ以上の条件を設定します。

    • セッションプロパティ:[プロパティを選択...]を選択し、セッションをグループ化するためのイベントまたはユーザープロパティを選択します。
    • 開始イベントと終了イベント:開始イベントまたは終了イベントを選択し、セッションの開始と終了を示すイベントを選択します。終了イベントは、タイムアウト間隔が経過する前に終了イベントが発生した場合にセッションを終了します。
    • セッションタイムアウト:デフォルトのタイムアウト間隔を分単位で入力します。Amplitudeは、1つのセッションの一部として指定されたタイムアウト間隔内に発生した同じユーザーからのイベントをカウントします。Amplitudeでは、デフォルト値は30分であることを推奨しています。
  6. 確認用語を入力し、[保存] を選択します。

セッション定義の変更は、すべてのユーザーセッションチャート、ファネル分析チャート、ジャーニーチャート、およびプロジェクト内のセッションメトリックに適用されます。カスタム セッション定義を設定または変更する前に、その影響を確認してください。

Amplitude は、and ロジックを使用して条件を組み合わせます。セッションがカウントされるには、設定されているすべての条件を満たしている必要があります。 条件を何も設定しない場合、Amplitudeはセッション定義プロパティとしてセッションIDを使用します。

セッション内のすべてのイベントが同じソースから発生することを要求するには、セッションプロパティとタイムアウトウィンドウを一緒に使用します:

  • セッション property = device ID
  • セッション timeout = 30 min

アプリ内での使用状況に基づいてセッションを定義するための、開始イベントとタイムアウトウィンドウの使用:

  • スタート event = app open
  • セッション timeout = 5 min

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