セッションでは、ユーザーが実行した主なアクティビティのリストをすばやく簡単に確認できます。Google Fit アプリの日記ページに表示されます。たとえば、呼吸セッション、ウォーキング、ランニング、睡眠はそれぞれセッションの例です。
セッションは、アクティビティ中に収集された特定の期間のデータセットをグループ化します。たとえば、ユーザーが 3 km のランニングの開始時間と終了時間をトラッキングした場合、セッションが作成され、その期間内のすべてのフィットネス データ(歩数、速度、距離など)がそのセッションに関連付けられます。
セッション自体にはアクティビティの詳細が含まれていません。これはデータセットにあります。セッションには次のプロパティがあります。
- わかりやすい名前(「朝のランニング」など)
- 広告文
- 一意の識別子
- 記録しているアクティビティの種類(ランニングなど)
セッションを使用するメリット
- ユーザーにとってのメリット: セッションを使用すると、アクティビティ データとワークアウトをユーザーにとって意味のある方法で整理できます。Google Fit アプリの [ジャーナル] ページで、1 日のアクティビティをすべて確認できます。
- 一貫したユーザー エクスペリエンス: アプリやコンパニオン デバイスでアクティビティのトラッキング(ユーザーがアクティビティを開始および停止できる)が可能な場合、これらのワークアウトのセッションを設定することで、ユーザーは両方のアプリでアクティビティを確認できます。
- より完全なデータ: Google Fit は、複数のソースからのデータを統合して、セッション情報を補完し、充実させます。これにより、ユーザーはアクティビティの全体像をより詳細に把握できます。
- Google Fit プラットフォームを活用する: ユーザーがアクティビティをトラッキングしていない場合や、アプリがトラッキングをサポートしていない場合でも、Google Fit でセッションを読み取ることができます。独自のスキーマとストレージを実装しなくても、フィットネス ストアから詳細データや集計データをクエリして、利用可能なセッションを見つけることができます。
- ユーザー エンゲージメントの向上: ユーザーに利用可能なセッションと、それらを作成したアプリを表示できます。このように他のフィットネス アプリと連携することで、ユーザー エンゲージメントを高めることができます。
セッションのユーザー認証を取得する
セッションの読み取りまたは書き込みを行う場合は、アプリでユーザーの権限を取得する必要があります。セッションへのアクセスには、データ型と同じ認証スコープが使用されます。次のようにリクエストする必要があります。
Android
FitnessOptions の適切なメソッドを使用して、アプリがアクセスする必要があるセッションのタイプを指定します。たとえば、ランニングに関するセッションを読み取るには、次のように選択します。
val fitnessOptions = FitnessOptions.builder()
.accessActivitySessions(FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_HEART_RATE_BPM, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_SPEED, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_LOCATION_SAMPLE, FitnessOptions.ACCESS_READ)
.build()
この例では、アプリがアクティビティ セッションのメタデータにアクセスすることを指定し、セッション内で読み取るデータ型も指定しています。この例では、心拍数、速度、位置情報のデータ型が使用されています。
REST
次のようにスコープをリクエストします。
- 睡眠アクティビティ タイプを含むセッション:
https://www.googleapis.com/auth/fitness.sleep.readhttps://www.googleapis.com/auth/fitness.sleep.write
- その他のセッション:
https://www.googleapis.com/auth/fitness.activity.readhttps://www.googleapis.com/auth/fitness.activity.write
セッションの使用
Android
セッション API を使用すると、次のことができます。
- リアルタイムでセッションを作成する
- フィットネス ストアにセッションを挿入する
- ワークアウト中の一時停止をサポートするためにアクティビティ セグメントを挿入
- セッションとそれに関連付けられたデータセットを読み取る
- 別のアプリを起動して、作成したセッションに関する情報を表示する
- 別のアプリがセッションを開始したときにインテントを受け取る
REST
セッション API を使用すると、次のことができます。
- リアルタイムでセッションを作成する
- フィットネス ストアにセッションを挿入する
- ワークアウト中の一時停止をサポートするためにアクティビティ セグメントを挿入
- セッションとそれに関連付けられたデータセットを読み取る
データセットとセグメントがセッションとどのように連携するか
Google Fit の場合:
- データセットは、特定のデータソースから特定の期間にわたって収集されたデータポイントのセットを表します。データセットは単独で挿入できます。ただし、セッションを作成する場合は、セッションとそのデータセットを一緒に作成する方が簡単な場合があります。
- セグメントは、セッション内のデータセットを、ユーザーがセッションで行ったアクティビティごとにグループ化します。たとえば、ユーザーが 30 分間のランニング(セッション)を記録したが、その間に少し歩いた場合、このセッションはセグメントに分割される可能性があります。ランニングのセグメント、ウォーキングの休憩、ランニングのセグメントというように記録されます。
図 1 は、アプリ A、B、C がいくつかのデータセットとセッションを挿入したフィットネス ストアの時間間隔を示しています。
- アプリ A は、セッション 1 とともにデータセット A1 と A2 を挿入し、セッションとは独立して A3 を挿入しました。
- アプリ B は、セッション 2 とともにデータセット B1 と B2 を挿入しました。
- アプリ C は、セッションとは無関係にデータセット C1 を挿入しました。
フィットネス ストアからセッション データを読み取ると、セッションの時間間隔内のすべてのフィットネス データが自動的にそのセッションに関連付けられます。セッションの作成後にデータを挿入した場合や、データがパッシブにトラッキングされた後にセッションを作成した場合でも、同様です。たとえば、セッション 1 のフィットネス データのクエリは次の結果を返します。
- データセット A1
- データセット A2
- t1 と t2 の間のデータセット A3 の部分
- データセット C1 の t1 と t2 の間の部分
各セッションとデータセットを挿入したアプリを確認できます。
セッションを作成する
セッションは、いくつかの方法で作成できます。
- アプリは、
- ユーザーがデバイスでアクティビティを積極的にトラッキングしている場合(Android のみ)はリアルタイムで、
- 手動で挿入します。
- ユーザーが Google Fit アプリでワークアウトやアクティビティを手動で追加した場合。
セッションを作成するタイミング
睡眠データを追加していますか?
- はい - セッションを作成し、フィットネス ストアに手動で挿入します。たとえば、睡眠セッションを挿入します。これは、睡眠トラッキング アプリやデバイスを使用しているユーザーは、睡眠アクティビティの開始と停止のためにデバイスを操作しないためです(睡眠アクティビティは受動的にトラッキングされます)。
- いいえ - ユーザーがアクティビティを開始および停止できるアプリですか?
- No - セッションを作成しません。アプリのデータセットのみを追加します。
- はい - Android API を使用して、ユーザーがアクティビティをトラッキングしている場合はリアルタイムで、トラッキングしていない場合は手動でセッションを作成します。REST API を使用して、セッションを作成し、フィットネス ストアに手動で挿入します。
- アプリで、ユーザーがさまざまなアクティビティを行っていることをより詳細なレベルで検出できますか(たとえば、歩行と走行を区別できますか)?
- はい - セグメントを追加します。
- No - データセットの追加のみを行います。ここではセグメントを無視し、Google Fit が自動的に作成するようにします。
セッションの読み取り
アプリでセッションを読み取るには、いくつかの方法があります。
-
によって作成または挿入された特定のセッションを探します。
- 名前または
- ID
- 作成/挿入されたすべてのセッションを期間で検索する
- 期間別にすべてのアプリ(Google Fit を含む)で作成された利用可能なすべてのセッションを検索する
セッションを作成したソースを確認する
ユーザーの各セッションがどのアプリまたはデバイスで作成されたかを表示できます。各セッションには、データが収集または変換されたアプリやデバイスに関する情報を含むデータソースが関連付けられています。
Android
現在、Android クライアントによって書き込まれたセッションのパッケージ名のみを取得できます。セッションを作成したアプリのパッケージ名を取得するには、getAppPackageName メソッドを使用します。この情報をアプリで使用して、どのアプリがフィットネス セッションを挿入したかをユーザーに表示できます。各アプリのアイコンを表示して、ユーザーがアプリを識別できるようにすることができます。
また、インテントを起動して他のアプリを起動し、作成したセッションの詳細を表示することもできます。他のアプリも、アプリを起動するインテントを起動できます。
詳しくは、セッションを作成したソースを確認するをご覧ください。
REST
セッションを作成した Android アプリのパッケージ名を取得するには、session.application プロパティを使用します。REST API を使用して作成されたセッションの場合は、代わりに session.name プロパティを使用します。この情報をアプリで使用して、フィットネス セッションを挿入した他のアプリをユーザーに表示できます。ユーザーがアプリを識別できるように、各アプリのアイコンを表示できます。
詳しくは、セッションを作成したソースを確認するをご覧ください。