इस गाइड में, 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) के बारे में बताता है. इससे ज़्यादा साफ़ तौर पर कॉन्फ़िगरेशन किया जा सकता है. |