डेटा सोर्स माइग्रेट करना

इस गाइड में, Content API for Shopping की datafeeds और datafeedstatuses सेवाओं से, Merchant API में मौजूद डेटा सोर्स के सब-एपीआई पर इंटिग्रेशन माइग्रेट करने का तरीका बताया गया है. डेटा सोर्स का नया सब-एपीआई, डेटा पाइपलाइन पर ज़्यादा डायरेक्ट कंट्रोल देता है. साथ ही, डेटा सोर्स को मैनेज करना आसान बनाता है.

नई सुविधाओं के बारे में ज़्यादा जानने के लिए, डेटा सोर्स मैनेज करना गाइड देखें.

मुख्य अंतर

Content API for Shopping की तुलना में, Merchant API के कई फ़ायदे हैं:

  • डेटा सोर्स को साफ़ तौर पर बनाना. अब एपीआई, प्रॉडक्ट का डेटा पहली बार अपलोड करने पर, "Content API" डेटा सोर्स अपने-आप नहीं बनाता. Merchant API में, प्रॉडक्ट का डेटा अपलोड करने से पहले डेटा सोर्स बनाने होते हैं. इससे शुरू से ही, अपने प्रॉडक्ट डेटा पाइपलाइन को व्यवस्थित और मैनेज किया जा सकता है.

  • एपीआई के एक से ज़्यादा डेटा सोर्स इस्तेमाल करने की सुविधा. Content API for Shopping में, "Content API" डेटा सोर्स अपने-आप बनता था. साथ ही, इसमें सिर्फ़ एक डेटा सोर्स इस्तेमाल किया जा सकता था. Merchant API की मदद से, API इनपुट टाइप के एक से ज़्यादा डेटा सोर्स बनाए और मैनेज किए जा सकते हैं.

  • बिना लेबल और भाषा वाले डेटा सोर्स. Merchant API की मदद से, feedLabel और contentLanguage की जानकारी दिए बिना, प्राइमरी डेटा सोर्स बनाया जा सकता है. इस तरह के डेटा सोर्स में, feedLabel और contentLanguage के किसी भी कॉम्बिनेशन वाले प्रॉडक्ट स्वीकार किए जाते हैं. इससे उन इंटिग्रेशन के लिए प्रॉडक्ट अपलोड करना आसान हो जाता है जिनके लिए अलग-अलग इलाकों के लिए अलग-अलग डेटा सोर्स की ज़रूरत नहीं होती.

  • डेटा टारगेट को आसान बनाना. अब हर डेटा सोर्स, एक टारगेट से जुड़ा होता है. इसे feedLabel और contentLanguage के यूनीक कॉम्बिनेशन से तय किया जाता है. Merchant API में, कई तरह के डेटा को टारगेट करने वाले फ़ीड की सुविधा बंद कर दी गई है.

  • फ़ाइल अपलोड के स्टेटस के लिए अलग से सुविधा. Merchant API, फ़ाइल-आधारित डेटा सोर्स के स्टेटस को दिखाने के लिए, fileUploads नाम का एक अलग संसाधन इस्तेमाल करता है. यह संसाधन सिर्फ़ पढ़ा जा सकता है. फ़ाइल अपलोड का स्टेटस पाने के लिए, fileUploads.get तरीके के साथ latest एलियास का इस्तेमाल करें.

  • डेटा सोर्स के नए टाइप. DataSource संसाधन, ज़्यादा वर्टिकल के साथ काम करता है. इनमें प्रमोशन, स्थानीय इन्वेंट्री, और रीजनल इन्वेंट्री शामिल हैं. इससे अपने सभी डेटा पाइपलाइन को एक ही जगह से मैनेज किया जा सकता है.

  • ऑटोमेटेड डेटा सोर्स. Merchant API की मदद से, अब अपने खाते के लिए ऑटोमेटेड डेटा सोर्स की सुविधा चालू या बंद की जा सकती है. इसके लिए, खातों के सब-एपीआई में autofeedSettings.updateAutofeedSettings तरीका इस्तेमाल करें. ज़्यादा जानकारी के लिए, ऑटोफ़ीड की सेटिंग कॉन्फ़िगर करना लेख पढ़ें.

डेटा सोर्स की रणनीति चुनना

डेटा सोर्स मैनेज करने के लिए, आपके पास तीन विकल्प हैं:

  • किसी भी फ़ीड लेबल और भाषा के लिए, Merchant API का एक डेटा सोर्स बनाना. मैनेजमेंट को आसान बनाने के लिए, इस विकल्प का इस्तेमाल करें. इससे आपके पास एक ऐसा डेटा सोर्स होगा जो किसी भी feedLabel और contentLanguage वाले प्रॉडक्ट स्वीकार करेगा. Content API के पुराने सेटअप में, अलग-अलग डेटा सोर्स के ज़रिए, खास लेबल और भाषाओं के लिए नियम तय किए जाते थे. साथ ही, प्रॉडक्ट को उस डेटा सोर्स में जोड़ा जाता था जिसमें टारगेट किए गए नियमों के मुताबिक डेटा होता था. अगर यह विकल्प चुना जाता है, तो हमारा सुझाव है कि अपने सभी प्रॉडक्ट को नए डेटा सोर्स पर माइग्रेट करें. साथ ही, सभी प्रॉडक्ट माइग्रेट हो जाने के बाद, Content API के डेटा सोर्स हटा दें.

  • हर लेबल और भाषा के लिए, Merchant API के नए डेटा सोर्स बनाना. अगर आपको feedLabel और contentLanguage के नए कॉम्बिनेशन इस्तेमाल करने हैं (और उन्हें अलग-अलग रखना है) या अगर डेटा सोर्स के नियमों का सेटअप इस्तेमाल करना है, तो इस विकल्प का इस्तेमाल करें. डेटा सोर्स के नियमों का सेटअप, खास feedLabel और contentLanguage पर निर्भर करता है. आपको इस्तेमाल किए जाने वाले feedLabel और contentLanguage के हर पेयर के लिए, अलग डेटा सोर्स बनाना होगा. Merchant API के डेटा सोर्स को, Content API for Shopping से बनाए गए डेटा सोर्स के साथ जोड़ा जा सकता है.

  • Content API के मौजूदा डेटा सोर्स को बनाए रखना. Content API for Shopping से बनाए गए डेटा सोर्स का इस्तेमाल जारी रखा जा सकता है, क्योंकि ये Merchant API के साथ काम करते हैं. इनके संसाधन के नाम, dataSources.list का इस्तेमाल करके या Merchant Center के यूज़र इंटरफ़ेस (यूआई) में देखे जा सकते हैं. Content API के प्राइमरी डेटा सोर्स, सिर्फ़ उन feedLabel और contentLanguage के साथ काम करते हैं जिनके साथ उन्हें बनाया गया था. Merchant Center में, Content API के डेटा सोर्स, "Content API" सोर्स के साथ दिखते हैं. भले ही, प्रॉडक्ट Merchant API का इस्तेमाल करके जोड़े गए हों. इन्हें Merchant API के नए डेटा सोर्स के साथ जोड़ा जा सकता है. ये नए डेटा सोर्स भी, खास feedLabel और contentLanguage पेयर को टारगेट करते हैं.

हमारा सुझाव है कि अपने स्थानीय प्रॉडक्ट के डेटाबेस को बैकफ़िल करें. इसके लिए, अपने हर प्रॉडक्ट के लिए, सभी प्राइमरी डेटा सोर्स के नाम एक बार सेव करें. इससे dataSources.list को बार-बार कॉल करने से बचा जा सकेगा.

अनुरोध

यहां दी गई टेबल में, Content API for Shopping और Merchant API के अनुरोध यूआरएल के फ़ॉर्मैट की तुलना की गई है.

अनुरोध का ब्यौरा Content API for Shopping Merchant API
डेटा सोर्स बनाना POST https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds POST https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources
डेटा सोर्स पाना GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID} GET https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}
डेटा सोर्स की सूची देखना GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds GET https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources
डेटा सोर्स अपडेट करना PUT https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID} PATCH https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}
डेटा सोर्स मिटाना DELETE https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID} DELETE https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}
डेटा सोर्स फ़ेच करना POST https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID}/fetchNow POST https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}:fetch
डेटा सोर्स का स्टेटस पाना GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeedstatuses/{DATAFEED_ID} GET https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}/fileUploads/latest
डेटा सोर्स के स्टेटस की सूची देखना GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeedstatuses यह सुविधा उपलब्ध नहीं है. फ़ाइल-आधारित हर डेटा सोर्स के लिए, dataSources.list और fileUploads.get का इस्तेमाल करें.

आइडेंटिफ़ायर

Merchant API, आइडेंटिफ़ायर के तौर पर स्ट्रिंग-आधारित संसाधन के नाम का इस्तेमाल करता है.

आइडेंटिफ़ायर का ब्यौरा Content API for Shopping Merchant API
डेटा सोर्स का आइडेंटिफ़ायर datafeedId (संख्यात्मक) name (स्ट्रिंग, फ़ॉर्मैट: accounts/{account}/dataSources/{datasource})

तरीके

इस टेबल में, Content API for Shopping की datafeeds और datafeedstatuses सेवाओं के तरीकों की तुलना, Merchant API में मौजूद उनके बराबर के तरीकों से की गई है.

Content API for Shopping का तरीका Merchant API का तरीका उपलब्धता और नोट
datafeeds.custombatch उपलब्ध नहीं है इसके बजाय, एपीआई के अलग-अलग कॉल का इस्तेमाल करें.
datafeeds.delete dataSources.delete उपलब्ध.
datafeeds.fetchnow dataSources.fetch उपलब्ध. अब यह तरीका, सिर्फ़ फ़ाइल इनपुट वाले डेटा सोर्स के लिए काम करता है.
datafeeds.get dataSources.get उपलब्ध.
datafeeds.insert dataSources.create उपलब्ध.
datafeeds.list dataSources.list उपलब्ध.
datafeeds.update dataSources.update उपलब्ध. PUT के बजाय, PATCH सिमैंटिक्स का इस्तेमाल करता है.
datafeedstatuses.custombatch उपलब्ध नहीं है इसके बजाय, एपीआई के अलग-अलग कॉल का इस्तेमाल करें. ज़्यादा जानकारी के लिए, एक साथ कई अनुरोध भेजना लेख पढ़ें.
datafeedstatuses.get fileUploads.get फ़ाइल-आधारित डेटा सोर्स के लिए उपलब्ध. सबसे हाल ही में किए गए अपलोड का स्टेटस पाने के लिए, latest एलियास का इस्तेमाल करें. डेटा सोर्स के अन्य टाइप के लिए, स्टेटस की जानकारी DataSource संसाधन का हिस्सा होती है.
datafeedstatuses.list उपलब्ध नहीं है एक से ज़्यादा डेटा सोर्स का स्टेटस पाने के लिए, सबसे पहले dataSources.list का इस्तेमाल करके सभी डेटा सोर्स की सूची देखें. इसके बाद, फ़ाइल-आधारित हर डेटा सोर्स के लिए, latest एलियास के साथ fileUploads.get को कॉल करें.

फ़ील्ड में किए गए बदलावों की ज़्यादा जानकारी

इस टेबल में, Content API for Shopping में मौजूद Datafeed और DatafeedStatus संसाधनों की तुलना, Merchant API में मौजूद DataSource और FileUpload संसाधनों से की गई है. इसमें फ़ील्ड के लेवल पर किए गए बदलाव दिखाए गए हैं.

Content API for Shopping Merchant API ब्यौरा
Datafeed DataSource डेटा सोर्स के कॉन्फ़िगरेशन के लिए मुख्य संसाधन.
id name संसाधन का आइडेंटिफ़ायर. इसे संख्यात्मक आईडी से बदलकर, स्ट्रिंग रिसॉर्स का नाम कर दिया गया है.
name displayName डेटा सोर्स का वह नाम जो उपयोगकर्ताओं को दिखता है.
attributeLanguage primaryProductDataSource.contentLanguage डेटा सोर्स में मौजूद आइटम के लिए, दो अक्षरों वाला ISO 639-1 भाषा कोड.
fileName fileInput.fileName अपलोड की गई फ़ाइल का नाम. यह फ़ील्ड अब fileInput में नेस्ट किया गया है.
fetchSchedule fileInput.fetchSettings फ़ाइल-आधारित डेटा सोर्स को फ़ेच करने का शेड्यूल. यह अब fileInput में नेस्ट किया गया है.
fetchSchedule.paused fileInput.fetchSettings.enabled लॉजिक को उलट दिया गया है. paused: true का मतलब है enabled: false.
format उपलब्ध नहीं है fileEncoding, columnDelimiter, और quotingMode फ़ील्ड हटा दिए गए हैं. अब इनका पता अपने-आप लगाया जाता है.
targets primaryProductDataSource.feedLabel, primaryProductDataSource.contentLanguage, primaryProductDataSource.countries बार-बार इस्तेमाल होने वाला targets फ़ील्ड हटा दिया गया है. अब हर डेटा सोर्स का एक टारगेट होता है. इसे इन फ़ील्ड से तय किया जाता है. इससे, कई तरह के डेटा को टारगेट करने वाले फ़ीड की सुविधा बंद होने का पता चलता है.
DatafeedStatus FileUpload फ़ाइल अपलोड का स्टेटस अब एक अलग संसाधन है. इसे सिर्फ़ पढ़ा जा सकता है.
datafeedId name फ़ाइल अपलोड का आइडेंटिफ़ायर. यह इसके पैरंट डेटा सोर्स को रेफ़र करता है.
processingStatus processingState अपलोड का प्रोसेसिंग स्टेटस. स्ट्रिंग वैल्यू (success, failure, in progress) को इनम (SUCCEEDED, FAILED, IN_PROGRESS) से बदल दिया गया है.
errors, warnings issues गड़बड़ियों और चेतावनियों को मिलाकर, issues की एक सूची बनाई गई है. हर समस्या के लिए, severity फ़ील्ड (ERROR या WARNING) होता है.
lastUploadDate uploadTime सबसे हाल ही में किए गए अपलोड का टाइमस्टैंप. इसका फ़ॉर्मैट, स्ट्रिंग से बदलकर Timestamp ऑब्जेक्ट कर दिया गया है.
country, language, feedLabel लागू नहीं ये फ़ील्ड अब स्टेटस संसाधन पर मौजूद नहीं हैं. ये DataSource संसाधन का हिस्सा हैं.
targets[].included_destinations, targets[].excluded_destinations primaryProductDataSource.destinations शामिल और शामिल नहीं किए गए डेस्टिनेशन की दो अलग-अलग सूचियों को, destinations की एक सूची से बदल दिया गया है. नई सूची में मौजूद हर आइटम एक ऑब्जेक्ट होता है. इसमें जगह और उसका स्टेटस (ENABLED या DISABLED) बताया जाता है. इससे ज़्यादा साफ़ तौर पर कॉन्फ़िगरेशन किया जा सकता है.