データの正確性と一貫した集計を確保するため、Google Health API ではユーザー アクティビティのレポート方法が最新化されています。true zeros と on-wrist filtering を導入することで、API は、ユーザーが静止していた期間とデバイスを装着していなかった期間を正確に区別できます。
True Zeros
真のゼロは、ユーザーがデバイスを装着してアクティブにトラッキングしていたものの、特定の指標でゼロの値が記録されたことを示す明示的なデータポイントです。たとえば、デバイスを装着しているにもかかわらず、1 分間のインターバルで歩数や距離が 0 と記録されることがあります。
これまで、欠損データは曖昧でした。ユーザーが座りがちであったか、デバイスが手首から外されていたことを示している可能性があります。この API は、デバイスが装着されているがアクティブでない場合に、明示的に 0 の値を保存して返すことで、この問題を解決します。これにより、手首に装着したままの期間と欠損データを明確に区別できます。
手首でのフィルタリング
手首装着フィルタリングとは、ユーザーがデバイスを実際に装着しているかどうかを識別するプロセスです。これにより、デバイスがバッグに入っているときに車両の振動によって記録された「ファントム」歩数など、余分なデータを API で除外できます。
サポートされるデータタイプ
次のデータ型では、真のゼロ動作と手首でのフィルタリングがサポートされています。
- 高度
- 距離
- 階数
- 手順
- 総カロリー
アプリケーションへの影響
ゼロ値の実装により、データギャップの解釈や、日次平均などの指標の計算の精度が向上します。
リストとロールアップの動作
デフォルトでは、Google Health API は次のデータ型について手首装着データのみを返します。
- リスト オペレーション: デバイスが装着されていた期間のデータポイントのみを返します。
- データのギャップ: リストにギャップや欠落したレコードがある場合、デバイスが手首から外されていたか、同期されていなかったことを示します。
- 空のレコード: ユーザーがデバイスを装着していたものの、アクティビティがなかった(真のゼロ)データポイントは、通常の
dataSourceと間隔またはタイムスタンプ情報とともに返されますが、指標固有のフィールド(countプロパティなど)は省略されます。これらはゼロ値として解釈されます。
- ロールアップ オペレーション: レスポンスの 0 は、真のゼロ(ユーザーがデバイスを装着していたが、動いていなかった)を意味します。特定の期間にトラッキング デバイスが装着されていなかった場合、API はそのロールアップ ウィンドウのデータを返しません。
list オペレーションでは、オンデバイス アルゴリズムがセンサーの生テレメトリーを再分類する際に、連続するコネクテッド デバイスの同期で重複する間隔が生じることもあります。期間の重複の処理の詳細については、データ管理ガイドをご覧ください。
Fitbit Web API との比較
Fitbit Web API は、トラッキング デバイスを装着していない場合でも、ゼロを含むデータを返すことがよくありました。Google Health API は、より正確な移動データを取得します。
| 機能 | Fitbit Web API | Google Health API |
|---|---|---|
| 操作なしの曖昧さ | データが欠落している場合は、アクティビティがないか、手首から外されている可能性があります。 | ゼロは、着用中の非アクティブ状態を明示的に示します。 |
| データギャップ | データギャップはデフォルトで UTC オフセットになる可能性があります。 | 明示的なストレージにより、タイムゾーンと市民時間の問題が解決されます。 |
| フィルタリング | 手首でのフィルタリングは限定的です。 | 手首での厳格なフィルタリングにより、生理学的データの精度が確保されます。 |