इस टेबल में, डेटा टाइप की पूरी सूची दी गई है. इसमें कई कॉलम हैं, ताकि आपको यह समझने में मदद मिल सके कि Google Health API में हर टाइप को कैसे दिखाया जाता है. साथ ही, यह भी बताया गया है कि हर टाइप किस स्कोप के तहत उपलब्ध है.
डेटा टाइप फ़ील्ड
Google Health API के डेटा टाइप की टेबल में कई फ़ील्ड कॉलम शामिल हैं. इनसे आपको हर डेटा टाइप को दिखाने के तरीके और ज़रूरी शर्तों को समझने में मदद मिलती है. ये कॉलम इस तरह के होते हैं:
| फ़ील्ड | ब्यौरा |
|---|---|
dataType |
हाइफ़न से अलग किया गया आइडेंटिफ़ायर (उदाहरण के लिए, active-minutes), जिसका इस्तेमाल एंडपॉइंट यूआरएल में किया जाता है. |
filter पैरामीटर |
अंडरस्कोर से अलग किया गया आइडेंटिफ़ायर (उदाहरण के लिए, active_minutes). इसका इस्तेमाल, हर दिन के रोलअप और रोलअप के अनुरोधों में, dataType फ़िल्टर पैरामीटर की वैल्यू के तौर पर किया जाता है. |
| रिकॉर्ड टाइप | इससे रिकॉर्ड किए गए डेटा के स्ट्रक्चर और फ़ॉर्मैट की जानकारी मिलती है. बैकएंड पर, यह डेटा पॉइंट के रिसॉर्स रिप्रज़ेंटेशन के साथ अलाइन होता है. ये वैल्यू इस्तेमाल की जा सकती हैं:
|
| उपलब्ध कार्रवाइयां | डेटा टाइप के लिए इस्तेमाल किए जा सकने वाले एपीआई के तरीकों की सूची दिखाता है. जैसे, list, create, और rollUp. |
| स्कोप | डेटा टाइप को ऐक्सेस करने के लिए ज़रूरी OAuth स्कोप. |
| वेबहुक की सुविधा | इससे पता चलता है कि नया डेटा सिंक होने पर, डेटा टाइप वेबहुक का इस्तेमाल करके सूचनाएं भेजने की सुविधा देता है. |
| ट्रू ज़ीरो की सहायता टीम | इससे पता चलता है कि डेटा टाइप, शून्य वैल्यू को रिकॉर्ड करने की सुविधा देता है. इससे, शून्य वैल्यू (जैसे, शून्य ऐक्टिव मिनट) और मौजूद न होने वाले या रिकॉर्ड न किए गए डेटा के बीच अंतर किया जा सकता है. |
| स्टोरेज रिज़ॉल्यूशन | डेटा पॉइंट को सेव करने के लिए, रिकॉर्डिंग या सैंपलिंग का कम से कम इंटरवल. उदाहरण के लिए, steps के लिए एक मिनट. रोलअप के लिए, यह कम से कम सुझाए गए windowSize को दिखाता है. इससे यह पक्का किया जाता है कि सब-इंटरवल डेटा आर्टफ़ैक्ट के बिना, एग्रीगेशन को समान रूप से डिस्ट्रिब्यूट किया जाए. |
| इस सुविधा के साथ काम करने वाले डिवाइस | उन फ़िज़िकल डिवाइसों की सूची जिन्हें बड़ा करके देखा जा सकता है. ये डिवाइस, इस डेटा टाइप को रिकॉर्ड कर सकते हैं और Fitbit ऐप्लिकेशन का इस्तेमाल करके, Google Health API के साथ सिंक कर सकते हैं. |
| डेटा टाइप | उपलब्ध कार्रवाइयां |
दायरा |
|---|---|---|
|
शारीरिक गतिविधि में खर्च कैलोरी
dataType:
active-energy-burnedfilter parameter: active_energy_burned
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ऐक्टिव मिनट
dataType:
active-minutesfilter parameter: active_minutes
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ऐक्टिव ज़ोन मिनट
dataType:
active-zone-minutesfilter parameter: active_zone_minutes
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
गतिविधि का लेवल
|
सूची, मिलान करें | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ऊंचाई
dataType:
altitudefilter parameter: altitude
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ब्लड ग्लूकोज़
dataType:
blood-glucosefilter parameter: blood_glucose
रिकॉर्ड टाइप: सैंपल
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
बॉडी फ़ैट
dataType:
body-fatfilter 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-zonefilter parameter: calories_in_heart_rate_zone
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
पेट और उसके आस-पास का तापमान
dataType:
core-body-temperaturefilter parameter: core_body_temperature
रिकॉर्ड टाइप: सैंपल
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
धड़कन की दर में उतार-चढ़ाव का रोज़ाना का डेटा
dataType:
daily-heart-rate-variabilityfilter parameter: daily_heart_rate_variability
रिकॉर्ड टाइप: रोज़ाना
संगत डिवाइस
|
सूची, मिलान करें | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
धड़कन की दर वाले रोज़ाना के ज़ोन
dataType:
daily-heart-rate-zonesfilter parameter: daily_heart_rate_zones
रिकॉर्ड टाइप: रोज़ाना
|
सूची, मिलान करें | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
ऑक्सीजन की मात्रा का रोज़ाना का डेटा
dataType:
daily-oxygen-saturationfilter parameter: daily_oxygen_saturation
रिकॉर्ड टाइप: रोज़ाना
संगत डिवाइस
|
सूची, मिलान करें | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
सांस की दर का रोज़ाना का डेटा
dataType:
daily-respiratory-ratefilter parameter: daily_respiratory_rate
रिकॉर्ड टाइप: रोज़ाना
संगत डिवाइस
|
सूची, मिलान करें | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
आराम करते समय धड़कन की रोज़ाना की दर
dataType:
daily-resting-heart-ratefilter parameter: daily_resting_heart_rate
रिकॉर्ड टाइप: रोज़ाना
संगत डिवाइस
|
सूची, मिलान करें | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
नींद के दौरान के तापमान का रोज़ाना का डेटा
dataType:
daily-sleep-temperature-derivationsfilter parameter: daily_sleep_temperature_derivations
रिकॉर्ड टाइप: रोज़ाना
संगत डिवाइस
|
सूची, मिलान करें | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
रोज़ाना का वीओ2 मैक्स
dataType:
daily-vo2-maxfilter parameter: daily_vo2_max
रिकॉर्ड टाइप: रोज़ाना
संगत डिवाइस
|
सूची, मिलान करें | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
दूरी
dataType:
distancefilter parameter: distance
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
इलेक्ट्रोकार्डियोग्राम (ईसीजी)
dataType:
electrocardiogramfilter parameter: electrocardiogram
रिकॉर्ड टाइप: सेशन
संगत डिवाइस
|
सूची | .ecg.readonly |
|
कसरत
dataType:
exercisefilter parameter: exercise
रिकॉर्ड टाइप: सेशन
संगत डिवाइस
|
list, get, reconcile, create, update, batchDelete | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
फ़्लोर
dataType:
floorsfilter parameter: floors
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
संगत डिवाइस
|
reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
खाना
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
खाने को मापने की इकाई
dataType:
food-measurement-unitfilter parameter: food_measurement_unit
रिकॉर्ड टाइप: खाना
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
धड़कन की दर
dataType:
heart-ratefilter parameter: heart_rate
रिकॉर्ड टाइप: सैंपल
स्टोरेज रिज़ॉल्यूशन: एक सेकंड
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
धड़कन की दर में उतार-चढ़ाव
dataType:
heart-rate-variabilityfilter parameter: heart_rate_variability
रिकॉर्ड टाइप: सैंपल
संगत डिवाइस
|
सूची, मिलान करें | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
ऊंचाई
|
list, get, reconcile, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
हाइड्रेशन का लॉग
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
दिल की धड़कन अनियमित होने पर मिलने वाली सूचनाएं
dataType:
irregular-rhythm-notificationfilter parameter: irregular_rhythm_notification
रिकॉर्ड टाइप: सेशन
संगत डिवाइस
|
सूची | .irn.readonly |
|
माहवारी
dataType:
menstrual-periodfilter parameter: menstrual_period
रिकॉर्ड टाइप: इंटरवल
|
create, update, batchDelete | .reproductive_health.writeonly |
|
मूड
|
create, update, batchDelete | .mindfulness.writeonly |
|
पोषण से जुड़ा डेटा लॉग करें
dataType:
nutrition-logfilter parameter: nutrition_log
रिकॉर्ड टाइप: सेशन
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
ऑव्युलेशन टेस्ट
dataType:
ovulation-testfilter parameter: ovulation_test
रिकॉर्ड टाइप: सैंपल
|
create, update, batchDelete | .reproductive_health.writeonly |
|
ऑक्सीजन की मात्रा
dataType:
oxygen-saturationfilter parameter: oxygen_saturation
रिकॉर्ड टाइप: सैंपल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
संगत डिवाइस
|
सूची, मिलान करें | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
नींद के दौरान सांस की दर की खास जानकारी
dataType:
respiratory-rate-sleep-summaryfilter parameter: respiratory_rate_sleep_summary
रिकॉर्ड टाइप: सैंपल
संगत डिवाइस
|
सूची, मिलान करें | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
दौड़ने के दौरान का वीओ2 मैक्स
dataType:
run-vo2-maxfilter parameter: run_vo2_max
रिकॉर्ड टाइप: सैंपल
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
एक जगह बैठे/लेटे रहने की अवधि
dataType:
sedentary-periodfilter parameter: sedentary_period
रिकॉर्ड टाइप: इंटरवल
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
त्वचा का तापमान मापने वाले सेंसर
v4beta
dataType:
skin-temperature-sensorsfilter parameter: skin_temperature_sensors
रिकॉर्ड टाइप: सैंपल
संगत डिवाइस |
सूची | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
सोने के समय का तापमान
dataType:
sleepfilter parameter: sleep
रिकॉर्ड टाइप: सेशन
संगत डिवाइस
|
list, get, reconcile, create, update, batchDelete | .sleep.readonly.sleep.writeonly |
|
तरीका
dataType:
stepsfilter parameter: steps
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
तैरकर तय की गई दूरी का डेटा
dataType:
swim-lengths-datafilter parameter: swim_lengths_data
रिकॉर्ड टाइप: इंटरवल
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
लक्षण
dataType:
symptomsfilter parameter: symptoms
रिकॉर्ड टाइप: सैंपल
|
create, update, batchDelete | .logged_symptoms.writeonly |
|
धड़कन की दर वाले ज़ोन में बिताया गया समय
dataType:
time-in-heart-rate-zonefilter parameter: time_in_heart_rate_zone
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
कुल कैलोरी
dataType:
total-caloriesfilter parameter: total_calories
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
संगत डिवाइस
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
वीओ2 मैक्स
dataType:
vo2-maxfilter parameter: vo2_max
रिकॉर्ड टाइप: सैंपल
संगत डिवाइस
|
सूची, मिलान करें | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
वज़न
dataType:
weightfilter 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. इससे, सब-इंटरवल में डेटा का असमान डिस्ट्रिब्यूशन नहीं होगा. ज़्यादा जानकारी के लिए, रोलअप विंडो और स्टोरेज रिज़ॉल्यूशन लेख पढ़ें.
Daily और Interval डेटा टाइप
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 को मिलीमीटर में मेज़र किया जाता है. ऐसा इन वजहों से किया जाता है:
- डेटा को सटीक बनाए रखना: मिलीमीटर का इस्तेमाल करने की सबसे अहम वजह यह है कि हम जो डेटा पढ़ते हैं और उपलब्ध कराते हैं उसमें कोई गड़बड़ी न हो. मिलीमीटर जैसी छोटी इकाई का इस्तेमाल करने से, हमें माप को ज़्यादा सटीक तरीके से दिखाने में मदद मिलती है.
- स्टैंडर्डाइज़ेशन: हमारी सभी सेवाओं में, मिलीमीटर को स्टैंडर्ड यूनिट के तौर पर इस्तेमाल किया जाता है. इससे, एपीआई के अलग-अलग हिस्सों का इस्तेमाल करने वाले डेवलपर को एक जैसा अनुभव मिलता है.
- मेज़रमेंट सिस्टम के लिए ज़्यादा सपोर्ट: मिलीमीटर जैसी बेस यूनिट का इस्तेमाल करने से, डेवलपर के लिए किसी भी चुनी गई यूनिट में कन्वर्ट करना आसान हो जाता है. इससे कोई फ़र्क़ नहीं पड़ता कि वे मेट्रिक, इंपीरियल या अन्य मेज़रमेंट सिस्टम का इस्तेमाल कर रहे हैं.
दिन की अवधि में बदलाव
Health API, समय को मैनेज करने के लिए उपयोगकर्ता के समय को प्राथमिकता देता है. इससे डेलाइट सेविंग टाइम या यात्रा की वजह से, दिन की अवधि में होने वाले बदलावों को ध्यान में रखा जाता है. हर डेटा पॉइंट को यूटीसी टाइमस्टैंप और इवेंट के समय चालू यूटीसी ऑफ़सेट, दोनों के साथ सेव किया जाता है. इससे सिस्टम को ये काम करने में मदद मिलती है:
- इवेंट को किसी सटीक फ़िज़िकल इंस्टैंट से मैप करें.
- एग्रीगेशन के लिए, उपयोगकर्ता के स्थानीय समय के हिसाब से समय को सही करें.
डेलाइट सेविंग टाइम
डेलाइट सेविंग टाइम के दौरान, "फ़ॉल बैक" की वजह से सिविल डे 25 घंटे का हो जाता है. साथ ही, उस तारीख के रोलअप में 25 घंटे का डेटा शामिल होगा. "स्प्रिंग फ़ॉरवर्ड" की वजह से, सिविल डे 23 घंटे का हो जाता है. इसमें समय, स्टैंडर्ड टाइम पर वापस चला जाता है.
यात्रा
टाइम ज़ोन के बीच यात्रा करने से, एक सिविल डे की अवधि में और भी ज़्यादा अंतर आ सकता है.
टाइम ज़ोन के अंतर को ठीक करने के लिए, dailyRollUp एंडपॉइंट का इस्तेमाल करें. यह डेटा को रिकॉर्ड किए जाने वाले दिन के हिसाब से, अपने-आप एट्रिब्यूट करता है. यह उपयोगकर्ता के स्थानीय समय के हिसाब से होता है. इससे टाइम ज़ोन में बदलाव होने के बावजूद, डेटा को एक साथ "जोड़ा" जा सकता है. ज़्यादा जानकारी और उदाहरणों के लिए, कुल डेटा की गाइड में कैलेंडर के दिनों के हिसाब से कुल डेटा देखें.