データの精度と一貫した集計を確保するため、Google Health API ではユーザー アクティビティのレポート方法が刷新されています。この API では、true zeros と on-wrist filtering を導入することで、ユーザーが静止していた期間とデバイスを装着していなかった期間を正確に区別できます。
True Zeros
True zero とは、ユーザーがデバイスを装着してアクティブにトラッキングしていたものの、特定の指標の値がゼロとして記録されたことを示す明示的なデータポイントです。たとえば、デバイスを装着している間に 1 分間、歩数や移動距離が 0 と記録されることがあります。
従来、データが欠落している場合は曖昧でした。ユーザーが座っていたか、デバイスを装着していなかったかのどちらかを示している可能性がありました。この API では、デバイスを装着しているものの非アクティブな場合は、0 の値を明示的に保存して返すことで、この問題を解決しています。これにより、デバイスを装着して静止していた期間とデータが欠落している期間を明確に区別できます。
On-wrist filtering
On-wrist filtering とは、ユーザーがデバイスを実際に装着しているかどうかを識別するプロセスです。これにより、デバイスがバッグに入っているときに車両の振動によって記録された「ファントム」ステップなど、不要なデータを API で除外できます。
サポートされるデータタイプ
次のデータタイプでは、true zero の動作と on-wrist filtering がサポートされています。
- 高度
- 距離
- 階数
- 歩数
- 総カロリー
アプリケーションへの影響
true zero を実装すると、データギャップの解釈や、1 日の平均値などの指標の計算の精度が向上します。
リストとロールアップの動作
デフォルトでは、Google Health API は次のデータタイプについてデバイスを装着しているときのデータのみ を返します。
- リスト操作: デバイスを装着していた期間のデータポイントのみを返します。リストにギャップがある場合は、デバイスを装着していなかったか、同期していなかったことを示します。
- ロールアップ操作: レスポンスに 0 が含まれている場合は、true zero (ユーザーがデバイスを装着していたが移動していなかった)ことを示します。特定の期間にトラッキング デバイスを装着していなかった場合、API はそのロールアップ ウィンドウのデータを返しません。
Fitbit Web API との比較
Fitbit Web API では、トラッキング デバイスを装着していなかった場合でも、ゼロを含むデータが返されることがよくありました。Google Health API では、より正確な移動状況を把握できます。
| 機能 | Fitbit Web API | Google Health API |
|---|---|---|
| 非アクティブの曖昧さ | データが欠落している場合は、非アクティブまたはデバイスを装着していないことを意味する可能性があります。 | true zero は、装着中の非アクティブを明示的に示します。 |
| データギャップ | データギャップはデフォルトで UTC オフセットになる可能性があります。 | 明示的な保存により、タイムゾーンと市民時間の問題が解決されます。 |
| フィルタリング | on-wrist filtering は限定的です。 | 厳格な on-wrist filtering により、生理学的な精度が確保されます。 |