Google Health API के डेटा टाइप

इस टेबल में, डेटा टाइप की पूरी सूची दी गई है. इसमें कई कॉलम हैं, ताकि आपको यह समझने में मदद मिल सके कि Google Health API में हर टाइप को कैसे दिखाया जाता है. साथ ही, यह भी बताया गया है कि हर टाइप किस दायरे में उपलब्ध है.

डेटा टाइप फ़ील्ड

Google Health API के डेटा टाइप की टेबल में कई फ़ील्ड कॉलम शामिल हैं. इनसे आपको हर डेटा टाइप की जानकारी और ज़रूरी शर्तों को समझने में मदद मिलती है. ये कॉलम इस तरह के होते हैं:

टेबल: Google Health API के डेटा टाइप फ़ील्ड की जानकारी
फ़ील्ड ब्यौरा
dataType हाइफ़न से अलग किया गया आइडेंटिफ़ायर (उदाहरण के लिए, active-minutes), जिसका इस्तेमाल एंडपॉइंट यूआरएल में किया जाता है.
filter पैरामीटर अंडरस्कोर से अलग किया गया आइडेंटिफ़ायर (उदाहरण के लिए, active_minutes). इसका इस्तेमाल, हर दिन के रोलअप और रोलअप के अनुरोधों में dataType फ़िल्टर पैरामीटर की वैल्यू के तौर पर किया जाता है.
रिकॉर्ड टाइप

इससे रिकॉर्ड किए गए डेटा के स्ट्रक्चर और फ़ॉर्मैट का पता चलता है. यह डेटा पॉइंट के संसाधन प्रज़ेंटेशन के साथ अलाइन होता है. ये वैल्यू इस्तेमाल की जा सकती हैं:

  • Interval (यह किसी समयावधि के दौरान रिकॉर्ड किए गए मेज़रमेंट दिखाता है.)
  • Sample (यह तुरंत किए गए मेज़रमेंट को दिखाता है.)
  • Daily (यह हर दिन इकट्ठा या रिकॉर्ड किए गए मेज़रमेंट को दिखाता है.)
  • Session (यह रिकॉर्डिंग के लगातार ब्लॉक को दिखाता है, जैसे कि कसरत या इलेक्ट्रोकार्डियोग्राम (ईसीजी) सेशन.)
  • Food (यह खाने की किसी चीज़ या पोषण से जुड़ी डेटा इकाई को दिखाता है.)
उपलब्ध कार्रवाइयां डेटा टाइप के लिए इस्तेमाल किए जा सकने वाले एपीआई के तरीकों की सूची दिखाता है. जैसे, list, create, और rollUp.
स्कोप डेटा टाइप को ऐक्सेस करने के लिए ज़रूरी OAuth स्कोप.
वेबहुक की सुविधा इससे पता चलता है कि नया डेटा सिंक होने पर, डेटा टाइप वेबहुक का इस्तेमाल करके रीयल-टाइम सूचनाएं भेज सकता है.
ट्रू ज़ीरो की सहायता टीम इससे पता चलता है कि डेटा टाइप, शून्य वैल्यू को रिकॉर्ड करने की सुविधा देता है. इससे, शून्य वैल्यू (जैसे, शून्य ऐक्टिव मिनट) और मौजूद न होने वाले या रिकॉर्ड न किए गए डेटा के बीच अंतर किया जा सकता है.
स्टोरेज रिज़ॉल्यूशन डेटा पॉइंट को सेव करने के लिए, रिकॉर्डिंग या सैंपलिंग का कम से कम इंटरवल (उदाहरण के लिए, steps के लिए एक मिनट). रोलअप के लिए, यह कम से कम सुझाए गए windowSize को दिखाता है, ताकि सब-इंटरवल डेटा आर्टफ़ैक्ट के बिना, एग्रीगेशन को समान रूप से डिस्ट्रिब्यूट किया जा सके.
इस सुविधा के साथ काम करने वाले डिवाइस फ़िज़िकल डिवाइसों की ऐसी सूची जिसे बड़ा किया जा सकता है. ये डिवाइस, Fitbit ऐप्लिकेशन का इस्तेमाल करके, इस डेटा टाइप को Google Health API के साथ रिकॉर्ड और सिंक कर सकते हैं.

टेबल: Google Health API के डेटा टाइप
डेटा टाइप उपलब्ध
कार्रवाइयां
दायरा
खर्च की गई ऐक्टिव एनर्जी
dataType: active-energy-burned
filter parameter: active_energy_burned
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ऐक्टिव मिनट
dataType: active-minutes
filter parameter: active_minutes
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट

संगत डिवाइस

  • 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
ऐक्टिव ज़ोन मिनट
dataType: active-zone-minutes
filter parameter: active_zone_minutes
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट

संगत डिवाइस

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
गतिविधि का लेवल
dataType: activity-level
filter parameter: activity_level
रिकॉर्ड टाइप: इंटरवल
सूची, मिलान करें .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ऊंचाई
dataType: altitude
filter parameter: altitude
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ब्लड ग्लूकोज़
dataType: blood-glucose
filter parameter: blood_glucose
रिकॉर्ड टाइप: सैंपल
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
बॉडी फ़ैट
dataType: body-fat
filter parameter: body_fat
रिकॉर्ड टाइप: सैंपल

संगत डिवाइस

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
धड़कन की दर वाले ज़ोन में बर्न की गई कैलोरी
dataType: calories-in-heart-rate-zone
filter parameter: calories_in_heart_rate_zone
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
शरीर के अंदरूनी अंगों का तापमान
dataType: core-body-temperature
filter parameter: core_body_temperature
रिकॉर्ड टाइप: सैंपल
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
धड़कन की दर में रोज़ाना होने वाले उतार-चढ़ाव का डेटा
dataType: daily-heart-rate-variability
filter parameter: daily_heart_rate_variability
रिकॉर्ड टाइप: रोज़ाना

संगत डिवाइस

सूची, मिलान करें .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
धड़कन की दर वाले ज़ोन की रोज़ की जानकारी
dataType: daily-heart-rate-zones
filter parameter: daily_heart_rate_zones
रिकॉर्ड टाइप: रोज़ाना
सूची, मिलान करें .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ऑक्सीजन की मात्रा का रोज़ का डेटा
dataType: daily-oxygen-saturation
filter parameter: daily_oxygen_saturation
रिकॉर्ड टाइप: रोज़ाना

संगत डिवाइस

सूची, मिलान करें .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
सांस की दर का रोज़ का डेटा
dataType: daily-respiratory-rate
filter parameter: daily_respiratory_rate
रिकॉर्ड टाइप: रोज़ाना

संगत डिवाइस

सूची, मिलान करें .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
आराम करते समय धड़कन की दर का रोज़ का डेटा
dataType: daily-resting-heart-rate
filter parameter: daily_resting_heart_rate
रिकॉर्ड टाइप: हर दिन

संगत डिवाइस

सूची, मिलान करें .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
सोने के समय के तापमान का रोज़ाना का डेटा
dataType: daily-sleep-temperature-derivations
filter parameter: daily_sleep_temperature_derivations
रिकॉर्ड टाइप: रोज़ाना

संगत डिवाइस

सूची, मिलान करें .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
हर दिन का वीओ2 मैक्स
dataType: daily-vo2-max
filter parameter: daily_vo2_max
रिकॉर्ड टाइप: रोज़ाना

संगत डिवाइस

सूची, मिलान करें .activity_and_fitness.readonly
.activity_and_fitness.writeonly
दूरी
dataType: distance
filter parameter: distance
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट

संगत डिवाइस

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
इलेक्ट्रोकार्डियोग्राम (ईसीजी)
dataType: electrocardiogram
filter parameter: electrocardiogram
रिकॉर्ड टाइप: सेशन

संगत डिवाइस

सूची .ecg.readonly
कसरत
dataType: exercise
filter parameter: exercise
रिकॉर्ड टाइप: सेशन

संगत डिवाइस

list, get, reconcile, create, update, batchDelete .activity_and_fitness.readonly
.activity_and_fitness.writeonly
फ़्लोर
dataType: floors
filter parameter: floors
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
खाना
dataType: food
filter parameter: food
रिकॉर्ड टाइप: भोजन
list, get .nutrition.readonly
.nutrition.writeonly
खाने को मापने की इकाई
dataType: food-measurement-unit
filter parameter: food_measurement_unit
रिकॉर्ड टाइप: भोजन

संगत डिवाइस

list, get .nutrition.readonly
.nutrition.writeonly
धड़कन की दर
dataType: heart-rate
filter parameter: heart_rate
रिकॉर्ड टाइप: सैंपल
स्टोरेज से जुड़ी समस्या हल करने में लगने वाला समय: एक सेकंड

संगत डिवाइस

list, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
धड़कन की दर में उतार-चढ़ाव
dataType: heart-rate-variability
filter parameter: heart_rate_variability
रिकॉर्ड टाइप: सैंपल

संगत डिवाइस

सूची, मिलान करें .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ऊंचाई
dataType: height
filter parameter: height
रिकॉर्ड टाइप: सैंपल
list, get, reconcile, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
हाइड्रेशन का लॉग
dataType: hydration-log
filter parameter: hydration_log
रिकॉर्ड टाइप: सेशन
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
दिल की धड़कन अनियमित होने पर मिलने वाली सूचनाएं
dataType: irregular-rhythm-notification
filter parameter: irregular_rhythm_notification
रिकॉर्ड टाइप: सेशन
सूची .irn.readonly
माहवारी
dataType: menstrual-period
filter parameter: menstrual_period
रिकॉर्ड टाइप: इंटरवल
create, update, batchDelete .reproductive_health.writeonly
मूड
dataType: moods
filter parameter: moods
रिकॉर्ड टाइप: सैंपल
create, update, batchDelete .mindfulness.writeonly
पोषण से जुड़ा डेटा लॉग करें
dataType: nutrition-log
filter parameter: nutrition_log
रिकॉर्ड टाइप: सेशन

संगत डिवाइस

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
ऑव्युलेशन टेस्ट
dataType: ovulation-test
filter parameter: ovulation_test
रिकॉर्ड टाइप: सैंपल
create, update, batchDelete .reproductive_health.writeonly
ऑक्सीजन की मात्रा
dataType: oxygen-saturation
filter parameter: oxygen_saturation
रिकॉर्ड टाइप: सैंपल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट

संगत डिवाइस

सूची, मिलान करें .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
सोते समय सांस की दर की खास जानकारी
dataType: respiratory-rate-sleep-summary
filter parameter: respiratory_rate_sleep_summary
रिकॉर्ड टाइप: सैंपल

संगत डिवाइस

सूची, मिलान करें .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
दौड़ते समय वीओ2 मैक्स
dataType: run-vo2-max
filter parameter: run_vo2_max
रिकॉर्ड टाइप: सैंपल

संगत डिवाइस

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
बैठे रहने की अवधि
dataType: sedentary-period
filter parameter: sedentary_period
रिकॉर्ड टाइप: इंटरवल

संगत डिवाइस

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
त्वचा का तापमान मापने वाले सेंसर v4beta
सूची .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
सोने के समय का तापमान
dataType: sleep
filter parameter: sleep
रिकॉर्ड टाइप: सेशन

संगत डिवाइस

list, get, reconcile, create, update, batchDelete .sleep.readonly
.sleep.writeonly
तरीका
dataType: steps
filter parameter: steps
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट

संगत डिवाइस

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
तैराकी की लंबाई का डेटा
dataType: swim-lengths-data
filter parameter: swim_lengths_data
रिकॉर्ड टाइप: इंटरवल

संगत डिवाइस

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
लक्षण
dataType: symptoms
filter parameter: symptoms
रिकॉर्ड टाइप: सैंपल
create, update, batchDelete .logged_symptoms.writeonly
धड़कन की दर वाले ज़ोन में बिताया गया समय
dataType: time-in-heart-rate-zone
filter parameter: time_in_heart_rate_zone
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
कुल कैलोरी
dataType: total-calories
filter parameter: total_calories
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट

संगत डिवाइस

rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
वीओ2 मैक्स
dataType: vo2-max
filter parameter: vo2_max
रिकॉर्ड टाइप: सैंपल

संगत डिवाइस

सूची, मिलान करें .activity_and_fitness.readonly
.activity_and_fitness.writeonly
वज़न
dataType: weight
filter parameter: weight
रिकॉर्ड टाइप: सैंपल

संगत डिवाइस

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly

क्वेरी से जुड़ी शर्तें

एपीआई से डेटा पॉइंट, रोलअप या रोज़ के रोलअप के बारे में क्वेरी करते समय, इन पाबंदियों का ध्यान रखें:

  • फ़िल्टर से जुड़ी ज़रूरी शर्तें: सिर्फ़ पढ़ने के लिए उपलब्ध कुछ डेटा टाइप, जैसे कि total-calories के लिए, फ़िल्टर की ज़रूरत होती है. इससे इंटरवल के शुरू होने का समय तय किया जाता है. इसके लिए, फ़िज़िकल या सिविल टाइम का इस्तेमाल किया जाता है.
  • क्वेरी रेंज की सीमाएं: रोलअप और रोज़ के रोलअप एग्रीगेशन एंडपॉइंट, डेटा टाइप के आधार पर क्वेरी रेंज की ज़्यादा से ज़्यादा सीमाएं लागू करते हैं:
    • calories-in-heart-rate-zone, heart-rate, active-minutes, और total-calories के लिए, क्वेरी की ज़्यादा से ज़्यादा रेंज 14 दिन है.
    • अन्य सभी तरह के डेटा के लिए, क्वेरी की ज़्यादा से ज़्यादा सीमा 90 दिन है.
  • रोलअप विंडो का साइज़: rollUp एंडपॉइंट को कॉल करते समय, windowSize की अवधि कम से कम एक सेकंड ("1s") होनी चाहिए. एक सेकंड से कम की अवधि को INVALID_ARGUMENT के साथ अस्वीकार कर दिया जाता है. इसके अलावा, डेटा टाइप के स्टोरेज रिज़ॉल्यूशन के बराबर या उससे बड़ा windowSize चुनें. जैसे, एक मिनट के इंटरवल वाले डेटा टाइप के लिए "60s", जैसे कि steps और distance. इससे सब-इंटरवल में असमान डिस्ट्रिब्यूशन से बचा जा सकता है. ज़्यादा जानकारी के लिए, रोलअप विंडो और स्टोरेज रिज़ॉल्यूशन लेख पढ़ें.

रोज़ाना और इंटरवल के हिसाब से डेटा टाइप

Google Health API, शरीर से जुड़ी कुछ मेट्रिक के लिए दो अलग-अलग तरह का डेटा उपलब्ध कराता है. जैसे, धड़कन की दर में उतार-चढ़ाव (एचआरवी) या ऑक्सीजन की मात्रा (SpO2). ये दो तरह के डेटा हैं: रोज़ाना का डेटा और इंटरवल का डेटा. इनके बीच के अंतर को समझना ज़रूरी है, ताकि आप अपने इस्तेमाल के हिसाब से सही मेट्रिक चुन सकें:

  • हर दिन: पूरे दिन के लिए, पहले से इकट्ठा की गई एक खास जानकारी. प्रोसेसिंग में लगने वाले समय को बचाने के लिए, हाई-लेवल ट्रेंड और डेली डैशबोर्ड के लिए इसका इस्तेमाल करें.

  • इंटरवल: पूरे दिन के दौरान, बारीकी से और हाई रिज़ॉल्यूशन में लिए गए मेज़रमेंट. इसका इस्तेमाल, दिन के दौरान होने वाले उतार-चढ़ाव को चार्ट करने या हर घंटे के हिसाब से गहराई से विश्लेषण करने के लिए करें.

डेटा की उपलब्धता

उपयोगकर्ता के डेटा में अपडेट सिर्फ़ तब उपलब्ध होते हैं, जब वे गतिविधि को ट्रैक करने वाले अपने डिवाइस को सिंक करते हैं या Google Health ऐप्लिकेशन में नया डेटा मैन्युअल तरीके से डालते हैं. Fitbit डिवाइस और Google Health ऐप्लिकेशन, हर 15 मिनट में अपने-आप सिंक हो सकते हैं. इसके लिए, यह ज़रूरी है कि फ़ोन या टैबलेट पर Google Health ऐप्लिकेशन खुला हो, दोनों डिवाइसों के बीच डेटा कनेक्शन चालू हो, और वे ब्लूटूथ की रेंज में हों. अगर उपयोगकर्ता MobileTrack का इस्तेमाल करके गतिविधि को ट्रैक कर रहा है, तो ऐप्लिकेशन खुला रहने पर MobileTrack हर घंटे सिंक होता है.

पुराने डेटा के लिए क्वेरी की जा रही है

Google Health API का एक मुख्य फ़ायदा यह है कि इससे उपयोगकर्ता की परफ़ॉर्मेंस को ट्रैक किया जा सकता है. साथ ही, लंबे समय तक उनकी सेहत से जुड़ी ज़रूरी जानकारी को मॉनिटर किया जा सकता है. किसी उपयोगकर्ता के डेटा को रिकॉर्ड किए जाने के बाद से, कभी भी क्वेरी की जा सकती है. एपीआई, आपके ऐप्लिकेशन के लिए पुराने डेटा की मात्रा पर कोई सीमा या पाबंदी नहीं लगाता.

हालांकि, पुराने डेटा के लिए क्वेरी करने पर, अब भी अनुरोध संख्या सीमित करने की स्टैंडर्ड नीति लागू होती है. सिस्टम को बेहतर तरीके से चलाने और पेलोड को ज़्यादा होने से रोकने के लिए, Google Health API, एंडपॉइंट के हिसाब से पेज के साइज़ के साथ, अपने-आप पेज नंबर डालने की सुविधा का इस्तेमाल करता है. इन सीमाओं और व्यवहार पर ध्यान दें:

  • पेज पर अपने-आप डेटा बांटने की सुविधा: अगर आपने लंबे समय के डेटा के लिए क्वेरी की है, तो एपीआई सिर्फ़ नतीजों का पहला पेज दिखाएगा. यह पेज, उस एंडपॉइंट के लिए पेज साइज़ की सीमा के हिसाब से होगा. साथ ही, इसमें nextPageToken भी शामिल होगा. बाद के पेजों का अनुरोध करने के लिए, आपको nextPageToken का इस्तेमाल करना होगा.
  • पेज के साइज़ में बदलाव: कैपिंग की सीमाएं, एंडपॉइंट और डेटा टाइप पर निर्भर करती हैं. ज़्यादातर डेटा टाइप के लिए, पेज साइज़ ज़्यादा से ज़्यादा 10,000 पर सेट होता है. हालांकि, exercise और sleep जैसे कुछ डेटा टाइप के लिए, पेज का डिफ़ॉल्ट और ज़्यादा से ज़्यादा साइज़ 25 पर सेट होता है. उदाहरण के लिए, अगर कोई क्लाइंट पिछले 10 सालों का नींद का सारा डेटा मांगता है, तो भी एपीआई पहले पेज पर नींद के सिर्फ़ 25 सेशन दिखाएगा.
  • रोलअप की तारीख की सीमा से जुड़ी पाबंदियां: डेटा रोलअप और एग्रीगेशन एंडपॉइंट (जैसे, rollUp और dailyRollUp) के लिए, क्वेरी की तारीख की सीमाएं, डेटा टाइप के आधार पर तय की जाती हैं:
    • calories-in-heart-rate-zone, heart-rate, active-minutes, और total-calories के लिए, ज़्यादा से ज़्यादा 14 दिन की रेंज.
    • अन्य सभी रोलअप डेटा टाइप के लिए, ज़्यादा से ज़्यादा 90 दिनों की रेंज.

आपके ऐप्लिकेशन को कितने पुराने डेटा की ज़रूरत है, इसके आधार पर पूरे डेटासेट को वापस पाने के लिए, पेजों को क्रम से पेज नंबर देना होगा. अपने ऐप्लिकेशन के डेटा को सिंक करने की प्रोसेस डिज़ाइन करते समय, इस बात का ध्यान रखें.

पुराने डेटा के लिए क्वेरी करते समय, इन दिशा-निर्देशों का पालन करें. इससे, एपीआई की परफ़ॉर्मेंस बेहतर होगी और गड़बड़ियों से बचा जा सकेगा:

डेटा सिंक करने की प्रोसेस (हॉट लोड बनाम कोल्ड लोड)

  • शुरुआती "हॉट" लोड: प्राइमरी लोड सीक्वेंस के दौरान, सिर्फ़ पिछले 7 से 14 दिनों का डेटा फ़ेच और रेंडर करें. इससे यह पक्का होता है कि उपयोगकर्ताओं को डेटा तुरंत दिखे और उन्हें लंबे समय तक चलने वाली क्वेरी के लिए इंतज़ार न करना पड़े.
  • बैकग्राउंड में "कोल्ड" लोड: प्राइमरी यूज़र इंटरफ़ेस (यूआई) रेंडर होने के बाद, पुराने डेटा को वापस पाने की प्रोसेस को एसिंक्रोनस, कम प्राथमिकता वाली सूची या बैकग्राउंड में चल रही प्रोसेस को सौंपें.

एग्रीगेशन के लिए क्वेरी चंकिंग

  • रोलअप और डेली रोलअप एंडपॉइंट, तारीख की सीमा की ज़्यादा से ज़्यादा सीमा (डेटा टाइप के आधार पर 14 या 90 दिन) लागू करते हैं. इसलिए, आपको इन सीमाओं के अंदर, बड़े ऐतिहासिक एग्रीगेशन क्वेरी को छोटे, क्रम से चलने वाले इंटरवल में बांटना होगा.
  • इन सब-क्वेरी को बैच या क्रम में सुरक्षित तरीके से प्रोसेस करें, ताकि एक साथ कई क्वेरी प्रोसेस करने की सीमाओं का पालन किया जा सके. साथ ही, यूज़र इंटरफ़ेस (यूआई) की प्रोग्रेस दिखाने वाले इंडिकेटर को सही तरीके से मैनेज किया जा सके.

पहले से एग्रीगेट किए गए रोल-अप का इस्तेमाल करना

खास जानकारी वाले डैशबोर्ड और रुझान दिखाने वाले चार्ट को फिर से तैयार करें, ताकि पहले से इकट्ठा किए गए डेटा और खास जानकारी वाले एंडपॉइंट (जैसे, DailyRollUpDataPoints) का इस्तेमाल किया जा सके. इससे बैकएंड पर कंप्यूट ओवरहेड और क्लाइंट को नेटवर्क ट्रांसफ़र करने में लगने वाला समय काफ़ी कम हो जाएगा.

गड़बड़ी को ठीक करने की बेहतर सुविधा (स्मार्ट तरीके से फिर से कोशिश करना)

  • अनुरोध संख्या सीमित करने (429 Too Many Requests) और सर्वर गेटवे टाइम आउट (504 Gateway Timeout) की गड़बड़ियां मिलने पर, एक्स्पोनेंशियल बैकऑफ़ को सख्ती से लागू करें. बड़े और फ़ेल हो चुके पेलोड को तुरंत फिर से भेजने की कोशिश न करें. तुरंत फिर से कोशिश करने से, बैकएंड पर ट्रैफ़िक बढ़ता है और सिस्टम की परफ़ॉर्मेंस खराब होती है.

तीसरे पक्ष का ऐक्सेस

Fitbit डिवाइस, तीसरे पक्ष के ऐप्लिकेशन या सेवाओं के साथ सीधे तौर पर कम्यूनिकेट नहीं कर सकते. इन डिवाइसों को खास तौर पर, Google Health ऐप्लिकेशन के साथ कम्यूनिकेट और सिंक करने के लिए डिज़ाइन किया गया है.

डिवाइस, दिन भर में डेटा अपने-आप सिंक करता है. ऐसा तब होता है, जब Google Health ऐप्लिकेशन खुला हो. इसके अलावा, अगर ब्लूटूथ चालू है और ऐप्लिकेशन बैकग्राउंड में चल रहा है, तो हर 15 मिनट में डेटा सिंक होता है. सिंक करने की यह प्रोसेस पूरी होने के बाद, डेटा तीसरे पक्ष की सेवाओं के लिए उपलब्ध हो जाता है. इसके लिए, Google Health API का इस्तेमाल किया जाता है.

डेटा क्वालिटी और वैधता के आधार पर फ़िल्टर करना

Google Health API, सेंसर टेलीमेट्री की पुष्टि करता है और अमान्य मेज़रमेंट को हटा देता है. इससे, क्लाइंट-साइड पर ग़ैर-ज़रूरी डेटा को फ़िल्टर करने की ज़रूरत नहीं पड़ती और सेहत की सटीक मेट्रिक मिलती हैं. इसके बाद, वह जवाब देता है:

  • खून में ऑक्सीजन की मात्रा (oxygen-saturation) की हर मिनट की रीडिंग के लिए, एपीआई सिर्फ़ पुष्टि की गई रीडिंग दिखाता है. साथ ही, यह उन मिनट की रीडिंग हटा देता है जिन्हें अमान्य के तौर पर मार्क किया गया है. ऐसा हाथ के हिलने-डुलने, कलाई पर डिवाइस के ढीले होने या सेंसर का कॉन्फ़िडेंस स्कोर 50% से कम होने की वजह से होता है. इसके अलावा, अमान्य रीडिंग से तीन मिनट पहले और बाद की रीडिंग और चार मिनट से कम की मान्य रीडिंग को भी हटा दिया जाता है. इस वजह से, मिनट के हिसाब से कवरेज कम हो सकता है और इसमें गैप हो सकते हैं. ज़्यादा जानकारी के लिए, हर मिनट के हिसाब से SpO2 डेटा को फ़िल्टर करना और डेटा की वैधता लेख पढ़ें.

दूरी के स्टैंडर्ड

कसरत के दौरान तय की गई दूरी, जैसे कि elevationGainMillimeters को स्टैंडर्ड यूनिट के तौर पर मिलीमीटर में मेज़र किया जाता है. इसकी वजहें यहां बताई गई हैं:

  1. डेटा को सटीक बनाए रखना: मिलीमीटर का इस्तेमाल करने की सबसे अहम वजह यह है कि हम जो डेटा पढ़ते हैं और उपलब्ध कराते हैं उसमें कोई गड़बड़ी न हो. मिलीमीटर जैसी छोटी इकाई का इस्तेमाल करने से, हमें माप को ज़्यादा सटीक तरीके से दिखाने में मदद मिलती है.
  2. स्टैंडर्डाइज़ेशन: हमारी सभी सेवाओं में, मिलीमीटर को स्टैंडर्ड यूनिट के तौर पर इस्तेमाल किया जाता है. इस समानता से यह पक्का करने में मदद मिलती है कि एपीआई के अलग-अलग हिस्सों के साथ इंटरैक्ट करने वाले डेवलपर को एक जैसा अनुभव मिले.
  3. मेज़रमेंट सिस्टम के लिए ज़्यादा सपोर्ट: मिलीमीटर जैसी बेस यूनिट का इस्तेमाल करने से, डेवलपर के लिए किसी भी अन्य चुनी गई यूनिट में कन्वर्ट करना आसान हो जाता है. इससे कोई फ़र्क़ नहीं पड़ता कि वे मेट्रिक, इंपीरियल या अन्य मेज़रमेंट सिस्टम का इस्तेमाल कर रहे हैं.

दिन की अवधि में बदलाव

Health API, समय को मैनेज करने के लिए उपयोगकर्ता के समय को प्राथमिकता देता है. इससे डेलाइट सेविंग टाइम या यात्रा की वजह से, दिन की अवधि में होने वाले बदलावों को ध्यान में रखा जाता है. हर डेटा पॉइंट को यूटीसी टाइमस्टैंप और इवेंट के समय चालू यूटीसी ऑफ़सेट, दोनों के साथ सेव किया जाता है. इससे सिस्टम को ये काम करने में मदद मिलती है:

  • इवेंट को किसी सटीक फ़िज़िकल इंस्टैंस से मैप करें.
  • एग्रीगेशन के लिए, उपयोगकर्ता के लोकल कॉन्टेक्स्ट के हिसाब से समय को सही करें.

डेलाइट सेविंग टाइम

डेलाइट सेविंग टाइम के दौरान, "फ़ॉल बैक" की वजह से एक दिन 25 घंटे का हो जाता है. साथ ही, उस तारीख के रोलअप में 25 घंटे का डेटा शामिल होगा. "स्प्रिंग फ़ॉरवर्ड" की वजह से, सिविल डे 23 घंटे का हो जाता है. इसमें समय, स्टैंडर्ड टाइम पर वापस चला जाता है.

यात्रा

एक टाइम ज़ोन से दूसरे टाइम ज़ोन में जाने पर, एक सिविल डे की अवधि में और भी ज़्यादा अंतर आ सकता है.

टाइम ज़ोन के अंतर को ठीक करने के लिए, dailyRollUp एंडपॉइंट का इस्तेमाल करें. यह डेटा को अपने-आप उस कैलेंडर दिन के हिसाब से एट्रिब्यूट करता है जिस दिन उसे रिकॉर्ड किया गया था. यह उपयोगकर्ता के स्थानीय समय के हिसाब से होता है. इससे टाइम ज़ोन में बदलाव होने के बावजूद, दिन को असरदार तरीके से "जोड़ा" जाता है. ज़्यादा जानकारी और उदाहरणों के लिए, कुल डेटा की गाइड में कैलेंडर के दिनों के हिसाब से कुल डेटा देखें.