Tabel berikut berisi daftar lengkap jenis data, dengan beberapa kolom untuk membantu Anda memahami representasi setiap jenis di Google Health API, serta cakupan yang tersedia untuk setiap jenis.
Jenis datadataType
Parameter filter |
Operasi yang tersedia |
Cakupan |
|---|---|---|
|
Energi Aktif yang Terbakar
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
Menit Aktif
active-minutesactive_minutes
Jenis data: Interval
Perangkat yang kompatibel
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
Menit Zona Aktif
active-zone-minutesactive_zone_minutes
Jenis data: Interval
Perangkat yang kompatibel
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
Tingkat Aktivitas
|
list, reconcile | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
Ketinggian
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
Glukosa Darah
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Lemak Tubuh
body-fatbody_fat
Jenis data: Contoh
Perangkat yang kompatibel
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Kalori dalam Zona Detak Jantung
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
Suhu Tubuh Inti
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Variabilitas Detak Jantung Harian
daily-heart-rate-variabilitydaily_heart_rate_variability
Jenis data: Harian
Perangkat yang kompatibel
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Zona Detak Jantung Harian
daily-heart-rate-zonesdaily_heart_rate_zones
Jenis data: Harian
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Saturasi Oksigen Harian
daily-oxygen-saturationdaily_oxygen_saturation
Jenis data: Harian
Perangkat yang kompatibel
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Laju Pernapasan Harian
daily-respiratory-ratedaily_respiratory_rate
Jenis data: Harian
Perangkat yang kompatibel
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Detak Jantung saat Istirahat Harian
daily-resting-heart-ratedaily_resting_heart_rate
Jenis data: Harian
Perangkat yang kompatibel
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Turunan Suhu Tidur Harian
daily-sleep-temperature-derivationsdaily_sleep_temperature_derivations
Jenis data: Harian
Perangkat yang kompatibel
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
VO2 Maks Harian
daily-vo2-maxdaily_vo2_max
Jenis data: Harian
Perangkat yang kompatibel
|
list, reconcile | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
Jarak
distancedistance
Jenis data: Interval
Perangkat yang kompatibel
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
Elektrokardiogram (EKG)
electrocardiogramelectrocardiogram
Jenis data: Sesi
Perangkat yang kompatibel
|
list | .ecg.readonly |
Latihan
exerciseexercise
Jenis data: Sesi
Perangkat yang kompatibel
|
list, get, reconcile, create, update, batchDelete | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
Lantai
|
reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
Makanan
|
list, get | .nutrition.readonly.nutrition.writeonly |
Satuan Ukur Makanan
food-measurement-unitfood_measurement_unit
Jenis catatan: Makanan
Perangkat yang kompatibel
|
list, get | .nutrition.readonly.nutrition.writeonly |
Detak Jantung
heart-rateheart_rate
Jenis data: Contoh
Perangkat yang kompatibel
|
list, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Variabilitas Detak Jantung
heart-rate-variabilityheart_rate_variability
Jenis data: Contoh
Perangkat yang kompatibel
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Tinggi
|
list, get, reconcile, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
Catatan Hidrasi
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
Notifikasi Irama Tidak Teratur
|
list | .irn.readonly |
Periode Menstruasi
menstrual-periodmenstrual_period
Jenis data: Interval
|
create, update, batchDelete | .reproductive_health.writeonly |
Mood
moodsmoods
Jenis data: Contoh
|
create, update, batchDelete | .mindfulness.writeonly |
Catatan Gizi
nutrition-lognutrition_log
Jenis data: Contoh
Perangkat yang kompatibel
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
Alat Tes Ovulasi
ovulation-testovulation_test
Jenis data: Contoh
|
create, update, batchDelete | .reproductive_health.writeonly |
Saturasi Oksigen
oxygen-saturationoxygen_saturation
Jenis data: Contoh
Perangkat yang kompatibel
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Ringkasan Tidur Laju Pernapasan
respiratory-rate-sleep-summaryrespiratory_rate_sleep_summary
Jenis data: Contoh
Perangkat yang kompatibel
|
list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
VO2 Maks Lari
run-vo2-maxrun_vo2_max
Jenis data: Contoh
Perangkat yang kompatibel
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
Periode Tidak Aktif
sedentary-periodsedentary_period
Jenis data: Interval
Perangkat yang kompatibel
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
Tidur
sleepsleep
Jenis data: Sesi
Perangkat yang kompatibel
|
list, get, reconcile, create, update, batchDelete | .sleep.readonly.sleep.writeonly |
Langkah-Langkah
stepssteps
Jenis data: Interval
Perangkat yang kompatibel
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
Data Panjang Lintasan Renang
swim-lengths-dataswim_lengths_data
Jenis data: Interval
Perangkat yang kompatibel
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
Gejala
symptomssymptoms
Jenis data: Contoh
|
create, update, batchDelete | .logged_symptoms.writeonly |
|
Waktu di Zona Detak Jantung
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
Total Kalori
total-caloriestotal_calories
Jenis data: Interval
Perangkat yang kompatibel
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
VO2 Maks
vo2-maxvo2_max
Jenis data: Contoh
Perangkat yang kompatibel
|
list, reconcile | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
Berat
weightweight
Jenis data: Contoh
Perangkat yang kompatibel
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
Batasan kueri
Saat membuat kueri titik data, penggabungan, atau penggabungan harian dari API, perhatikan batasan berikut:
- Persyaratan filter: Beberapa jenis data turunan hanya baca, seperti
total-calories, memerlukan filter yang menentukan waktu mulai interval (menggunakan waktu fisik atau waktu sipil). - Batas rentang kueri: Endpoint agregasi rollup dan rollup harian menerapkan batas rentang kueri maksimum berdasarkan jenis data:
- Rentang kueri maksimum 14 hari untuk
calories-in-heart-rate-zone,heart-rate,active-minutes, dantotal-calories. - Rentang kueri maksimum 90 hari untuk semua jenis data lainnya.
- Rentang kueri maksimum 14 hari untuk
Ketersediaan data
Pembaruan data pengguna hanya tersedia setelah pengguna menyinkronkan pemantau aktivitas atau memasukkan data baru secara manual ke aplikasi seluler atau aplikasi web Fitbit. Perangkat Fitbit dan aplikasi seluler Fitbit dapat menyinkronkan data secara otomatis setiap 15 menit jika aplikasi Fitbit terbuka di perangkat seluler dan keduanya memiliki koneksi data yang aktif serta berada dalam rentang Bluetooth. Jika pengguna melacak aktivitas menggunakan MobileTrack, MobileTrack akan disinkronkan setiap jam selama aplikasi terbuka.
Membuat kueri data historis
Salah satu manfaat utama Google Health API adalah kemampuan untuk melacak performa pengguna dan memantau data vital kesehatannya dalam jangka waktu yang lama. Anda dapat membuat kueri data pengguna sejak data tersebut dicatat; API tidak memberlakukan batasan atau pembatasan apa pun pada jumlah data historis yang dapat digunakan aplikasi Anda.
Namun, kueri data historis tetap diatur oleh batas frekuensi standar. Untuk mengelola stabilitas sistem dan mencegah payload yang berlebihan, Google Health API menggunakan penomoran halaman otomatis dengan ukuran halaman khusus endpoint. Perhatikan batas dan perilaku berikut:
- Penomoran halaman otomatis: Jika Anda membuat kueri rentang data yang panjang, API hanya akan menampilkan halaman pertama hasil hingga batas ukuran halaman untuk endpoint tersebut, beserta
nextPageToken. Anda harus menggunakannextPageTokenuntuk meminta halaman berikutnya. - Ukuran halaman variabel: Batas pembatasan bergantung pada endpoint
dan jenis data. Untuk sebagian besar jenis data, ukuran halaman dibatasi hingga maksimum 10.000.
Namun, untuk jenis data tertentu seperti
exercisedansleep, ukuran halaman default dan maksimum dibatasi hingga 25. Misalnya, jika klien meminta semua data tidur selama 10 tahun terakhir, API tetap hanya akan menampilkan 25 sesi tidur di halaman pertama. - Batasan rentang tanggal rollup: Untuk endpoint penggabungan dan rollup data
(seperti
rollUpdandailyRollUp), rentang tanggal kueri dibatasi berdasarkan jenis data:- Rentang maksimum 14 hari untuk
calories-in-heart-rate-zone,heart-rate,active-minutes, dantotal-calories. - Rentang maksimum 90 hari untuk semua jenis data gabungan lainnya.
- Rentang maksimum 14 hari untuk
Bergantung pada volume data historis yang dibutuhkan aplikasi Anda, pengambilan seluruh set data akan memerlukan penomoran halaman secara berurutan. Perhatikan hal ini saat mendesain proses sinkronisasi data aplikasi Anda.
Untuk memastikan performa yang optimal dan menghindari error API, ikuti panduan berikut saat mengirimkan kueri data historis:
Sinkronisasi data bertahap (pemuatan aktif versus pasif)
- Pemuatan "hot" awal: Ambil dan render hanya data 7–14 hari terakhir selama urutan pemuatan utama. Hal ini memastikan pengguna melihat data secara langsung tanpa menunggu kueri yang berjalan lama.
- Pemuatan "dingin" di latar belakang: Mendelegasikan pengambilan data historis lama ke proses latar belakang atau antrean asinkron dengan prioritas lebih rendah setelah UI utama dirender.
Pengelompokan kueri untuk agregasi
- Karena endpoint rollup dan rollup harian menerapkan batas rentang tanggal maksimum (14 atau 90 hari, bergantung pada jenis data), Anda harus memecah kueri agregasi historis yang besar menjadi interval yang lebih kecil dan berurutan dalam batas ini.
- Kelompokkan atau urutkan sub-kueri ini dengan aman untuk mematuhi batas konkurensi dan mempertahankan indikator progres UI yang stabil.
Memanfaatkan penggabungan yang sudah diagregasi
Menyusun ulang dasbor ringkasan dan diagram tren untuk menggunakan endpoint ringkasan yang telah diagregasi sebelumnya (seperti DailyRollUpDataPoints). Hal ini akan mengurangi overhead komputasi secara drastis di backend dan waktu transfer jaringan ke klien.
Penanganan error yang tangguh (percobaan ulang cerdas)
- Terapkan penanganan backoff eksponensial yang ketat saat mengalami batas
kecepatan (
429 Too Many Requests) dan waktu tunggu gateway server (504 Gateway Timeout). Jangan pernah mencoba lagi payload besar yang gagal segera. Percobaan ulang instan melipatgandakan kemacetan backend dan memperparah penurunan kualitas sistem.
Akses pihak ketiga
Perangkat Fitbit tidak dapat berkomunikasi secara langsung dengan aplikasi atau layanan pihak ketiga. Perangkat ini didesain untuk berkomunikasi dan menyinkronkan secara eksklusif dengan aplikasi seluler Fitbit.
Perangkat menyinkronkan data secara otomatis sepanjang hari, setiap kali aplikasi Fitbit dibuka, atau setiap 15 menit jika Bluetooth aktif dan aplikasi berjalan di latar belakang. Setelah proses sinkronisasi ini selesai, data tersebut akan tersedia untuk layanan pihak ketiga melalui Google Health API.
Standar jarak
Jarak latihan, seperti elevationGainMillimeters, diukur dalam milimeter sebagai satuan standar karena alasan berikut:
- Mempertahankan Presisi Data: Alasan terpenting penggunaan milimeter adalah untuk memastikan kita tidak kehilangan presisi apa pun dalam data yang kita baca dan berikan. Dengan menggunakan satuan yang lebih kecil seperti milimeter, kita dapat merepresentasikan pengukuran dengan akurasi tinggi.
- Standardisasi: Milimeter adalah satuan standar yang dirancang di seluruh layanan kami. Konsistensi ini membantu memastikan pengalaman yang seragam bagi developer yang berinteraksi dengan berbagai bagian API.
- Dukungan Sistem Pengukuran Luas: Menggunakan unit dasar seperti milimeter memudahkan developer mengonversi ke unit lain yang dipilih, terlepas dari apakah mereka menggunakan sistem pengukuran metrik, imperial, atau lainnya.
Durasi siang yang bervariasi
Penanganan waktu oleh Health API memprioritaskan waktu pengguna untuk memperhitungkan panjang hari yang bervariasi yang disebabkan oleh Waktu Musim Panas atau perjalanan. Setiap titik data disimpan dengan stempel waktu UTC fisik dan offset UTC yang aktif pada saat peristiwa terjadi. Hal ini memungkinkan sistem untuk:
- Memetakan peristiwa ke momen fisik yang tepat.
- Koreksi waktu ke konteks lokal pengguna untuk penggabungan.
Waktu Musim Panas
Saat Waktu Musim Panas terjadi, "kembali" akan menghasilkan hari sipil 25 jam, dan penggabungan untuk tanggal tersebut akan berisi data 25 jam. "Maju cepat" menghasilkan hari sipil 23 jam saat waktu kembali ke Waktu Standar.
Perjalanan
Perjalanan melintasi zona waktu dapat menyebabkan variasi yang lebih signifikan dalam durasi fisik satu hari sipil.
Gunakan endpoint dailyRollUp untuk menyelaraskan perbedaan zona waktu. Data tersebut otomatis diatribusikan ke hari kalender saat data direkam sesuai dengan waktu lokal pengguna, sehingga secara efektif "menggabungkan" hari tersebut meskipun ada perubahan zona waktu.