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

इस गाइड में बताया गया है कि 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 की मदद से, अब अपने खाते के लिए डेटा सोर्स अपने-आप अपडेट होने की सुविधा चालू या बंद की जा सकती है. इसके लिए, Accounts sub-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 API का इस्तेमाल करके प्रॉडक्ट जोड़ने पर भी, Merchant Center में Content API के डेटा सोर्स "Content API" सोर्स के साथ दिखते हैं. इन्हें Merchant API के नए डेटा सोर्स के साथ जोड़ा जा सकता है. ये डेटा सोर्स भी खास feedLabel और contentLanguage पेयर को टारगेट करते हैं.

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

अनुरोध

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

अनुरोध की जानकारी Shopping के लिए Content API 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, पहचानकर्ता के तौर पर स्ट्रिंग पर आधारित संसाधन के नाम का इस्तेमाल करता है.

आइडेंटिफ़ायर के बारे में जानकारी Shopping के लिए Content API Merchant API
डेटा सोर्स आइडेंटिफ़ायर datafeedId (संख्यात्मक) name (string, फ़ॉर्मैट: 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 संसाधनों के फ़ील्ड-लेवल में हुए बदलावों के बारे में बताया गया है.

Shopping के लिए Content API 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) के बारे में बताता है. इससे ज़्यादा जानकारी मिलती है.