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

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

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

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

प्रॉडक्ट के स्टेटस में हुए बदलावों की सूचना पाने के लिए, 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-encoded मैसेज मिलता है. डिकोड करने पर, पेलोड इस 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"
}