Google Health API melacak data langkah dan aktivitas pengguna menggunakan jenis data interval steps. Jumlah langkah mewakili pengukuran dasar aktivitas fisik harian, membantu developer melacak progres kebugaran, menghitung pengeluaran energi, dan membuat ringkasan aktivitas harian yang ditampilkan kepada pengguna.
Pahami cara membaca dan menyusun metrik jumlah langkah di aplikasi Anda untuk memberikan pengalaman terbaik bagi pengguna.
Jenis data yang didukung
API ini mendukung jenis data berikut untuk melacak jumlah langkah:
| Jenis data | Operasi yang tersedia |
Cakupan |
|---|---|---|
|
Langkah-Langkah
dataType:
stepsfilter parameter: steps
Jenis data: Interval
Resolusi penyimpanan: 1 menit
Perangkat yang kompatibel
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
Panduan
Saat mengintegrasikan pelacakan langkah ke dalam aplikasi Anda, ikuti panduan desain dan penerapan berikut.
Penghitungan kecepatan dan laju
Google Health API menggunakan formula standar untuk menghitung kecepatan dan laju:
- Kecepatan =
distance / time(hour) - Kecepatan =
time(seconds) / distance
Header Accept-Language yang ditentukan dalam permintaan menentukan satuan
jarak.
Ringkasan harian
Untuk menggabungkan jumlah langkah harian secara akurat saat bepergian, perubahan zona waktu, atau
perubahan waktu musim panas, jangan lakukan penghitungan durasi sisi klien. Sebagai gantinya,
kueri endpoint dailyRollUp yang merekonsiliasi kesenjangan data fisik
secara otomatis menggunakan selisih UTC. Penggabungan menampilkan StepsRollupValue yang berisi kolom countSum, yang merepresentasikan total langkah yang terakumulasi untuk hari yang diminta.
Menggambar antarmuka pengguna (Rekonsiliasi)
Saat membuat elemen antarmuka pengguna untuk menampilkan data langkah, gunakan endpoint reconcile. Jika beberapa sumber data (seperti smartwatch dan ponsel)
telah mencatat langkah secara bersamaan, endpoint reconcile akan menyelesaikan
konflik dan menggabungkan aliran untuk menampilkan satu aliran data yang telah disesuaikan.
Untuk mengetahui informasi tentang cara menangani interval yang tumpang-tindih dari sinkronisasi perangkat terhubung dan kemampuan pengubahan stempel waktu, lihat Panduan pengelolaan data.
Pelacakan dan histogram intraday
Untuk menampilkan aktivitas pengguna yang mendetail sepanjang hari (seperti diagram dan grafik):
- Histogram langkah per jam atau per menit: Kueri endpoint
rollUp, dengan menentukan durasi (seperti60suntuk 1 menit atau3600suntuk 1 jam) menggunakan parameterwindowSize. Karena data langkah direkam dalam interval 1 menit (60s), tetapkanwindowSizeke setidaknya60s. Permintaan dengan ukuran jendela kurang dari satu menit (seperti10satau30s) tidak mengelompokkan total per menit, sehingga menempatkan jumlah total per menit ke dalam sub-bucket pertama yang cocok. Untuk mengetahui detailnya, lihat Ukuran jendela penggabungan dan resolusi penyimpanan pokok. - Semua data langkah: Gunakan endpoint
listuntuk mengambil data langkah mentah yang paling terperinci.
Endpoint rollUp, dailyRollUp, dan reconcile menerima parameter
dataSourceFamily, sehingga Anda dapat memfilter data dari grup sumber
tertentu. Untuk mengetahui detail dan contoh penggunaan selengkapnya, lihat bagian
Memfilter menurut famili sumber data
dalam panduan Memfilter data.
Sinkronisasi real-time menggunakan webhook
Berlangganan koleksi jenis data steps untuk mendapatkan notifikasi secara real-time
saat data langkah baru diimpor atau disinkronkan. Daripada melakukan polling pada endpoint REST, perbarui dasbor sisi klien secara dinamis sebagai respons terhadap notifikasi webhook ini. Untuk mengetahui detail cara menyiapkan langganan, lihat
Langganan webhook.
Menangani nol sebenarnya
Google Health API menerapkan nol sebenarnya untuk menyelesaikan interval tidak aktif. Jika
pengguna memakai pelacak, tetapi tidak berjalan selama jangka waktu tertentu, API
akan menampilkan catatan untuk interval tersebut yang berisi sumber data normal dan
metadata stempel waktu, tetapi tidak menyertakan properti count.
Hal ini memungkinkan Anda membedakan antara:
- Periode tidak bergerak di pergelangan tangan: Pengguna memakai perangkat, tetapi tidak berjalan. Kueri ini akan menampilkan data tanpa properti
count(ditafsirkan sebagai nol langkah). - Periode tidak dipakai: Pengguna tidak memakai perangkat. Hal ini tidak akan menampilkan catatan, sehingga menyebabkan kesenjangan data yang besar.
Lihat panduan Kehadiran data dan nol sebenarnya untuk mengetahui detail selengkapnya.