Jenis data Google Health API

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.

Tabel: Jenis data Google Health API
Jenis data
  dataType Parameter
  filter
Operasi
yang tersedia
Cakupan
Energi Aktif yang Terbakar
active-energy-burned
active_energy_burned
Jenis data: Interval
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Menit Aktif
active-minutes
active_minutes
Jenis data: Interval

Perangkat yang kompatibel

  • Fitbit Air
  • Fitbit Alta
  • Fitbit Alta HR
  • Fitbit Blaze
  • Fitbit Charge 2
  • Fitbit Charge 3
  • Fitbit Flex 2
  • Fitbit Inspire
  • Fitbit Inspire HR
  • Pixel Watch 4
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Menit Zona Aktif
active-zone-minutes
active_zone_minutes
Jenis data: Interval

Perangkat yang kompatibel

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Tingkat Aktivitas
activity-level
activity_level
Jenis data: Interval
list, reconcile .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Ketinggian
altitude
altitude
Jenis data: Interval
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Glukosa Darah
blood-glucose
blood_glucose
Jenis data: Contoh
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Lemak Tubuh
body-fat
body_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
calories-in-heart-rate-zone
calories_in_heart_rate_zone
Jenis data: Interval
rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Suhu Tubuh Inti
core-body-temperature
core_body_temperature
Jenis data: Contoh
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Variabilitas Detak Jantung Harian
daily-heart-rate-variability
daily_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-zones
daily_heart_rate_zones
Jenis data: Harian
list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Saturasi Oksigen Harian
daily-oxygen-saturation
daily_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-rate
daily_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-rate
daily_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-derivations
daily_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-max
daily_vo2_max
Jenis data: Harian

Perangkat yang kompatibel

list, reconcile .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Jarak
distance
distance
Jenis data: Interval

Perangkat yang kompatibel

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Elektrokardiogram (EKG)
electrocardiogram
electrocardiogram
Jenis data: Sesi

Perangkat yang kompatibel

list .ecg.readonly
Latihan
exercise
exercise
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
food
food
Jenis catatan: Makanan
list, get .nutrition.readonly
.nutrition.writeonly
Satuan Ukur Makanan
food-measurement-unit
food_measurement_unit
Jenis catatan: Makanan

Perangkat yang kompatibel

list, get .nutrition.readonly
.nutrition.writeonly
Detak Jantung
heart-rate
heart_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-variability
heart_rate_variability
Jenis data: Contoh

Perangkat yang kompatibel

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Tinggi
height
height
Jenis data: Contoh
list, get, reconcile, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Catatan Hidrasi
hydration-log
hydration_log
Jenis data: Sesi
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
Notifikasi Irama Tidak Teratur
irregular-rhythm-notification
irregular_rhythm_notification
Jenis data: Sesi
list .irn.readonly
Periode Menstruasi
menstrual-period
menstrual_period
Jenis data: Interval
create, update, batchDelete .reproductive_health.writeonly
Mood
moods
moods
Jenis data: Contoh
create, update, batchDelete .mindfulness.writeonly
Catatan Gizi
nutrition-log
nutrition_log
Jenis data: Contoh

Perangkat yang kompatibel

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
Alat Tes Ovulasi
ovulation-test
ovulation_test
Jenis data: Contoh
create, update, batchDelete .reproductive_health.writeonly
Saturasi Oksigen
oxygen-saturation
oxygen_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-summary
respiratory_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-max
run_vo2_max
Jenis data: Contoh

Perangkat yang kompatibel

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Periode Tidak Aktif
sedentary-period
sedentary_period
Jenis data: Interval

Perangkat yang kompatibel

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Tidur
sleep
sleep
Jenis data: Sesi

Perangkat yang kompatibel

list, get, reconcile, create, update, batchDelete .sleep.readonly
.sleep.writeonly
Langkah-Langkah
steps
steps
Jenis data: Interval

Perangkat yang kompatibel

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Data Panjang Lintasan Renang
swim-lengths-data
swim_lengths_data
Jenis data: Interval

Perangkat yang kompatibel

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Gejala
symptoms
symptoms
Jenis data: Contoh
create, update, batchDelete .logged_symptoms.writeonly
Waktu di Zona Detak Jantung
time-in-heart-rate-zone
time_in_heart_rate_zone
Jenis data: Interval
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Total Kalori
total-calories
total_calories
Jenis data: Interval

Perangkat yang kompatibel

rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
VO2 Maks
vo2-max
vo2_max
Jenis data: Contoh

Perangkat yang kompatibel

list, reconcile .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Berat
weight
weight
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, dan total-calories.
    • Rentang kueri maksimum 90 hari untuk semua jenis data lainnya.

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 menggunakan nextPageToken untuk 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 exercise dan sleep, 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 rollUp dan dailyRollUp), rentang tanggal kueri dibatasi berdasarkan jenis data:
    • Rentang maksimum 14 hari untuk calories-in-heart-rate-zone, heart-rate, active-minutes, dan total-calories.
    • Rentang maksimum 90 hari untuk semua jenis data gabungan lainnya.

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:

  1. 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.
  2. 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.
  3. 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.