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

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

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

मुख्य अंतर

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 उपनाम के साथ 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 के साथ काम करते हैं जिनके लिए उन्हें बनाया गया था. Content API के डेटा सोर्स, Merchant Center में "Content API" सोर्स के साथ दिखते हैं. भले ही, प्रॉडक्ट Merchant 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) के बारे में बताता है. इससे ज़्यादा साफ़ तौर पर कॉन्फ़िगरेशन किया जा सकता है.