Google Health API는 steps 간격 데이터 유형을 사용하여 사용자 걸음 수와 활동 데이터를 추적합니다. 걸음 수는 일일 신체 활동의 기본적인 측정값으로, 개발자가 피트니스 진행 상황을 추적하고 에너지 소비량을 계산하며 사용자 대상 일일 활동 요약을 빌드하는 데 도움이 됩니다.
애플리케이션에서 걸음 수 측정항목을 읽고 구조화하여 사용자에게 최상의 환경을 제공하는 방법을 알아보세요.
지원되는 데이터 유형
API는 걸음 수 추적을 위해 다음 데이터 유형을 지원합니다.
| 데이터 유형 | 사용 가능한 작업 |
범위 |
|---|---|---|
|
단계
dataType:
stepsfilter parameter: steps
레코드 유형: 인터벌
스토리지 해결 방법: 1분
호환 기기
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
가이드라인
앱에 걸음 수 추적을 통합할 때는 다음 디자인 및 구현 가이드라인을 따르세요.
속도 및 페이스 계산
Google Health API는 표준 공식을 사용하여 속도와 페이스를 계산합니다.
- 속도 =
distance / time(hour) - 페이스 =
time(seconds) / distance
요청에 지정된 Accept-Language 헤더에 따라 거리 단위가 결정됩니다.
일일 개요
여행, 시간대 변경 또는 일광 절약 시간 동안 일일 걸음 수를 정확하게 집계하려면 클라이언트 측 기간 계산을 실행하지 마세요. 대신 UTC 오프셋을 사용하여 실제 데이터 격차를 자동으로 조정하는 dailyRollUp 엔드포인트를 쿼리하세요. 롤업은 요청된 날짜의 누적 총 걸음 수를 나타내는 countSum 필드가 포함된 StepsRollupValue를 반환합니다.
사용자 인터페이스 그리기 (조정)
단계 데이터를 표시하는 사용자 인터페이스 요소를 빌드할 때는 reconcile 엔드포인트를 사용하세요. 여러 데이터 소스 (예: 스마트워치 및 휴대전화)에서 동시에 걸음 수를 기록한 경우 reconcile 엔드포인트는 충돌을 해결하고 스트림을 병합하여 조정된 단일 데이터 스트림을 반환합니다.
연결된 기기 동기화의 중복 간격 처리 및 타임스탬프 변경 가능성에 관한 자세한 내용은 데이터 관리 가이드를 참고하세요.
일중 추적 및 히스토그램
하루 종일의 세부 사용자 활동(예: 차트 및 그래프)을 표시하려면 다음 단계를 따르세요.
- 시간 또는 분 단계 히스토그램:
windowSize매개변수를 사용하여 기간 (예: 1분의 경우60s, 1시간의 경우3600s)을 지정하여rollUp엔드포인트를 쿼리합니다. 걸음 수 데이터는 1분(60s) 간격으로 기록되므로windowSize을60s이상으로 설정하세요. 분 미만 기간 크기 (예:10s또는30s)의 요청은 개별 분 합계를 슬라이스하지 않고 전체 분의 개수를 일치하는 첫 번째 하위 버킷에 배치합니다. 자세한 내용은 롤업 기간 및 기본 스토리지 해상도를 참고하세요. - 모든 걸음 수 기록:
list엔드포인트를 사용하여 가장 세부적인 원시 걸음 수 기록을 가져옵니다.
rollUp, dailyRollUp, reconcile 엔드포인트는 dataSourceFamily 매개변수를 허용하므로 특정 소스 그룹의 데이터를 필터링할 수 있습니다. 자세한 내용과 사용 예시는 데이터 필터링 가이드의 데이터 소스 계열별 필터링 섹션을 참고하세요.
웹훅을 사용한 실시간 동기화
새 걸음 데이터가 가져오거나 동기화될 때 실시간으로 알림을 받으려면 steps 데이터 유형 컬렉션을 구독하세요. REST 엔드포인트를 폴링하는 대신 이러한 웹훅 알림에 응답하여 클라이언트 측 대시보드를 동적으로 업데이트합니다. 구독을 설정하는 방법에 대한 자세한 내용은 웹훅 구독을 참고하세요.
실제 0 처리
Google Health API는 진정한 0을 구현하여 앉아 있는 간격을 해결합니다. 사용자가 트래커를 착용하고 있지만 특정 기간 동안 걷지 않으면 API는 일반 데이터 소스와 타임스탬프 메타데이터를 포함하지만 count 속성은 생략된 해당 간격의 레코드를 반환합니다.
이를 통해 다음을 구분할 수 있습니다.
- 정지 상태의 손목 착용 기간: 사용자가 기기를 착용하고 있지만 걷지 않습니다. 이렇게 하면
count속성이 없는 레코드 (0단계로 해석됨)가 반환됩니다. - 손목에서 벗어난 기간: 사용자가 기기를 착용하지 않습니다. 이렇게 하면 레코드가 반환되지 않아 데이터 격차가 커집니다.
자세한 내용은 데이터 존재 여부 및 실제 0 가이드를 참고하세요.