प्रॉडक्ट के स्टेटस में हुए बदलावों के लिए पुश नोटिफ़िकेशन पाना

PRODUCT_STATUS_CHANGE की सूचनाएं पाने के लिए सदस्यता ली जा सकती है. इससे आपको Merchant Center खातों में प्रॉडक्ट की समीक्षा की स्थिति बदलने पर, रीयल-टाइम में सूचनाएं मिलेंगी. उदाहरण के लिए, किसी प्रॉडक्ट के अस्वीकार होने पर आपको इसकी जानकारी मिल सकती है. इससे डेटा क्वालिटी से जुड़ी संभावित समस्याओं को ठीक किया जा सकता है.

शुरू करने से पहले, पक्का करें कि आपका कॉलबैक यूआरआई, सूचनाओं के सब-एपीआई की खास जानकारी में बताई गई ज़रूरी शर्तों के मुताबिक कॉन्फ़िगर किया गया हो.

प्रॉडक्ट के स्टेटस में हुए बदलावों की सूचनाएं पाने के लिए सदस्यता लेना

प्रॉडक्ट की स्थिति में होने वाले बदलावों की सूचना पाने के लिए, notificationsubscriptions रिसॉर्स को POST अनुरोध भेजें. साथ ही, registeredEvent को PRODUCT_STATUS_CHANGE पर सेट करें.

किसी टारगेट खाते के लिए सदस्यता लेना

यहां दिए गए सैंपल अनुरोध से, किसी कारोबारी खाते के लिए प्रॉडक्ट की स्थिति में होने वाले बदलावों की सदस्यता ली जा सकती है:

POST https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/
{
  "registeredEvent": "PRODUCT_STATUS_CHANGE",
  "targetAccount": "accounts/{TARGETACCOUNT_ID}",
  "callBackUri": "https://example.com/callback"
}

इनकी जगह ये डालें:

  • ACCOUNT_ID: उस खाते का आइडेंटिफ़ायर जिसके पास सदस्यता का मालिकाना हक है और जिसे सूचनाएं मिलती हैं.
  • TARGETACCOUNT_ID: उस खाते का आइडेंटिफ़ायर जिसके बारे में आपको सूचनाएं चाहिए.

अगर आपका Merchant Center खाता एक स्टैंडअलोन खाता है और उससे कोई लिंक किया गया खाता लिंक नहीं है, तो दोनों वैरिएबल के लिए अपने खाता आईडी का इस्तेमाल करें.

मैनेज किए जा रहे सभी खातों के लिए सदस्यता लें

अगर आपके पास एक से ज़्यादा खाते मैनेज करने की सुविधा है (जैसे कि उप-खातों वाला ऐडवांस खाता), तो मैनेज किए जा रहे सभी खातों में प्रॉडक्ट की स्थिति में होने वाले बदलावों की सूचनाएं पाने के लिए, allManagedAccounts: true को सेट करें:

POST https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/
{
  "registeredEvent": "PRODUCT_STATUS_CHANGE",
  "allManagedAccounts": true,
  "callBackUri": "https://example.com/callback"
}

सफल कॉल, आपकी सदस्यता के लिए name आइडेंटिफ़ायर दिखाता है. इसमें एक यूनीक सदस्यता आईडी भी शामिल होता है:

{
  "name":"accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}",
  "registeredEvent": "PRODUCT_STATUS_CHANGE",
  "allManagedAccounts": true,
  "callBackUri": "https://example.com/callback"
}

प्रॉडक्ट के स्टेटस में बदलाव से जुड़े पेलोड को डिकोड करना

जब किसी प्रॉडक्ट के स्टेटस में कोई बदलाव होता है, तो आपके कॉलबैक यूआरआई को base64-कोड में बदला गया मैसेज मिलता है. डिकोड किए जाने पर, पेलोड ProductStatusChangeMessage फ़ॉर्मैट के मुताबिक होता है:

{
  "account": "accounts/{TARGETACCOUNT_ID}",
  "managingAccount": "accounts/{ACCOUNT_ID}",
  "resourceType": "PRODUCT",
  "attribute": "STATUS",
  "changes": [{
    "oldValue": "approved",
    "newValue": "disapproved",
    "regionCode": "US",
    "reportingContext": "SHOPPING_ADS"
  }, {
    "oldValue": "approved",
    "newValue": "disapproved",
    "regionCode": "JP",
    "reportingContext": "SHOPPING_ADS"
  },{
    "oldValue": "approved",
    "newValue": "disapproved",
    "regionCode": "GE",
    "reportingContext": "SHOPPING_ADS"
  }],
  "resourceId": "ONLINE~en~US~1234",
  "resource": "accounts/{TARGETACCOUNT_ID}/products/ONLINE~en~US~1234",
  "expirationTime": "2024-10-22T02:43:47.461464Z",
  "eventTime": "2024-03-21T02:43:47.461464Z"
}

पेलोड फ़ील्ड और नियम

  • oldValue और newValue: ये पिछली और अपडेट की गई स्थिति को दिखाते हैं. इन वैल्यू का इस्तेमाल किया जा सकता है: approved, pending, disapproved या खाली स्ट्रिंग ('').
    • अगर oldValue को शामिल नहीं किया जाता है, तो प्रॉडक्ट को नया माना जाता है.
    • अगर newValue को शामिल नहीं किया गया है, तो इसका मतलब है कि प्रॉडक्ट मिटा दिया गया है.
  • expirationTime: इससे पता चलता है कि प्रॉडक्ट का ऑफ़र कब खत्म होगा. किसी प्रॉडक्ट को मिटाने पर, यह फ़ील्ड हटा दिया जाता है.
  • reportingContext: विज्ञापन या मुफ़्त में दिखाई जाने वाली लिस्टिंग का वह प्लैटफ़ॉर्म जहां स्टेटस बदला गया है. इस्तेमाल की जा सकने वाली वैल्यू में, ReportingContextEnum से SHOPPING_ADS, LOCAL_INVENTORY_ADS, YOUTUBE_SHOPPING, YOUTUBE_CHECKOUT, YOUTUBE_AFFILIATE, और FREE_LISTINGS_UCP_CHECKOUT शामिल हैं.
  • eventTime: इवेंट जनरेट होने का टाइमस्टैंप. इवेंट के सही क्रम को पक्का करने के लिए, इस टाइमस्टैंप का इस्तेमाल करें.

प्रॉडक्ट के स्टेटस में हुए बदलाव की सूचनाओं की जांच करना

यहां दिए गए सैंपल अनुरोध का इस्तेमाल करके, यह जांच करें कि आपका कॉलबैक एंडपॉइंट, प्रॉडक्ट के स्टेटस में हुए बदलाव के मैसेज को सही तरीके से पाता है, स्वीकार करता है, और डिकोड करता है या नहीं:

curl --request POST \
'https://{YOUR_CALLBACK_URI}' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--data '{"message":{"data": "ewogICJhY2NvdW50IjogImFjY291bnRzLzEyMzQiLAogICJtYW5hZ2luZ0FjY291bnQiOiAiYWNjb3VudHMvNTY3OCIsCiAgInJlc291cmNlVHlwZSI6ICJQUk9EVUNUIiwKICAiYXR0cmlidXRlIjogIlNUQVRVUyIsCiAgImNoYW5nZXMiOiBbewogICAgIm9sZFZhbHVlIjogImFwcHJvdmVkIiwKICAgICJyZWdpb25Db2RlIjogIlVTIiwKICAgICJyZXBvcnRpbmdDb250ZXh0IjogIlNIT1BQSU5HX0FEUyIKICB9XSwKICAicmVzb3VyY2VJZCI6ICJPTkxJTkV+ZW5+VVN+MDAwMDAwMDAwMDAwIiwKICAicmVzb3VyY2UiOiAiYWNjb3VudHMvMTIzNC9wcm9kdWN0cy9PTkxJTkV+ZW5+VVN+MDAwMDAwMDAwMDAwIiwKICAiZXhwaXJhdGlvblRpbWUiOiAiMjAyNC0xMC0yMlQwMjo0Mzo0Ny40NjE0NjRaIiwKICAiZXZlbnRUaW1lIjogIjIwMjQtMDMtMjFUMDI6NDM6NDcuNDYxNDY0WiIKfQ=="}}'

इस कॉल के जवाब में, आपके कॉलबैक यूआरआई को स्वीकार किया जाने वाला एचटीटीपी स्टेटस कोड (जैसे कि 200 OK) दिखाना चाहिए. डिकोड किए गए मैसेज में यह कॉन्टेंट शामिल होता है:

{
  "account": "accounts/1234",
  "managingAccount": "accounts/5678",
  "resourceType": "PRODUCT",
  "attribute": "STATUS",
  "changes": [{
    "oldValue": "approved",
    "regionCode": "US",
    "reportingContext": "SHOPPING_ADS"
  }],
  "resourceId": "ONLINE~en~US~000000000000",
  "resource": "accounts/1234/products/ONLINE~en~US~000000000000",
  "expirationTime": "2024-10-22T02:43:47.461464Z",
  "eventTime": "2024-03-21T02:43:47.461464Z"
}