गेम के आंकड़े, आपके गेम से जुड़े कुल आंकड़े होते हैं. इन्हें खिलाड़ी अपनी गेमर प्रोफ़ाइल पर देख सकते हैं. इन आंकड़ों से, खिलाड़ियों को गेम में अपनी पूरी प्रोग्रेस ट्रैक करने, यादगार पल देखने, और अन्य खिलाड़ियों से तुलना करने में मदद मिलती है. साथ ही, आने वाले समय में Google Play पर मिशन, सोशल चैलेंज वगैरह जैसी सुविधाओं को और बेहतर बनाने में मदद मिलती है.
गेम के आंकड़ों के लिए ज़रूरी है कि:
- खरीदारी करना ज़रूरी न हो. उदाहरण के लिए, जेम खरीदना. इसका मतलब है कि इन-ऐप्लिकेशन खरीदारी (आईएपी) की वजह से, उन्हें अपडेट नहीं किया जाना चाहिए.
- विज्ञापन देखने की ज़रूरत न हो. इसका मतलब है कि विज्ञापन देखने के बाद, ऐप्लिकेशन अपडेट नहीं होना चाहिए.
- गेम का सामान्य इस्तेमाल न हो. उदाहरण के लिए, गेम खोलना, सेटिंग का इस्तेमाल करना.
- Play की नीति के मुताबिक, उपयोगकर्ता के निजी और संवेदनशील डेटा को शामिल न करें. इसमें यूज़र आईडी, पासवर्ड, जगह की सटीक जानकारी या सेहत का डेटा शामिल है. इसके अलावा, आपत्तिजनक, अपशब्दों वाला, अश्लील, हिंसक या नफ़रत फैलाने वाला कॉन्टेंट भी शामिल न करें.
- सभी उपयोगकर्ताओं के लिए उपलब्ध हो. उदाहरण के लिए, किसी खास टीम के लिए उपलब्ध न हो या सिर्फ़ कुछ लेवल के उपयोगकर्ताओं के लिए उपलब्ध न हो या सीमित समय के लिए उपलब्ध लाइव इवेंट वगैरह के लिए उपलब्ध न हो
इस इमेज में, गेमर प्रोफ़ाइल में गेम के आंकड़े दिखाए गए हैं.
एग्रीगेशन का टाइप
एग्रीगेशन टाइप से Google Play को यह पता चलता है कि आपके भेजे गए हर इवेंट की वैल्यू से, आंकड़े का हिसाब कैसे लगाया जाए:
- SUM: इसका इस्तेमाल, कुल आंकड़ों के लिए करें. जैसे, इकट्ठा किए गए कुल कॉइन, कुल नुकसान. गेम को हर इवेंट के दौरान, अलग-अलग कमाई की जानकारी भेजनी होगी.
- COUNT: इसका इस्तेमाल उन आंकड़ों के लिए करें जो किसी इवेंट के होने की संख्या दिखाते हैं. जैसे, खेले गए गेम, जीते गए गेम. गेम को अलग-अलग इवेंट के होने की जानकारी भेजनी होगी.
- MAX: इसका इस्तेमाल सिर्फ़ एक बार हासिल की गई सबसे बड़ी उपलब्धियों के लिए करें. जैसे, एक बार में सबसे ज़्यादा स्कोर, सबसे ज़्यादा कॉम्बो स्ट्रीक या एक मैच में सबसे ज़्यादा डैमेज. पहले से कैलकुलेट की गई रनिंग वैल्यू से लाइफ़टाइम टोटल दिखाने के लिए, MAX का इस्तेमाल न करें.
बार-बार दिखने वाले आंकड़ों के लिए, लागू करने से जुड़ी ज़रूरी शर्त
- हर इवेंट के लिए वैल्यू भेजें: हर इवेंट के लिए, सिर्फ़ उस इवेंट में हुई गतिविधि की जानकारी भेजें. जैसे, एक बार में इकट्ठा किए गए कॉइन. इसके बाद, आंकड़ों के कॉन्फ़िगरेशन में एग्रीगेशन टाइप सेट करें, जैसे कि SUM या COUNT. इससे यह पक्का होता है कि यूज़र ऐक्टिविटी बढ़ाने वाले अलग-अलग तरीकों में, बार-बार इस्तेमाल होने वाले आंकड़ों को फिर से इस्तेमाल किया जा सके. साथ ही, Google Play को खिलाड़ियों को सही अनुभव देने में मदद मिलती है.
- लाइफ़टाइम टोटल न भेजें: उदाहरण के लिए, आपके गेम क्लाइंट या सर्वर पर किसी खिलाड़ी ने अब तक जितने कॉइन इकट्ठा किए हैं उन्हें ट्रैक न करें. साथ ही, उस टोटल को MAX एग्रीगेशन के साथ न भेजें. इस तरह के आंकड़े, गेमर प्रोफ़ाइल के यूज़र इंटरफ़ेस (यूआई) पर दिखते रहेंगे. हालांकि, Google Play इनका इस्तेमाल, इनाम देने वाली सुविधाओं के लिए नहीं कर पाएगा. जैसे, लीग, मिशन, और स्प्रिंट. इन सुविधाओं से, खिलाड़ियों को बेहतर अनुभव मिलता है और आपके गेम पर असर पड़ता है.
सही इवेंट मॉडलिंग के बारे में निर्देश और उदाहरण देखने के लिए, प्लेयर इवेंट और अपने आंकड़े कॉन्फ़िगर करें देखें.
इंटिग्रेशन का तरीका
गेम के आंकड़ों वाले एपीआई का इस्तेमाल करके, डेटा भेजें. बार-बार होने वाले आंकड़ों के लिए, प्लेयर इवेंट के तौर पर डेटा भेजें. साथ ही, प्रोग्रेस के आंकड़ों के लिए, पहले से तय इवेंट progressUpdate के तौर पर डेटा भेजें. आपको गेमर प्रोफ़ाइल पर दिखने वाले आंकड़ों और उनकी जानकारी का हिसाब लगाने के लिए, लॉजिक भी कॉन्फ़िगर करना होगा.
प्लेयर इवेंट से, गेम के अलग-अलग पलों, गेम लूप के पूरा होने या गेम में आगे बढ़ने की जानकारी मिलती है.
प्लेयर इवेंट को इस तरह से तय और मॉडल किया जाता है:
- इवेंट, खिलाड़ी की किसी खास कार्रवाई से तय होता है. जैसे, मैच पूरा करना, दौड़ पूरी करना, चेस्ट अनलॉक करना या किसी लेवल पर प्रोग्रेस सेव करना.
- हर कार्रवाई के कुछ नतीजे होते हैं या उसकी कुछ विशेषताएं होती हैं, जिनसे उस कार्रवाई के बारे में पता चलता है. इन्हें इवेंट प्रॉपर्टी के तौर पर मॉडल किया जाता है. इनसे इवेंट और उसके खास नतीजों के बारे में जानकारी मिलती है. उदाहरण के लिए, मैच का टाइप, उस रन के दौरान इकट्ठा किए गए कॉइन, मैच का नतीजा या हेडशॉट की संख्या.
इंटिग्रेशन में ये चरण शामिल हैं:
- रॉ डेटा स्कीमा तय करें: Play Console में CSV फ़ाइल अपलोड करके, खिलाड़ी के इवेंट तय करें. इवेंट बनाना देखें.
- गेम के आंकड़े API के साथ इंटिग्रेट करें: खिलाड़ी के इवेंट और
progressUpdateइवेंट के लिए, तय किए गए फ़ॉर्मैट में खिलाड़ी का रॉ डेटा भेजें.- क्लाइंट साइड या सर्वर साइड इंटिग्रेशन का इस्तेमाल करके, तय किए गए सभी इवेंट भेजें.
ज़्यादा जानकारी के लिए, प्लेयर इवेंट और
progressUpdateइवेंट के उदाहरण देखें.
- क्लाइंट साइड या सर्वर साइड इंटिग्रेशन का इस्तेमाल करके, तय किए गए सभी इवेंट भेजें.
ज़्यादा जानकारी के लिए, प्लेयर इवेंट और
- ZIP फ़ाइल अपलोड करें: तीन CSV फ़ाइलें और आइकॉन की वे सभी इमेज फ़ाइलें अपलोड करें जिनमें बार-बार दोहराए जाने वाले पांच आंकड़े और खिलाड़ी की प्रोग्रेस का एक लेवल शामिल हो.
ज़्यादा जानकारी के लिए, ZIP फ़ाइल से जुड़े दिशा-निर्देश देखें.
यह जानकारी शामिल करें:
- बार-बार होने वाले इवेंट के आंकड़ों के लिए CSV फ़ाइल:
- आंकड़े के लिए यूनीक आईडी.
- आंकड़ों का हिसाब लगाने के लिए, इस्तेमाल किए जाने वाले इवेंट लेबल की जानकारी दें. यहां
progressUpdateइवेंट लेबल का इस्तेमाल नहीं किया जा सकता.- आंकड़ों का हिसाब लगाने के लिए, इस्तेमाल किए जाने वाले प्रॉपर्टी लेबल की जानकारी दें. यह तय किए गए इवेंट की प्रॉपर्टी होनी चाहिए.
- एग्रीगेशन टाइप (SUM, MAX, MIN या COUNT) तय करें, ताकि यह तय किया जा सके कि चुनी गई प्रॉपर्टी लेबल पर आंकड़े का हिसाब कैसे लगाया जाए.
- फ़िल्टर करने की कोई वैकल्पिक शर्त तय करें, ताकि लॉजिक का हिसाब सिर्फ़ तब लगाया जाए, जब शर्त पूरी हो. प्रॉपर्टी और इवेंट लेबल, ऑपरेटर (=, <, <=, >= या >), और थ्रेशोल्ड वैल्यू तय करें.
- एक बूलियन फ़्लैग शामिल करें, ताकि यह पता चल सके कि आंकड़े का इस्तेमाल, प्रतिस्पर्धी सुविधाओं के लिए किया जा सकता है या नहीं.
- अगर इस सुविधा का इस्तेमाल, गेम में प्रतिस्पर्धा के लिए किया जा सकता है, तो एक असली खिलाड़ी के लिए, हर घंटे के हिसाब से कम से कम और ज़्यादा से ज़्यादा सीमाएं. इससे हमें उन खिलाड़ियों की पहचान करने में मदद मिलेगी जो लीग और सोशल चैलेंज जैसी सुविधाओं में हिस्सा लेते समय, इनका गलत इस्तेमाल कर सकते हैं.
- आंकड़े के लिए कोई यूनीक डिसप्ले नेम दें, जो खिलाड़ियों को दिखे.
- आंकड़ों के बारे में बताने के लिए यूनीक टेक्स्ट दें. इस ब्यौरे में यह जानकारी होनी चाहिए कि खिलाड़ी को यह आंकड़ा कैसे मिलता है. साथ ही, यह गेमर प्रोफ़ाइल के यूज़र इंटरफ़ेस (यूआई) में खिलाड़ियों को दिखेगा.
- आंकड़े को दिखाने के लिए एक यूनीक आइकॉन दें. इसके लिए, CSV फ़ाइल में आइकॉन का सटीक फ़ाइल नाम डालें.
- इनपुट के तौर पर यह जानकारी दें कि वैल्यू का बढ़ना या घटना, खिलाड़ी के लिए अच्छा है या नहीं. हालांकि, ऐसा करना ज़रूरी नहीं है. इस इनपुट का इस्तेमाल, खिलाड़ी की गतिविधियों को सेलिब्रेट करने के लिए किया जाएगा.
- आंकड़े के लिए, मेज़रमेंट की कोई वैकल्पिक इकाई दें. जैसे, किलोमीटर, मील, और सेकंड.
- खिलाड़ी की प्रोग्रेस के आंकड़ों के लिए CSV फ़ाइल:
- खिलाड़ी की प्रोग्रेस के लिए, एक यूनीक डिसप्ले नेम दें. यह नाम खिलाड़ियों को दिखता है.
- आंकड़े को दिखाने के लिए, एक यूनीक आइकॉन दें.
- प्रोग्रेशन के आंकड़े के बारे में जानकारी दें.
- इनपुट के तौर पर यह जानकारी दें कि वैल्यू का बढ़ना या घटना, खिलाड़ी के लिए अच्छा है या नहीं. हालांकि, ऐसा करना ज़रूरी नहीं है. इस इनपुट का इस्तेमाल, खिलाड़ी की गतिविधियों को सेलिब्रेट करने के लिए सिर्फ़ तब किया जाएगा, जब
currentProgressप्रॉपर्टी का टाइप INT हो. - आंकड़े के लिए, माप की कोई वैकल्पिक इकाई दें. जैसे, किलोमीटर, मील, सेकंड.
- स्थानीय भाषा में जानकारी देने के लिए CSV फ़ाइल: सभी आंकड़ों के लिए, स्थानीय भाषा में डिसप्ले नेम दें.
- हर स्थानीय भाषा के लिए एक लाइन जोड़ें.
- आंकड़े के डिसप्ले नेम की स्ट्रिंग का इस्तेमाल करें, जैसा कि पिछली CSV फ़ाइल में जोड़ा गया था. इससे उस आंकड़े की खास तौर पर पहचान की जा सकेगी जिसके लिए स्थानीय भाषा के मुताबिक जानकारी जोड़ी जा रही है.
- भाषा कोड की सूची में से भाषा चुनें.
- बताई गई भाषा में, डिसप्ले नेम के लिए स्थानीय भाषा जोड़ें.
- तय की गई भाषा में, आंकड़ों की जानकारी के लिए स्थानीय भाषा जोड़ें.
- बार-बार होने वाले इवेंट के आंकड़ों के लिए CSV फ़ाइल:
स्कीमा की योजना बनाना
Game Stats API का इस्तेमाल करके, दो तरह का डेटा भेजा जा सकता है: खिलाड़ी के इवेंट और खिलाड़ी की प्रोग्रेस के आंकड़ों के लिए पहले से तय किया गया इवेंट.
यहां दिए गए उदाहरणों से पता चलता है कि अलग-अलग तरह के गेम में, प्लेयर इवेंट कैसे दिखते हैं:
प्लेयर इवेंट
प्लेयर इवेंट, गेम में होने वाली अलग-अलग गतिविधियों, गेम लूप के पूरा होने या प्रोग्रेस के माइलस्टोन से तय होते हैं.
- इवेंट तय करें, जैसे कि गेम के खास पल, गेम लूप पूरा होना या गेम में आगे बढ़ने के पड़ाव:
- गेम लूप पूरा होने की जानकारी, जैसे कि पूरा हुआ मैच या रन.
- प्रोग्रेशन माइलस्टोन, जैसे कि सेव की गई जगह को एक्सप्लोर करने की प्रोग्रेस या पूरा किया गया लेवल.
- बार-बार रिकॉर्ड होने वाले आंकड़े, खिलाड़ी की बार-बार की जाने वाली कार्रवाइयों को सही तरीके से दिखाते हैं. इसलिए, तय किए गए इवेंट, मुख्य गेमप्ले से जुड़े होने चाहिए.
- इवेंट और उसके नतीजों के बारे में जानकारी देने के लिए, प्रॉपर्टी जोड़ें. जैसे, लेवल नंबर, मैच का टाइप, हथियार का टाइप, हथियारों की संख्या, हेडशॉट, इकट्ठा किए गए सिक्के, मैच का नतीजा, लैप टाइम या कार का टाइप.
- गेमप्ले सेशन के दौरान, इवेंट के होते ही उन्हें भेजें. उदाहरण के लिए, गेम लूप पूरा होने के तुरंत बाद, गेम लूप पूरा होने का इवेंट भेजें.
उदाहरण
| गेम टाइप | इवेंट लेबल | इन-गेम मोमेंट / प्रोग्रेशन इवेंट पूरा होना / गेम लूप पूरा होना | नतीजा | विशेषताएं |
|---|---|---|---|---|
| लीनियर प्रोग्रेशन वाला इंडी पहेली वाला गेम | chapter_completed | प्रोग्रेशन इवेंट पूरा करना | लागू नहीं | चैप्टर का नंबर, चैप्टर का नाम, कोशिशों की संख्या, स्क्रीन की संख्या, मूव की संख्या, चैप्टर का कॉन्टेंट |
| screen_completed | प्रोग्रेशन इवेंट पूरा करना | चैप्टर का नंबर, चैप्टर का नाम, कोशिशों की संख्या, मूव की संख्या, चैप्टर का कॉन्टेंट | ||
| 3D एंडलेस रनर | run_completed | गेम लूप पूरा होना | इकट्ठा किए गए कॉइन, स्कोर | दौड़ने की अवधि, जेटपैक से इकट्ठा किए गए सिक्के, दौड़ की शुरुआत में इस्तेमाल किया गया बूस्टर, इस्तेमाल किए गए सर्फ़बोर्ड, इस्तेमाल किए गए चुंबक, इस्तेमाल किया गया जंपर, इस्तेमाल किया गया जेटपैक |
| विशाल दुनिया वाला ऐक्शन आरपीजी | areaExplorationProgress | प्रोग्रेशन इवेंट पूरा करना | दुश्मनों को हराएं और पोशन इकट्ठा करें | इलाके का नंबर, इलाके का नाम, प्रोग्रेस का प्रतिशत |
| questCompleted | गेम लूप पूरा होने पर | लागू नहीं | मिशन का नाम | |
| weaponUnlocked | इन-गेम मोमेंट | लागू नहीं | हथियार का नाम, हथियार का लेवल | |
| chestUnlocked | इन-गेम मोमेंट | एन्हैंसमेंट ओर इकट्ठा किया गया | ||
| सजावटी मेटा के साथ कैज़ुअल पज़ल | puzzleCompleted | गेम लूप पूरा करना / प्रोग्रेशन इवेंट पूरा करना | इकट्ठा किए गए कॉइन, इकट्ठा किए गए बूस्टर | चालों की संख्या, क्या बटलर के उपहार का इस्तेमाल किया गया?, लेवल का टाइप, लेवल नंबर, इस्तेमाल किए गए कलर बूस्टर, इस्तेमाल किए गए डायनामाइट |
| cardsCollected | इन-गेम मोमेंट | 1 स्टार वाले कार्ड, 2 स्टार वाले कार्ड, 3 स्टार वाले कार्ड, कुल कार्ड | एल्बम नंबर, एल्बम का नाम | |
| आर्केड रेसिंग | raceCompleted | गेम लूप पूरा होने पर | रैंक, एनओएस का इस्तेमाल, race_time | Type of race, rating, car_used |
| 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 Endless Runner | सबसे ज़्यादा स्कोर, मौजूदा बूस्टर बैलेंस |
| कैज़ुअल पज़ल | मौजूदा लेवल नंबर, पहली बार में जीते गए लेवल की संख्या, पूरे किए गए एरिया की संख्या, पूरे किए गए कलेक्शन की संख्या |
| आर्केड रेसिंग | मौजूदा लेवल नंबर, मुद्रा बैलेंस |
| विशाल दुनिया वाला ऐक्शन आरपीजी | Current Character Rank, Current Level number |
| थर्ड पर्सन शूटर | मौजूदा लेवल नंबर |
| ई-स्पोर्ट्स सिम्युलेशन | मैनेजर लेवल नंबर, क्लब लेवल नंबर |
अपने आंकड़े कॉन्फ़िगर करना
आपको बार-बार होने वाले और प्रोग्रेशन के आंकड़ों को कॉन्फ़िगर करना होगा. इसके लिए, आपको कंप्यूटेशन लॉजिक तय करना होगा और हर आंकड़े के बारे में जानकारी दिखानी होगी. अलग-अलग गेम शैलियों के बार-बार होने वाले आंकड़ों के उदाहरण नीचे दिए गए हैं. बार-बार अपडेट होने वाले आंकड़े, आम तौर पर ऐसे आंकड़े होते हैं जो किसी खिलाड़ी के लिए, गेम के कुछ (तीन से चार) सेशन में बार-बार अपडेट होते हैं. साथ ही, ये गेम के मुख्य गेम लूप से जुड़े होते हैं.
SUM, COUNT या MAX का इस्तेमाल कब करना है, यह जानने के लिए सही एग्रीगेशन टाइप चुनना लेख पढ़ें.
| गेम का नाम | गेम के आंकड़ों का डिसप्ले नेम | इवेंट प्रॉपर्टी | कैलकुलेशन लॉजिक [aggregation] | फ़िल्टर करना |
|---|---|---|---|---|
| 3D एंडलेस रनर | पूरे किए गए रन | run_completed इवेंट की कोई भी प्रॉपर्टी | गिनती | सभी वैल्यू [कोई फ़िल्टर नहीं] |
| इकट्ठा किए गए कॉइन | run_completed इवेंट की Coins_collected प्रॉपर्टी | कुल योग | लागू नहीं | |
| इकट्ठा की गई कुंजियां | 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 प्रॉपर्टी | गिनती | वैल्यू = 100 | |
| तलवारें अनलॉक की गईं | weapon_unlocked इवेंट की weapon_type प्रॉपर्टी | गिनती | Value = "sword" | |
| दुश्मनों को हराया | area_exploration_progress इवेंट की Enemies_defeated प्रॉपर्टी | कुल योग | लागू नहीं | |
| इकट्ठा किए गए हेल्थ पोशन | chest_unlocked इवेंट की Enhancement_ores प्रॉपर्टी | कुल योग | लागू नहीं | |
| कैज़ुअल पज़ल | लेवल पूरे हुए | level_completed इवेंट की कोई भी प्रॉपर्टी | गिनती | सभी वैल्यू [कोई फ़िल्टर नहीं] |
| पहली बार में पूरे किए गए लेवल | level_completed इवेंट की Num_try प्रॉपर्टी | गिनती | वैल्यू = 1 | |
| इस्तेमाल किए गए कलर बूस्टर | level_completed इवेंट की Color_booster_used प्रॉपर्टी | कुल योग | लागू नहीं | |
| इस्तेमाल किए गए बम बूस्टर | level_completed इवेंट की Bomb_booster_used प्रॉपर्टी | कुल योग | लागू नहीं | |
| इकट्ठा किए गए कार्ड | cards_collected इवेंट की total_cards प्रॉपर्टी | कुल योग | लागू नहीं | |
| आर्केड रेसिंग | दौड़ विजय | race_completed इवेंट की रैंक प्रॉपर्टी | गिनती | वैल्यू = 1 |
| सबसे तेज़ रेस | race_completed इवेंट की race_time प्रॉपर्टी | कम से कम | लागू नहीं | |
| NOS का इस्तेमाल किया गया | race_completed इवेंट की NOS_used प्रॉपर्टी | कुल योग | लागू नहीं | |
| मस्टैंग के साथ पूरी की गई रेस | race_completed इवेंट की Car_type प्रॉपर्टी | गिनती | वैल्यू = "Mustang" | |
| कार अपग्रेड | car_upgraded इवेंट की कोई भी प्रॉपर्टी | गिनती | सभी वैल्यू [कोई फ़िल्टर नहीं] | |
| थर्ड पर्सन बैटल रोयाल शूटर गेम | जीते गए मैच | match_completed इवेंट की कोई भी प्रॉपर्टी | गिनती | Match_result = TRUE |
| कुल इलिमिनेशन | match_completed इवेंट की एलिमिनेशन प्रॉपर्टी | कुल योग | लागू नहीं | |
| सबसे ज़्यादा समय तक ज़िंदा रहने का रिकॉर्ड | match_completed इवेंट की survival_time प्रॉपर्टी | ज़्यादा से ज़्यादा | लागू नहीं | |
| कुल हेडशॉट | match_completed इवेंट की हेडशॉट प्रॉपर्टी | कुल योग | लागू नहीं | |
| कुल स्किल वैल्यू | match_completed इवेंट की Skill_value प्रॉपर्टी | कुल योग | लागू नहीं | |
| ई-स्पोर्ट्स मैनेजमेंट सिम्युलेशन | जीते गए मैच | match_completed इवेंट की नतीजा प्रॉपर्टी | गिनती | Result = "Won" |
| किए गए कुल गोल | match_completed इवेंट की goals_scored प्रॉपर्टी | कुल योग | लागू नहीं | |
| मुश्किल लेवल वाले जीते गए मैच | hard_match_completed इवेंट की नतीजा प्रॉपर्टी | गिनती | Result = "Won" | |
| गोल के अंतर के आधार पर सबसे बड़ी जीत | match_completed इवेंट की goal_difference प्रॉपर्टी | ज़्यादा से ज़्यादा | Result = "Won" | |
| कुल ट्रेनिंग ड्रिल | training_completed इवेंट की Drills_done प्रॉपर्टी | कुल योग | लागू नहीं | |
| पूरी की गई कुल ट्रेनिंग | training_completed इवेंट की कोई भी प्रॉपर्टी | गिनती | लागू नहीं |
इंटिग्रेशन की जानकारी
इस सेक्शन में, इवेंट बनाने और उन्हें क्लाइंट साइड और सर्वर साइड, दोनों इंटिग्रेशन में भेजने का तरीका बताया गया है.
आपको डेटा कब भेजना चाहिए
प्लेयर इवेंट, गेम में होने वाली ऐसी कार्रवाइयों को दिखाते हैं जो गेम लूप के पूरा होने या गेम में होने वाले खास पलों से जुड़ी होती हैं. इन इवेंट को होते ही सबमिट करें. उदाहरण के लिए, गेम लूप पूरा होने पर, गेम लूप पूरा होने का इवेंट सबमिट करें.
progressUpdate इवेंट, किसी खिलाड़ी की मौजूदा प्रोग्रेस के लेवल को दिखाता है.
प्रोग्रेशन के आंकड़ों का डेटा, इस इवेंट का इस्तेमाल करके इन स्थितियों में भेजा जाना चाहिए:
- जब भी मौजूदा प्रोग्रेस में कोई अपडेट हो, तो नई वैल्यू तुरंत भेजें
- जब भी कोई खिलाड़ी गेम लॉन्च करे, तब यह आंकड़ा हमेशा मौजूद होना चाहिए.
इंटिग्रेशन के पाथ
इंटिग्रेशन के दो तरीके हैं - क्लाइंट और सर्वर-टू-सर्वर.
सर्वर-टू-सर्वर इंटिग्रेशन
सार्वजनिक एपीआई एंडपॉइंट की मदद से, अनुरोध के पेलोड में इवेंट भेजे जा सकते हैं. इसके लिए, इन कॉन्फ़िगरेशन का इस्तेमाल करें:
एचटीटीपी अनुरोध
POST https://games.googleapis.com/games/v1/players/{playerId}/gameStats:
batchRecordEvents
पाथ पैरामीटर
| पैरामीटर | डेटा टाइप | ब्यौरा |
|---|---|---|
| playerId | स्ट्रिंग | खिलाड़ी का PGS आईडी. |
अनुमति और पुष्टि करना
सर्वर-टू-सर्वर एपीआई कॉल, OAuth 2.0 का इस्तेमाल करके, Play की गेम सेवाओं के सर्वर-साइड ऐक्सेस के स्टैंडर्ड दिशा-निर्देशों का पालन करते हैं. अनुरोधों में एक ऐसा धारक टोकन शामिल होना चाहिए जिसे https://www.googleapis.com/auth/games स्कोप के साथ अनुमति मिली हो.
इवेंट: अनुरोध का मुख्य हिस्सा
बैकएंड एपीआई में, स्ट्रक्चर की पुष्टि करने से जुड़ी सख्त सीमाएं होती हैं:
- बैच का साइज़: हर
BatchRecordEventsRequestमें ज़्यादा से ज़्यादा 30 इवेंट. - प्रॉपर्टी की संख्या: हर
PlayerGameEventके लिए, ज़्यादा से ज़्यादा 25 कस्टम प्रॉपर्टी. - वर्ण सीमाएं: इवेंट का नाम (ज़्यादा से ज़्यादा 100 वर्ण), प्रॉपर्टी की कुंजियां (ज़्यादा से ज़्यादा 100 वर्ण), और प्रॉपर्टी स्ट्रिंग वैल्यू (ज़्यादा से ज़्यादा 1024 वर्ण).
- इवेंट आईडी: यह 36 वर्णों की मान्य यूयूआईडी स्ट्रिंग होनी चाहिए.
- फिर से कोशिश करना और कैश मेमोरी में सेव करना: अगर एपीआई काम नहीं करता है, तो स्थानीय तौर पर बहुत ज़्यादा इवेंट को कैश मेमोरी में सेव करने या इकट्ठा करने से बचें. ऐसा इसलिए, क्योंकि 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 } } ] }
क्लाइंट के लिए लागू की गई सुविधाएं
अपने प्लैटफ़ॉर्म के लिए, गेम के आंकड़ों से जुड़े क्लाइंट को लागू करने के बारे में जानने के लिए, यहां दिए गए संसाधन देखें: