Method: gameStats.batchRecordEvents

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

एचटीटीपी अनुरोध

POST https://games.googleapis.com/games/v1/players/{playerId}/gameStats:batchRecordEvents

पाथ पैरामीटर

पैरामीटर
playerId

string

ज़रूरी है. इवेंट करने वाले खिलाड़ी का आईडी.

अनुरोध का लेख

अनुरोध के मुख्य हिस्से में, इस स्ट्रक्चर का डेटा शामिल होता है:

JSON के काेड में दिखाना
{
  "packageName": string,
  "requestTime": string,
  "events": [
    {
      object (PlayerGameEvent)
    }
  ],
}
फ़ील्ड
packageName

string

ज़रूरी है. ऐप्लिकेशन पैकेज का नाम (जैसे, "com.example.game").

requestTime

string (Timestamp format)

ज़रूरी है. क्लाइंट से इस इवेंट के बैच को सबमिट करने का समय.

यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" या "2014-10-02T15:01:23+05:30".

events[]

object (PlayerGameEvent)

ज़रूरी है. खिलाड़ी के गेम इवेंट की वह सूची जिसे रिकॉर्ड किया जाना है. हर बैच अनुरोध में ज़्यादा से ज़्यादा 30 इवेंट.

जवाब का लेख

सफल रिस्पॉन्स से पता चलता है कि इवेंट के बैच को प्रोसेस कर दिया गया है.

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

JSON के काेड में दिखाना
{
  "failedRequests": {
    integer: {
      object (Status)
    },
    ...
  }
}
फ़ील्ड
failedRequests

map (key: integer, value: object (Status))

यह BatchRecordEventsRequest.events में मौजूद, इंडेक्स के हिसाब से फ़ेल हुए इवेंट का मैप है. छोड़ी गई कुंजियों से पता चलता है कि रिकॉर्डिंग पूरी हो गई है.

एक ऑब्जेक्ट, जिसमें "key": value जोड़े की सूची शामिल हो. उदाहरण: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

अनुमति पाने के लिंक

इसके लिए, इनमें से किसी एक OAuth स्कोप की ज़रूरत होती है:

  • https://www.googleapis.com/auth/games
  • https://www.googleapis.com/auth/games_lite

ज़्यादा जानकारी के लिए, OAuth 2.0 Overview देखें.

PlayerGameEvent

किसी गेम में खिलाड़ी के इवेंट से ट्रिगर होने वाले सिंगल प्लेयर गेम इवेंट का प्रतिनिधित्व. जैसे, कोई लेवल पूरा करना, कोई आइटम अनलॉक करना या कोई मैच खत्म करना.

JSON के काेड में दिखाना
{
  "eventId": string,
  "eventName": string,
  "eventProperties": {
    string: {
      object (PropertyValue)
    },
    ...
  },
  "eventTime": string
}
फ़ील्ड
eventId

string

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

eventName

string

ज़रूरी है. क्लाइंट की ओर से तय किया गया इवेंट का नाम. उदाहरण के लिए, "run_completed", "level_up". ज़्यादा से ज़्यादा 100 वर्ण इस्तेमाल किए जा सकते हैं.

eventProperties

map (key: string, value: object (PropertyValue))

ज़रूरी नहीं. की-वैल्यू प्रॉपर्टी, जो इवेंट के बारे में जानकारी देती हैं. - ज़्यादा से ज़्यादा 25 प्रॉपर्टी जोड़ी जा सकती हैं. - प्रॉपर्टी की कुंजी की ज़्यादा से ज़्यादा लंबाई: 100 वर्ण. - PropertyValue में स्ट्रिंग वैल्यू की ज़्यादा से ज़्यादा लंबाई: 1,024 वर्ण.

एक ऑब्जेक्ट, जिसमें "key": value जोड़े की सूची शामिल हो. उदाहरण: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

eventTime

string (Timestamp format)

ज़रूरी है. क्लाइंट के हिसाब से, इस इवेंट के होने का समय.

यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" या "2014-10-02T15:01:23+05:30".

PropertyValue

वैल्यू के लिए रैपर.

JSON के काेड में दिखाना
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "intValue": string,
  "doubleValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "durationValue": string
}
फ़ील्ड
स्केलर की वैल्यू. यहां ऐसे फ़ील्ड की सूची दी गई है जिनमें से सिर्फ़ एक को चुना जा सकता है. जवाब में, ज़्यादा से ज़्यादा एक फ़ील्ड सेट किया जाएगा:
intValue

string (int64 format)

कोई पूर्णांक वैल्यू.

doubleValue

number

डबल वैल्यू.

stringValue

string

स्ट्रिंग वैल्यू.

boolValue

boolean

बूलियन वैल्यू.

durationValue

string (Duration format)

अवधि की वैल्यू.

यह सेकंड में अवधि होती है. इसमें नौ दशमलव अंक तक हो सकते हैं. इसके आखिर में 's' होता है. उदाहरण: "3.5s".

एक-दूसरे से अलग फ़ील्ड के आखिर में.

स्थिति

Status टाइप, लॉजिकल गड़बड़ी का एक ऐसा मॉडल तय करता है जो अलग-अलग प्रोग्रामिंग एनवायरमेंट के लिए सही होता है. इनमें REST API और RPC API शामिल हैं. इसका इस्तेमाल gRPC करता है. हर Status मैसेज में तीन तरह का डेटा होता है: गड़बड़ी का कोड, गड़बड़ी का मैसेज, और गड़बड़ी की जानकारी.

इस गड़बड़ी के मॉडल और इसके साथ काम करने के तरीके के बारे में ज़्यादा जानने के लिए, एपीआई डिज़ाइन गाइड पढ़ें.

JSON के काेड में दिखाना
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
फ़ील्ड
code

integer

स्टेटस कोड, जो google.rpc.Code की enum वैल्यू होनी चाहिए.

message

string

डेवलपर को दिखने वाला गड़बड़ी का मैसेज, जो अंग्रेज़ी में होना चाहिए. उपयोगकर्ता को दिखने वाली गड़बड़ी के किसी भी मैसेज को स्थानीय भाषा में होना चाहिए. साथ ही, उसे google.rpc.Status.details फ़ील्ड में भेजा जाना चाहिए या क्लाइंट की ओर से स्थानीय भाषा में होना चाहिए.

details[]

object

मैसेज की सूची, जिसमें गड़बड़ी की जानकारी होती है. एपीआई के इस्तेमाल के लिए, मैसेज टाइप का एक सामान्य सेट होता है.

एक ऑब्जेक्ट, जिसमें आर्बिट्ररी टाइप के अलग-अलग फ़ील्ड शामिल हों. एक ऐसा अतिरिक्त फ़ील्ड "@type" जिसमें टाइप की पहचान करने वाला यूआरआई हो. उदाहरण: { "id": 1234, "@type": "types.example.com/standard/id" }.