इस दस्तावेज़ में, Google Play से मिलने वाली डेवलपर से जुड़ी रीयल-टाइम सूचनाओं के बारे में बताया गया है.
एन्कोडिंग
Cloud Pub/Sub के किसी विषय पर पब्लिश किए गए हर मैसेज में, base64-encoded डेटा फ़ील्ड होता है.
{
  "message": {
    "attributes": {
      "key": "value"
    },
    "data": "eyAidmVyc2lvbiI6IHN0cmluZywgInBhY2thZ2VOYW1lIjogc3RyaW5nLCAiZXZlbnRUaW1lTWlsbGlzIjogbG9uZywgIm9uZVRpbWVQcm9kdWN0Tm90aWZpY2F0aW9uIjogT25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24sICJzdWJzY3JpcHRpb25Ob3RpZmljYXRpb24iOiBTdWJzY3JpcHRpb25Ob3RpZmljYXRpb24sICJ0ZXN0Tm90aWZpY2F0aW9uIjogVGVzdE5vdGlmaWNhdGlvbiB9",
    "messageId": "136969346945"
  },
  "subscription": "projects/myproject/subscriptions/mysubscription"
}
Base64 एन्कोड किए गए डेटा फ़ील्ड को डिकोड करने के बाद, DeveloperNotification में ये फ़ील्ड शामिल होते हैं:
{
  "version": string,
  "packageName": string,
  "eventTimeMillis": long,
  "oneTimeProductNotification": OneTimeProductNotification,
  "subscriptionNotification": SubscriptionNotification,
  "voidedPurchaseNotification": VoidedPurchaseNotification,
  "testNotification": TestNotification
}
यहां दी गई टेबल में, इन फ़ील्ड के बारे में बताया गया है.
| प्रॉपर्टी का नाम | वैल्यू | ब्यौरा | 
| वर्शन | स्ट्रिंग | इस सूचना का वर्शन. शुरुआत में, यह "1.0" होता है. यह वर्शन, वर्शन फ़ील्ड के अन्य वर्शन से अलग है. | 
| packageName | स्ट्रिंग | उस ऐप्लिकेशन का पैकेज नाम जिससे यह सूचना जुड़ी है. उदाहरण के लिए, `com.some.thing`. | 
| eventTimeMillis | लंबा | इवेंट होने का टाइमस्टैंप. यह Epoch के बाद के मिलीसेकंड में होता है. | 
| subscriptionNotification | SubscriptionNotification | अगर यह फ़ील्ड मौजूद है, तो इसका मतलब है कि यह सूचना किसी सदस्यता से जुड़ी है. साथ ही, इस फ़ील्ड में सदस्यता से जुड़ी ज़्यादा जानकारी शामिल होती है. ध्यान दें कि यह फ़ील्ड, oneTimeProductNotification, voidedPurchaseNotification, और testNotification के साथ इस्तेमाल नहीं किया जा सकता. | 
| oneTimeProductNotification | OneTimeProductNotification | अगर यह फ़ील्ड मौजूद है, तो इसका मतलब है कि यह सूचना एक बार की जाने वाली खरीदारी से जुड़ी है. साथ ही, इस फ़ील्ड में खरीदारी से जुड़ी ज़्यादा जानकारी होती है. ध्यान दें कि यह फ़ील्ड, subscriptionNotification, voidedPurchaseNotification, और testNotification के साथ इस्तेमाल नहीं किया जा सकता. | 
| voidedPurchaseNotification | VoidedPurchaseNotification | अगर यह फ़ील्ड मौजूद है, तो इसका मतलब है कि यह सूचना रद्द की गई खरीदारी से जुड़ी है. इस फ़ील्ड में, रद्द की गई खरीदारी से जुड़ी अतिरिक्त जानकारी होती है. ध्यान दें कि यह फ़ील्ड, एक बार प्रॉडक्ट की सूचना पाने की सुविधा, सदस्यता की सूचना पाने की सुविधा, और टेस्ट की सूचना पाने की सुविधा के साथ इस्तेमाल नहीं किया जा सकता. | 
| testNotification | TestNotification | अगर यह फ़ील्ड मौजूद है, तो इसका मतलब है कि यह सूचना टेस्ट पब्लिश से जुड़ी है. ये सूचनाएं सिर्फ़ Google Play डेवलपर कंसोल के ज़रिए भेजी जाती हैं. ध्यान दें कि यह फ़ील्ड, oneTimeProductNotification, subscriptionNotification, और voidedPurchaseNotification के साथ इस्तेमाल नहीं किया जा सकता. | 
SubscriptionNotification
SubscriptionNotification में ये फ़ील्ड शामिल होते हैं:
{
  "version": string,
  "notificationType": int,
  "purchaseToken": string
}
| प्रॉपर्टी का नाम | वैल्यू | ब्यौरा | 
| वर्शन | स्ट्रिंग | इस सूचना का वर्शन. शुरुआत में, यह "1.0" होता है. यह वर्शन, वर्शन फ़ील्ड के अन्य वर्शन से अलग है. | 
| notificationType | आईएनटी | किसी सदस्यता के लिए notificationType की ये वैल्यू हो सकती हैं:
      
  | 
  
| purchaseToken | स्ट्रिंग | यह टोकन, उपयोगकर्ता के डिवाइस को तब दिया जाता है, जब सदस्यता खरीदी जाती है. | 
उदाहरण
नई सदस्यता खरीदने पर मिलने वाली सूचना का उदाहरण यहां दिया गया है:
{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "subscriptionNotification":
  {
    "version":"1.0",
    "notificationType":4,
    "purchaseToken":"PURCHASE_TOKEN"
  }
}
OneTimeProductNotification
OneTimeProductNotification में ये फ़ील्ड शामिल होते हैं:
{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "sku": string
}
| प्रॉपर्टी का नाम | वैल्यू | ब्यौरा | 
| वर्शन | स्ट्रिंग | इस सूचना का वर्शन. शुरुआत में, यह "1.0" होगा. यह वर्शन, वर्शन फ़ील्ड के अन्य वर्शन से अलग है. | 
| notificationType | आईएनटी | सूचना का टाइप. इसकी ये वैल्यू हो सकती हैं:
      
  | 
  
| purchaseToken | स्ट्रिंग | खरीदारी के समय, उपयोगकर्ता के डिवाइस को दिया गया टोकन. | 
| sku | स्ट्रिंग | खरीदे गए वन-टाइम प्रॉडक्ट का आईडी (उदाहरण के लिए, "sword_001") | 
उदाहरण
यहां एक बार की जाने वाली नई खरीदारी की सूचना का उदाहरण दिया गया है:
{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "oneTimeProductNotification":
  {
    "version":"1.0",
    "notificationType":1,
    "purchaseToken":"PURCHASE_TOKEN",
    "sku":"my.sku"
  }
}
VoidedPurchaseNotification
VoidedPurchaseNotification में ये फ़ील्ड शामिल होते हैं:
प्रॉपर्टी का नाम  | 
    वैल्यू  | 
    ब्यौरा  | 
  
  | 
    
  | 
    रद्द की गई खरीदारी से जुड़ा टोकन. जब कोई नई खरीदारी की जाती है, तब डेवलपर को यह जानकारी दी जाती है.  | 
  
  | 
    
  | 
    उस लेन-देन से जुड़ा यूनीक ऑर्डर आईडी जिसे रद्द कर दिया गया है. एक बार की जाने वाली खरीदारी के लिए, यह खरीदारी के लिए जनरेट किया गया सिर्फ़ एक ऑर्डर आईडी दिखाता है. अपने-आप रिन्यू होने वाली सदस्यताओं के लिए, हर रिन्यूअल ट्रांज़ैक्शन के लिए एक नया ऑर्डर आईडी जनरेट होता है.  | 
  
  | 
    
  | 
    रद्द की गई खरीदारी के लिए  
  | 
  
  | 
    
  | 
    रद्द की गई खरीदारी के लिए  
 ध्यान दें कि एक से ज़्यादा आइटम खरीदने पर, अगर बाकी सभी आइटम का रिफ़ंड कर दिया जाता है, तो   | 
  
उदाहरण
रद्द की गई नई खरीदारी की सूचना का एक उदाहरण यहां दिया गया है:
{
  "version":"1.0",
  "packageName":"com.some.app",
  "eventTimeMillis":"1503349566168",
  "voidedPurchaseNotification":
  {
    "purchaseToken":"PURCHASE_TOKEN",
    "orderId":"GS.0000-0000-0000",
    "productType":1
    "refundType":1
  }
}
Consuming VoidedPurchaseNotification
जब आपके आरटीडीएन क्लाइंट को VoidedPurchaseNotification मिलता है, तो यहां दी गई जानकारी नोट करें:
packageName: इससे ऐप्लिकेशन की पहचान होती है.eventTimeMillis: इससे आपको यह पता चलता है कि स्टेटस में बदलाव कब हुआ.purchaseToken: यह टोकन, उपयोगकर्ता के डिवाइस को तब दिया जाता है, जब प्रॉडक्ट खरीदा जाता है.orderId: इससे रद्द किए गए लेन-देन से जुड़े ऑर्डर की पहचान की जाती है.productType: इससे पता चलता है कि रद्द की गई खरीदारी, ऐप्लिकेशन में की गई खरीदारी थी या सदस्यता.refundType: इससे पता चलता है कि किस तरह के रिफ़ंड की वजह से खरीदारी रद्द हुई.
TestNotification
TestNotification में ये फ़ील्ड शामिल होते हैं:
{
  "version": string
}
| प्रॉपर्टी का नाम | वैल्यू | ब्यौरा | 
| वर्शन | स्ट्रिंग | इस सूचना का वर्शन. शुरुआत में, यह "1.0" होता है. यह वर्शन, वर्शन फ़ील्ड के अन्य वर्शन से अलग है. | 
उदाहरण
यहां, जांच के लिए भेजी गई सूचना का एक उदाहरण दिया गया है:
{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503350156918",
  "testNotification":
  {
    "version":"1.0"
  }
}