Mengembangkan Pengalaman Langkah dengan Google Health API

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:

Tabel: Jenis data Langkah Google Health API
Jenis data Operasi
yang tersedia
Cakupan
Langkah-Langkah
dataType: steps
filter 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 (seperti 60s untuk 1 menit atau 3600s untuk 1 jam) menggunakan parameter windowSize. Karena data langkah direkam dalam interval 1 menit (60s), tetapkan windowSize ke setidaknya 60s. Permintaan dengan ukuran jendela kurang dari satu menit (seperti 10s atau 30s) 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 list untuk 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.