गेम के आंकड़े

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

गेम के आंकड़ों में ये बातें शामिल होनी चाहिए:

  • ऐसी खरीदारी की ज़रूरत नहीं होती (उदाहरण के लिए, रत्न खरीदना) जो किसी आईएपी खरीदारी के बाद अपडेट नहीं होनी चाहिए.
  • विज्ञापन देखने की ज़रूरत नहीं होनी चाहिए. इसका मतलब है कि विज्ञापन देखने के बाद, उन्हें अपडेट नहीं होना चाहिए.
  • गेम का सामान्य इस्तेमाल न हो. उदाहरण के लिए, गेम खोलना; सेटिंग का इस्तेमाल करना.
  • इसमें Play की नीति के मुताबिक, निजी और संवेदनशील उपयोगकर्ता डेटा शामिल नहीं होना चाहिए. जैसे, उपयोगकर्ता आईडी, पासवर्ड, जगह की सटीक जानकारी या सेहत का डेटा. इसके अलावा, इसमें आपत्तिजनक, अश्लील, यौन गतिविधियों को साफ़ तौर पर दिखाने वाला, हिंसा भड़काने वाला या नफ़रत फैलाने वाला कॉन्टेंट भी शामिल नहीं होना चाहिए.
  • सभी उपयोगकर्ताओं के लिए उपलब्ध हो. उदाहरण के लिए, यह किसी टीम के लिए खास कार्रवाई न हो या सिर्फ़ किसी खास लेवल के उपयोगकर्ताओं के लिए उपलब्ध न हो या सीमित समय के लिए लाइवऑप्स तक सीमित न हो वगैरह

इंटिग्रेशन का तरीका

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

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

किसी प्लेयर इवेंट को इस तरह से तय और मॉडल किया जाता है:

  1. इवेंट, खिलाड़ी की किसी खास कार्रवाई को दिखाता है. जैसे, मैच पूरा करना, रन पूरा करना, चेस्ट अनलॉक करना या किसी इलाके में प्रोग्रेस सेव करना.
  2. हर कार्रवाई के कुछ नतीजे होते हैं या उसकी कुछ खास बातें होती हैं, जिनसे कार्रवाई के बारे में पता चलता है. इन्हें इवेंट प्रॉपर्टी के तौर पर मॉडल किया जाता है. इनसे इवेंट और उसके खास नतीजों के बारे में जानकारी मिलती है. उदाहरण के लिए, मैच टाइप, उस रन के दौरान इकट्ठा किए गए सिक्के, मैच का नतीजा या हेडशॉट की संख्या.

इंटिग्रेशन में ये चरण शामिल हैं:

  • रॉ डेटा स्कीमा का एलान करें: Play Console में CSV फ़ाइल अपलोड करके, प्लेयर इवेंट तय करें. इवेंट बनाएं लेख पढ़ें.
  • गेम के आंकड़े API के साथ इंटिग्रेट करें: खिलाड़ी के इवेंट और progressUpdate इवेंट के लिए, खिलाड़ी का रॉ डेटा बताए गए फ़ॉर्मैट में भेजें.
    • क्लाइंट साइड या सर्वर साइड इंटिग्रेशन का इस्तेमाल करके, तय किए गए सभी इवेंट भेजें. ज़्यादा जानकारी के लिए, खिलाड़ी के इवेंट और progressUpdate इवेंट के उदाहरण देखें.
  • ZIP फ़ाइल अपलोड करें: तीन CSV फ़ाइलें और सभी आइकॉन इमेज फ़ाइलें उपलब्ध कराएं. इनमें पांच बार-बार दिखने वाले आंकड़े और खिलाड़ी की प्रोग्रेशन लेवल की जानकारी होनी चाहिए. ज़्यादा जानकारी के लिए, ZIP फ़ाइल से जुड़े दिशा-निर्देश देखें. यह जानकारी शामिल करें:
    • बार-बार दिखने वाले आंकड़ों के लिए CSV फ़ाइल:
      • यह आंकड़े का यूनीक आईडी होता है.
      • आंकड़े की गिनती के लिए इस्तेमाल किया जाने वाला इवेंट लेबल तय करें. यहां progressUpdate इवेंट लेबल का इस्तेमाल नहीं किया जा सकता.
        • आंकड़े की गिनती के लिए इस्तेमाल किए जाने वाले प्रॉपर्टी लेबल की जानकारी दें. यह तय किए गए इवेंट की प्रॉपर्टी होनी चाहिए.
        • चुनी गई प्रॉपर्टी के लेबल पर आंकड़े कैलकुलेट करने का तरीका तय करने के लिए, एग्रीगेशन टाइप (SUM, MAX, MIN या COUNT) तय करें.
        • शर्त पूरी होने पर ही लॉजिक की गणना करने के लिए, फ़िल्टर करने की कोई वैकल्पिक शर्त तय करें. प्रॉपर्टी और इवेंट लेबल, ऑपरेटर (=, <, <=, >= या >) और थ्रेशोल्ड वैल्यू तय करें.
      • बूलियन फ़्लैग शामिल करें, ताकि यह पता चल सके कि इस आंकड़े का इस्तेमाल, प्रतिस्पर्धी सुविधाओं के लिए किया जा सकता है या नहीं.
      • अगर इस सुविधा का इस्तेमाल, प्रतिस्पर्धी सुविधाओं के लिए किया जा सकता है, तो असली खिलाड़ी के लिए हर घंटे की कम से कम और ज़्यादा से ज़्यादा सीमाएं. इसका इस्तेमाल हम उन खिलाड़ियों की पहचान करने के लिए करेंगे जो लीग और सोशल चैलेंज जैसी सुविधाओं में हिस्सा लेते समय, इनका गलत इस्तेमाल कर सकते हैं.
      • उस आंकड़े के लिए कोई यूनीक डिसप्ले नेम डालें जो खिलाड़ियों को दिखेगा.
      • आंकड़े के बारे में बताने वाला यूनीक टेक्स्ट दें. इस ब्यौरे में यह जानकारी होनी चाहिए कि खिलाड़ी को यह कैसे मिलता है. यह ब्यौरा, खिलाड़ियों को गेमर प्रोफ़ाइल के यूज़र इंटरफ़ेस (यूआई) में दिखेगा.
      • CSV फ़ाइल में आइकॉन का सही नाम डालकर, आंकड़े को दिखाने वाला यूनीक आइकॉन उपलब्ध कराएं.
      • यह तय करने के लिए कि बढ़ती या घटती वैल्यू, खिलाड़ी के लिए अच्छी है या नहीं, एक वैकल्पिक इनपुट दें. इस इनपुट का इस्तेमाल, खिलाड़ी की गतिविधियों को हाइलाइट करने के लिए किया जाएगा.
      • आंकड़े के लिए, मेज़रमेंट की कोई वैकल्पिक इकाई दें. जैसे, किलोमीटर, मील, और सेकंड.
    • खिलाड़ी की प्रोग्रेशन से जुड़ी जानकारी वाली CSV फ़ाइल:
      • प्लेयर की प्रोग्रेस के लिए, कोई यूनीक डिसप्ले नेम डालें. यह नाम खिलाड़ियों को दिखेगा.
      • आंकड़े को दिखाने वाला कोई यूनीक आइकॉन दें.
      • प्रोग्रेशन स्टैट के बारे में जानकारी दें.
      • यह तय करने के लिए कि बढ़ती या घटती वैल्यू, खिलाड़ी के लिए अच्छी है या नहीं, एक वैकल्पिक इनपुट दें. इस इनपुट का इस्तेमाल, सिर्फ़ तब प्लेयर की गतिविधियों को हाइलाइट करने के लिए किया जाएगा, जब currentProgress प्रॉपर्टी का टाइप INT हो.
      • आंकड़े के लिए, मेज़रमेंट की कोई वैकल्पिक इकाई दें. जैसे, किलोमीटर, मील, सेकंड.
    • स्थानीय भाषा में अनुवाद की गई CSV फ़ाइल: सभी आंकड़ों के लिए, स्थानीय भाषा में अनुवाद किए गए डिसप्ले नेम दें.
      • हर स्थानीय भाषा के लिए एक लाइन जोड़ें.
      • पिछली CSV फ़ाइल में जोड़े गए स्टैट डिसप्ले नेम स्ट्रिंग का इस्तेमाल करें, ताकि उस स्टैट की पहचान की जा सके जिसके लिए स्थानीय भाषा में अनुवाद जोड़ा जा रहा है.
      • भाषा कोड की सूची से भाषा चुनें.
      • चुनी गई भाषा में डिसप्ले नेम के लिए स्थानीय भाषा में अनुवाद जोड़ें.
      • तय की गई भाषा में, आंकड़े के ब्यौरे के लिए स्थानीय भाषा जोड़ें.

स्कीमा प्लान करना

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

यहां दिए गए उदाहरणों में बताया गया है कि अलग-अलग तरह के गेम में प्लेयर इवेंट कैसे दिखते हैं:

प्लेयर से जुड़े इवेंट

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

  • इवेंट तय करें. जैसे, गेम के खास पल, गेम लूप पूरा होना या प्रोग्रेशन माइलस्टोन:
    • गेम लूप पूरे होने की संख्या. जैसे, कोई मैच या रन पूरा होना.
    • प्रोग्रेशन के माइलस्टोन, जैसे कि सेव की गई जगह को एक्सप्लोर करने की प्रोग्रेस या पूरा किया गया लेवल.
    • दोहराए जाने वाले आंकड़ों से, खिलाड़ी की ओर से बार-बार की जाने वाली कार्रवाइयों के बारे में पता चलना चाहिए. इसलिए, तय किए गए इवेंट, मुख्य गेमप्ले से जुड़े होने चाहिए.
  • इवेंट और उसके नतीजों के बारे में ज़्यादा जानकारी देने के लिए, प्रॉपर्टी जोड़ें. जैसे, लेवल नंबर, मैच टाइप, हथियार का टाइप, हथियारों की संख्या, हेडशॉट, इकट्ठा किए गए सिक्के, मैच का नतीजा, लैप टाइम या कार का टाइप.
  • गेमप्ले सेशन के दौरान, इवेंट होने के तुरंत बाद इवेंट भेजें. उदाहरण के लिए, लूप पूरा होने के तुरंत बाद, गेम लूप पूरा होने का इवेंट भेजें.
उदाहरण
गेम टाइप इवेंट लेबल गेम में मौजूद मोमेंट / प्रोग्रेशन इवेंट पूरा होना / गेम लूप पूरा होना नतीजा विशेषताएं
लीनियर प्रोग्रेशन वाला इंडी पहेली वाला गेम chapter_completed प्रोग्रेशन इवेंट पूरा होने पर लागू नहीं चैप्टर नंबर, चैप्टर का नाम, कोशिशों की संख्या, स्क्रीन की संख्या, चालों की संख्या, चैप्टर का कॉन्टेंट
screen_completed प्रोग्रेशन इवेंट पूरा होने पर चैप्टर नंबर, चैप्टर का नाम, कोशिशों की संख्या, चालों की संख्या, चैप्टर का कॉन्टेंट
3D एंडलेस रनर run_completed गेम लूप पूरा होने पर इकट्ठा किए गए सिक्के, स्कोर दौड़ने की अवधि, जेटपैक से इकट्ठा किए गए सिक्के, दौड़ शुरू करते समय इस्तेमाल किया गया बूस्टर, इस्तेमाल किए गए सर्फ़बोर्ड, इस्तेमाल किए गए मैग्नेट, इस्तेमाल किया गया जंपर, इस्तेमाल किया गया जेटपैक
विशाल दुनिया वाला ऐक्शन आरपीजी areaExplorationProgress प्रोग्रेशन इवेंट पूरा होने पर दुश्मनों को हराया गया, पॉटशन इकट्ठा किए गए इलाके का नंबर, इलाके का नाम, प्रोग्रेस का प्रतिशत
questCompleted गेम लूप पूरा होने पर लागू नहीं मिशन का नाम
weaponUnlocked गेम के दौरान का कोई पल लागू नहीं हथियार का नाम, हथियार का लेवल
chestUnlocked गेम के दौरान का कोई पल बेहतर बनाने के लिए इकट्ठा किया गया अयस्क
सजावटी मेटा वाली कैज़ुअल पहेली puzzleCompleted गेम लूप पूरा होने / प्रोग्रेशन इवेंट पूरा होने का इवेंट इकट्ठा किए गए सिक्के, इकट्ठा किए गए बूस्टर चालों की संख्या, क्या बटलर के उपहार का इस्तेमाल किया गया?, लेवल का टाइप, लेवल नंबर, इस्तेमाल किए गए कलर बूस्टर, इस्तेमाल की गई डायनामाइट
cardsCollected गेम के दौरान का कोई पल एक स्टार वाले कार्ड, दो स्टार वाले कार्ड, तीन स्टार वाले कार्ड, कुल कार्ड एल्बम नंबर, एल्बम का नाम
आर्केड रेसिंग raceCompleted गेम लूप पूरा होने पर रैंक, इस्तेमाल किया गया एनओएस, रेस का समय रेस का टाइप, रेटिंग, इस्तेमाल की गई कार
carUpgraded गेम के दौरान का कोई पल कार की ऐसी विशेषता जिसे अपग्रेड किया गया है, पुराना लेवल / वैल्यू, नया लेवल / वैल्यू कार का टाइप, गैराज का मौजूदा लेवल
थर्ड पर्सन बैटल रोयाल शूटर matchCompleted गेम लूप पूरा होने पर इलिमिनेशन, हेडशॉट, ऑनर वैल्यू मैच टाइप, ज़िंदा रहने का समय
ई-स्पोर्ट्स मैनेजमेंट सिमुलेशन matchCompleted गेम लूप पूरा होने पर नतीजा, किए गए गोल, गोल विरोधी टीम का नाम, खेलने वाली टीम का नाम
trainingCompleted गेम के दौरान का कोई पल Drills done, teamplay_form_attack, teamplay_form_defense, teamplay_form_possession, teamplay_form_condition

progressUpdate इवेंट

अगर आपके गेम में प्रोग्रेशन का मुख्य मेकेनिक है, तो इस इवेंट का इस्तेमाल करके खिलाड़ी की मौजूदा प्रोग्रेस भेजें. इवेंट में पहले से तय की गई एक प्रॉपर्टी होती है, जिसे “currentProgress” कहा जाता है. इसका टाइप INT या STRING होता है. इस प्रॉपर्टी का इस्तेमाल करके, आपको प्राइमरी प्रोग्रेशन मैकेनिक में प्लेयर की प्रोग्रेस की मौजूदा वैल्यू भेजनी होगी. इस इवेंट का इस्तेमाल करने पर, पहले से तय की गई "currentProgress" प्रॉपर्टी मौजूद होनी चाहिए. साथ ही, इस प्रॉपर्टी का इस्तेमाल करके प्रोग्रेशन स्टैटिक को तय किया जाना चाहिए.

इस इवेंट की अन्य प्रॉपर्टी के तौर पर, अपने गेम में प्रोग्रेशन के अन्य सिस्टम के लिए मौजूदा वैल्यू भेजी जा सकती है. जैसे, lifetime highest score या current coin balance.

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

उदाहरण
गेम टाइप `progressUpdate` इवेंट की currentProgress प्रॉपर्टी
लीनियर प्रोग्रेशन पज़ल गेम मौजूदा चैप्टर नंबर या लेवल नंबर
3D एंडलेस रनर सबसे ज़्यादा स्कोर, मौजूदा बूस्टर का बैलेंस
कैज़ुअल पज़ल मौजूदा लेवल का नंबर, पहली बार में जीते गए लेवल की संख्या, पूरे किए गए लेवल की संख्या, और पूरे किए गए कलेक्शन की संख्या
आर्केड रेसिंग मौजूदा लेवल नंबर, मुद्रा बैलेंस
विशाल दुनिया वाला ऐक्शन आरपीजी मौजूदा किरदार की रैंक, मौजूदा लेवल नंबर
थर्ड पर्सन शूटर मौजूदा लेवल का नंबर
ईस्पोर्ट्स सिम्युलेशन मैनेजर लेवल नंबर, क्लब लेवल नंबर

आंकड़े कॉन्फ़िगर करना

आपको बार-बार दिखने वाले और प्रोग्रेशन के आंकड़ों को कॉन्फ़िगर करना होगा. इसके लिए, आपको हर आंकड़े के लिए कंप्यूटेशन लॉजिक तय करना होगा और उसकी जानकारी दिखानी होगी. अलग-अलग गेम के जॉनर के बार-बार दिखने वाले आंकड़ों के उदाहरण यहां दिए गए हैं. बार-बार अपडेट होने वाले आंकड़े, आम तौर पर ऐसे आंकड़े होते हैं जो किसी भी खिलाड़ी के लिए, बहुत कम (3-4) गेम सेशन में बार-बार अपडेट होते हैं. ये आंकड़े, गेम के मुख्य लूप से जुड़े होते हैं.

गेम का नाम गेम के आंकड़ों को दिखाने के लिए इस्तेमाल किया जाने वाला नाम इवेंट प्रॉपर्टी कैलकुलेशन लॉजिक [aggregation] फ़िल्टर
3D एंडलेस रनर रन पूरे हुए run_completed इवेंट की कोई भी प्रॉपर्टी गिनती सभी वैल्यू [कोई फ़िल्टर नहीं]
इकट्ठा किए गए सिक्के run_completed इवेंट की Coins_collected प्रॉपर्टी कुल योग NA
इकट्ठा की गई कुंजियां run_completed इवेंट की keys_collected प्रॉपर्टी कुल योग लागू नहीं
सबसे ज़्यादा रन स्कोर run_completed इवेंट की स्कोर प्रॉपर्टी ज़्यादा से ज़्यादा लागू नहीं
ज़्यादा सिक्कों वाले रन पूरे किए गए run_completed इवेंट की Coins_collected प्रॉपर्टी गिनती वैल्यू > 5000
लीनियर प्रोग्रेशन पज़ल गेम पूरे किए गए चैप्टर chapter_completed इवेंट की कोई भी प्रॉपर्टी गिनती सभी वैल्यू [कोई फ़िल्टर नहीं]
पूरी की गई स्क्रीन screen_completed इवेंट की कोई भी प्रॉपर्टी गिनती सभी वैल्यू [कोई फ़िल्टर नहीं]
पहली बार में पूरे किए गए चैप्टर इवेंट chapter_completed की Num_try प्रॉपर्टी गिनती Num_try = 1
पहली बार में पूरी की गई स्क्रीन screen_completed इवेंट की Num_try प्रॉपर्टी गिनती Num_try = 1
विशाल दुनिया वाला ऐक्शन आरपीजी पूरे किए गए मिशन quest_completed इवेंट की कोई भी प्रॉपर्टी गिनती सभी वैल्यू [कोई फ़िल्टर नहीं]
एक्सप्लोर किए गए इलाके area_exploration_progress इवेंट की Perc_progress प्रॉपर्टी गिनती Value = 100
तलवारें अनलॉक की गईं इवेंट weapon_unlocked की Weapon_type प्रॉपर्टी गिनती Value = “sword”
दुश्मनों को हराया event area_exploration_progress की Enemies_defeated प्रॉपर्टी कुल योग लागू नहीं
सेहत बढ़ाने वाली दवाएं इकट्ठा की गईं chest_unlocked इवेंट की Enhancement_ores प्रॉपर्टी कुल योग NA
कैज़ुअल पज़ल लेवल पूरे हुए level_completed इवेंट की कोई भी प्रॉपर्टी गिनती सभी वैल्यू [कोई फ़िल्टर नहीं]
पहली बार में पूरे किए गए लेवल level_completed इवेंट की Num_try प्रॉपर्टी गिनती वैल्यू = 1
इस्तेमाल किए गए कलर बूस्टर इवेंट level_completed की Color_booster_used प्रॉपर्टी कुल योग NA
इस्तेमाल किए गए बम बूस्टर level_completed इवेंट की Bomb_booster_used प्रॉपर्टी कुल योग NA
इकट्ठा किए गए कार्ड इवेंट cards_collected की Total_cards प्रॉपर्टी कुल योग NA
आर्केड रेसिंग दौड़ विजय race_completed इवेंट की रैंक प्रॉपर्टी गिनती वैल्यू = 1
सबसे तेज़ रेस race_completed इवेंट की race_time प्रॉपर्टी कम से कम लागू नहीं
इस्तेमाल किया गया NOS race_completed इवेंट की NOS_used प्रॉपर्टी कुल योग NA
Mustang के साथ रेस पूरी की गई race_completed इवेंट की Car_type प्रॉपर्टी गिनती Value = “Mustang”
कार अपग्रेड कार अपग्रेड किए जाने के इवेंट की कोई भी प्रॉपर्टी गिनती सभी वैल्यू [कोई फ़िल्टर नहीं]
थर्ड पर्सन बैटल रोयाल शूटर जीते गए मैच match_completed इवेंट की कोई भी प्रॉपर्टी गिनती Match_result = TRUE
कुल इलिमिनेशन match_completed इवेंट की एलिमिनेशन प्रॉपर्टी कुल योग लागू नहीं
सबसे ज़्यादा समय तक जीवित रहने वाले उपयोगकर्ता इवेंट match_completed की Survival_time प्रॉपर्टी ज़्यादा से ज़्यादा लागू नहीं
कुल हेडशॉट event match_completed की हेडशॉट प्रॉपर्टी कुल योग लागू नहीं
कुल स्किल वैल्यू match_completed इवेंट की skill_value प्रॉपर्टी कुल योग लागू नहीं
ई-स्पोर्ट्स मैनेजमेंट सिमुलेशन जीते गए मैच match_completed इवेंट की result प्रॉपर्टी गिनती नतीजा = “जीत गए”
स्कोर किए गए कुल गोल match_completed इवेंट की goals_scored प्रॉपर्टी कुल योग लागू नहीं
मुश्किल मैच जीते hard_match_completed इवेंट की result प्रॉपर्टी गिनती नतीजा = “जीत गए”
सबसे ज़्यादा गोल के अंतर से जीत match_completed इवेंट की Goal_difference प्रॉपर्टी ज़्यादा से ज़्यादा नतीजा = “जीत गए”
ट्रेनिंग की कुल ड्रिल training_completed इवेंट की drills_done प्रॉपर्टी कुल योग लागू नहीं
पूरी की गई ट्रेनिंग की कुल संख्या training_completed इवेंट की कोई भी प्रॉपर्टी गिनती लागू नहीं

इंटिग्रेशन की जानकारी

एपीआई एंडपॉइंट और एसडीके, शुरुआती सुझाव/राय देने या शिकायत करने के लिए उपलब्ध हैं. ये अगस्त 2026 से आम तौर पर उपलब्ध (GA) होंगे. टाइमलाइन देखें

इस सेक्शन में, इवेंट बनाने और उन्हें क्लाइंट साइड और सर्वर साइड इंटिग्रेशन, दोनों में भेजने का तरीका बताया गया है.

डेटा कब भेजना चाहिए

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

progressUpdate इवेंट से, किसी खिलाड़ी की मौजूदा प्रोग्रेस लेवल के बारे में पता चलता है. प्रोग्रेशन स्टैट का डेटा, इन स्थितियों में इस इवेंट का इस्तेमाल करके भेजा जाना चाहिए:

  1. जब भी मौजूदा प्रोग्रेस में कोई अपडेट हो, तो तुरंत नई वैल्यू भेजें
  2. जब भी कोई खिलाड़ी गेम लॉन्च करता है, तब इस कुकी का इस्तेमाल किया जाता है. इससे यह पक्का किया जाता है कि खिलाड़ी के लिए यह स्टैट हमेशा मौजूद रहे.

इंटिग्रेशन के पाथ

इंटिग्रेशन के दो तरीके हैं: क्लाइंट और सर्वर-टू-सर्वर.

सर्वर-टू-सर्वर इंटिग्रेशन

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

पाथ पैरामीटर
पैरामीटर डेटा टाइप ब्यौरा
playerId स्ट्रिंग यह प्लेयर का PGS आईडी है.

अनुमति और पुष्टि करना

सर्वर-टू-सर्वर एपीआई कॉल, OAuth 2.0 का इस्तेमाल करके, Play की गेम सेवाओं के सर्वर-साइड ऐक्सेस से जुड़े स्टैंडर्ड दिशा-निर्देशों का पालन करते हैं. अनुरोधों में, https://www.googleapis.com/auth/games स्कोप के लिए अनुमति दिया गया Bearer टोकन शामिल होना चाहिए.

इवेंट: अनुरोध का मुख्य हिस्सा

बैकएंड एपीआई में, स्ट्रक्चर की पुष्टि करने से जुड़ी सख्त सीमाएं होती हैं:

  • बैच का साइज़: हर BatchRecordEventsRequest में ज़्यादा से ज़्यादा 30 इवेंट.
  • प्रॉपर्टी की संख्या: हर PlayerGameEvent के लिए, ज़्यादा से ज़्यादा 25 कस्टम प्रॉपर्टी.
  • लंबाई की सीमाएं: इवेंट का नाम (ज़्यादा से ज़्यादा 100 वर्ण), प्रॉपर्टी की कुंजियां (ज़्यादा से ज़्यादा 100 वर्ण), और प्रॉपर्टी की स्ट्रिंग वैल्यू (ज़्यादा से ज़्यादा 1,024 वर्ण).
  • इवेंट आईडी: यह 36 वर्णों वाली एक मान्य UUID स्ट्रिंग होनी चाहिए.
  • फिर से कोशिश करना और कैश मेमोरी: अगर एपीआई काम नहीं करता है, तो स्थानीय तौर पर कैश मेमोरी में सेव करने या बहुत ज़्यादा इवेंट इकट्ठा करने से बचें. ऐसा इसलिए, क्योंकि 30 से ज़्यादा इवेंट के लिए बैच में फिर से कोशिश करने के अनुरोध अस्वीकार कर दिए जाएंगे. रीट्राई करने के लिए हमेशा चंक का इस्तेमाल करें, ताकि बैच के साइज़ की सीमा का पालन किया जा सके.

BatchRecordEventsRequest

BatchRecordEventsRequest देखें.

{
  "packageName": string,
  "requestTime": string,
  "events": [
    {
      object (PlayerGameEvent)
    }
  ]
}

PlayerGameEvent

{
  "eventId": string,
  "eventName": string,
  "eventProperties": {
    // keys (e.g., "matchId", "score")
    "": {
       object (PropertyValue)
    }
  },
  "eventTime": string // RFC 3339 formatted timestamp string (e.g., "2026-01-01T18:00:00Z").
}

PropertyValue

// ONE of the following fields will be present:
{
// 64-bit integer formatted as a string to prevent data loss
"intValue": "string",
// Double-precision floating point number.
"doubleValue": number,
// Standard UTF-8 text string.
"stringValue": "string",
// Boolean value (true or false).
"boolValue": boolean,
// Duration in seconds suffixed with 's' (e.g., "240s" or "3.5s").
"durationValue": "string"
}

progressUpdate इवेंट: अनुरोध का मुख्य हिस्सा

BatchRecordEventsRequest

{
  "packageName": string,
  "requestTime": string,
  "events": [
    {
      object (PlayerGameEvent)
    }
  ]
}

PlayerGameEvent - progressUpdate

{
  "eventId": string,
  "eventName": "progressUpdate",
  "eventProperties": {
    "": {
       object (PropertyValue)
// Must have at least one property "currentProgress"  of  type  INT  or  STRING
    }
  },
  "eventTime": string // RFC 3339 formatted timestamp string (e.g., "2026-01-01T18:00:00Z")
}

जवाब का मुख्य हिस्सा

अगर अनुरोध पूरा हो जाता है, तो जवाब के तौर पर खाली JSON ऑब्जेक्ट के साथ एचटीटीपी 200 OK स्टेटस दिखता है.

अनुरोध के मुख्य हिस्से का उदाहरण

इवेंट: PlayerGameEvent

{
  "packageName": "com.example.awesomegame",//Your package name
  "requestTime": "2026-05-09T00:44:44Z",
  "events": [
    {
      "eventId": "123e1234-e29b-41d4-a123-446655440000", // UUID for deduplication and idempotency
      "eventName": "matchCompleted",
      "eventTime": "2026-05-09T01:44:44Z", // RFC 3339 formatted timestamp string (e.g., "2026-05-09T01:44:44Z").
      "eventProperties": {
        "matchId": {
          "stringValue": "Match_A"
        },
        "gameMode": {
          "stringValue": "Battle_B"
        },
        "locationId": {
          "stringValue": "Location_XYZ"
        },
        "playerElimination": {
          "intValue": 2
        },
        "isWinner": {
          "boolValue": true
        }
      }
    }
  ]
}

progressUpdate इवेंट

{
  "packageName": "com.example.awesomegame",//Your package name
  "requestTime": "2026-05-09T00:44:44Z",
  "events": [
    {
      "eventId": "123e1234-e29b-41d4-a123-446655440000", // UUID
      "eventName": "progressUpdate",
      "eventTime": "2026-05-09T01:44:44Z", // RFC 3339 formatted timestamp string (e.g., "2026-01-01T18:00:00Z").
      "eventProperties": {
        "currentProgress": {
          "intValue": 52
        },
//Add more properties as per your requirement
      }
    }
  ]
}

क्लाइंट के लिए लागू करने की प्रोसेस

अपने प्लैटफ़ॉर्म के लिए, गेम के आंकड़ों को क्लाइंट पर लागू करने के बारे में जानने के लिए, यहां दिए गए संसाधन देखें:

उपलब्धियां

तारीख गेम के आंकड़े API का इंटिग्रेशन गेम के आंकड़ों का कॉन्फ़िगरेशन
सितंबर 2026 लागू नहीं
  • खिलाड़ियों को अपनी गेमर प्रोफ़ाइल पर गेम के आंकड़े दिखने लगते हैं.
  • टेस्ट खातों के लिए, ड्राफ़्ट के आंकड़ों के कॉन्फ़िगरेशन की जांच करें.