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
Jenis
catatan
Operasi
yang tersedia
Cakupan Dukungan
webhook
Dukungan
nol sebenarnya
Energi Aktif yang Terbakar
  active-energy-burned
  active_energy_burned
Interval list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Menit Aktif
  active-minutes
  active_minutes
Interval list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Menit Zona Aktif
  active-zone-minutes
  active_zone_minutes
Interval list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Tingkat Aktivitas
  activity-level
  activity_level
Interval list, reconcile .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Ketinggian
  altitude
  altitude
Interval list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Glukosa Darah
  blood-glucose
  blood_glucose
Contoh list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Lemak Tubuh
  body-fat
  body_fat
Contoh list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Kalori Masuk Zona Detak Jantung
  calories-in-heart-rate-zone
  calories_in_heart_rate_zone
Interval rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Suhu Tubuh Inti
  core-body-temperature
  core_body_temperature
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
Harian list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Zona Detak Jantung Harian
  daily-heart-rate-zones
  daily_heart_rate_zones
Harian list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Saturasi Oksigen Harian
  daily-oxygen-saturation
  daily_oxygen_saturation
Harian list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Laju Pernapasan Harian
  daily-respiratory-rate
  daily_respiratory_rate
Harian 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
Harian list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Turunan Suhu Tidur Harian
  daily-sleep-temperature-derivations
  daily_sleep_temperature_derivations
Harian list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
VO2 Maks Harian
  daily-vo2-max
  daily_vo2_max
Harian list, reconcile .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Jarak
  distance
  distance
Interval list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Elektrokardiogram (EKG)
  electrocardiogram
  electrocardiogram
Sesi list .ecg.readonly
Latihan
  exercise
  exercise
Sesi list, get, reconcile, create, update, batchDelete .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Lantai
  floors
  floors
Interval reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Makanan
  food
  food
Makanan list, get .nutrition.readonly
.nutrition.writeonly
Satuan Ukur Makanan
  food-measurement-unit
  food_measurement_unit
Makanan list, get .nutrition.readonly
.nutrition.writeonly
Detak Jantung
  heart-rate
  heart_rate
Contoh list, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Variabilitas Detak Jantung
  heart-rate-variability
  heart_rate_variability
Contoh list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Tinggi
  height
  height
Contoh list, get, reconcile, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Catatan Hidrasi
  hydration-log
  hydration_log
Sesi list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
Notifikasi Irama Tidak Teratur
  irregular-rhythm-notification
  irregular_rhythm_notification
Sesi list .irn.readonly
Periode Menstruasi
  menstrual-period
  menstrual_period
Interval create, update, batchDelete .reproductive_health.writeonly
Suasana Hati
  moods
  moods
Contoh create, update, batchDelete .mindfulness.writeonly
Log Nutrisi
  nutrition-log
  nutrition_log
Contoh list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
Uji Ovulasi
  ovulation-test
  ovulation_test
Contoh create, update, batchDelete .reproductive_health.writeonly
Saturasi Oksigen
  oxygen-saturation
  oxygen_saturation
Contoh list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Ringkasan Tidur Laju Pernapasan
  respiratory-rate-sleep-summary
  respiratory_rate_sleep_summary
Contoh list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
VO2 Maks Lari
  run-vo2-max
  run_vo2_max
Contoh list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Periode Tidak Aktif
  sedentary-period
  sedentary_period
Interval list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Tidur
  sleep
  sleep
Sesi list, get, reconcile, create, update, batchDelete .sleep.readonly
.sleep.writeonly
Langkah-langkah
  steps
  steps
Interval list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Data Panjang Kolam Renang
  swim-lengths-data
  swim_lengths_data
Interval list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Gejala
  symptoms
  symptoms
Contoh create, update, batchDelete .logged_symptoms.writeonly
Waktu di Zona Detak Jantung
  time-in-heart-rate-zone
  time_in_heart_rate_zone
Interval list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Total Kalori
  total-calories
  total_calories
Interval rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
VO2 Max
  vo2-max
  vo2_max
Contoh list, reconcile .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Bobot
  weight
  weight
Contoh 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: Rentang kueri maksimum untuk calories-in-heart-rate-zone, heart-rate, active-minutes, dan total-calories adalah 14 hari. Rentang kueri maksimum untuk semua jenis data lainnya adalah 90 hari.

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 menyinkronkan 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 mengurangi jumlah panggilan API yang relatif terhadap batas ini, Google Health API mendukung kueri data di rentang tanggal. Perhatikan batas permintaan dan penomoran halaman berikut:

  • Setiap endpoint menampilkan ukuran halaman maksimum 10.000 titik data per halaman.
  • Rentang tanggal kueri dibatasi antara 14 dan 90 hari per permintaan.

Bergantung pada volume data historis yang dibutuhkan aplikasi Anda, pengambilan seluruh set data mungkin memerlukan beberapa permintaan berurutan dan memerlukan waktu tambahan. 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 berbasis waktu

  • Jangan meminta rentang multi-tahun atau multi-bulan dalam satu panggilan API. Bagi kueri historis yang besar menjadi interval yang lebih kecil dan berurutan (misalnya, 1 minggu per permintaan).
  • Gabungkan atau urutkan sub-kueri ini dengan aman untuk mematuhi batas konkurensi dan mempertahankan indikator progres UI yang stabil.

Memanfaatkan ringkasan 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.
  • Jika kueri berulang kali mengalami waktu tunggu habis, otomatis kembali ke jangka waktu yang lebih kecil (misalnya, mengurangi potongan 1 minggu menjadi 3 hari).

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 selisih 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.