Google Health API を使用して歩数エクスペリエンスを開発する

Google Health API は、steps 間隔データ型を使用してユーザーの歩数とアクティビティ データを追跡します。歩数は、毎日の身体活動の基本的な指標であり、デベロッパーはフィットネスの進捗状況を追跡したり、エネルギー消費量を計算したり、ユーザー向けの日々のアクティビティの概要を作成したりできます。

アプリで歩数指標を読み取り、構造化して、ユーザーに最適なエクスペリエンスを提供する方法を理解します。

サポートされるデータタイプ

この API は、歩数をトラッキングするための次のデータタイプをサポートしています。

表: Google Health API の歩数データタイプ
データ型 使用可能な
オペレーション
スコープ
手順
dataType: steps
filter parameter: steps
レコードタイプ: Interval
ストレージの解像度: 1 分

対応デバイス

list、reconcile、rollup、dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly

ガイドライン

歩数トラッキングをアプリに統合する際は、以下の設計と実装のガイドラインに沿ってください。

速度とペースの計算

Google Health API は、標準的な数式を使用して速度とペースを計算します。

  • 速度 = distance / time(hour)
  • ペース = time(seconds) / distance

リクエストで指定された Accept-Language ヘッダーによって、距離の単位が決まります。

1 日の概要

旅行、タイムゾーンの変更、夏時間において、1 日の歩数を正確に集計するには、クライアントサイドで期間の計算を行わないでください。代わりに、UTC オフセットを使用して物理データのギャップを自動的に調整する dailyRollUp エンドポイントにクエリを実行します。ロールアップは、リクエストされた日の累積歩数の合計を表す countSum フィールドを含む StepsRollupValue を返します。詳しくは、集計データガイドの暦日をまたいで集計するをご覧ください。

ユーザー インターフェースの描画(調整)

歩数データを表示するユーザー インターフェース要素を構築する場合は、reconcile エンドポイントを使用します。複数のデータソース(スマートウォッチとスマートフォンなど)が同時に歩数を記録した場合、reconcile エンドポイントは競合を解決し、ストリームを統合して、調整された単一のデータ ストリームを返します。

接続済みデバイスの同期による重複する間隔の処理とタイムスタンプの変更可能性については、データ マネジメント ガイドをご覧ください。

イントラデイ トラッキングとヒストグラム

1 日を通して詳細なユーザー アクティビティ(グラフなど)を表示するには:

  • 1 時間または 1 分単位のヒストグラム: rollUp エンドポイントにクエリを実行し、windowSize パラメータを使用して期間(1 分の場合は 60s、1 時間の場合は 3600s など)を指定します。歩数データは 1 分(60s)間隔で記録されるため、windowSize を 60s 以上に設定します。1 分未満のウィンドウ サイズ(10s や 30s など)のリクエストでは、個々の 1 分間の合計がスライスされず、1 分間の合計数が最初の一致するサブバケットに配置されます。詳細については、ロールアップ ウィンドウとストレージの解像度をご覧ください。
  • すべての歩数記録: list エンドポイントを使用して、最も詳細な未加工の歩数記録を取得します。

rollUp、dailyRollUp、reconcile エンドポイントは dataSourceFamily パラメータを受け入れ、特定のソースグループからデータをフィルタできます。詳細と使用例については、データフィルタ ガイドのデータソース ファミリーでフィルタするセクションをご覧ください。

ウェブフックを使用したリアルタイム同期

steps データタイプ コレクションに登録すると、新しい歩数データがインポートまたは同期されたときにリアルタイムで通知を受け取ることができます。REST エンドポイントをポーリングするのではなく、これらの Webhook 通知に応じてクライアントサイドのダッシュボードを動的に更新します。サブスクリプションの設定方法については、Webhook サブスクリプションをご覧ください。