सामान्य एसएफ़टीपी सर्वर का इस्तेमाल करना

सामान्य फ़ीड एसएफ़टीपी सर्वर की मदद से, हर एनवायरमेंट के लिए एक एसएफ़टीपी सर्वर पर कई तरह के फ़ीड अपलोड किए जा सकते हैं. इस गाइड में, सामान्य एसएफ़टीपी सर्वर का इस्तेमाल करने का तरीका बताया गया है. साथ ही, इसमें उस फ़ीड के लिए सही गाइड के लिंक दिए गए हैं जिसका इस्तेमाल करने की आपकी योजना है.

(कृपया दस्तावेज़ का फ़ीड एक्सपोर्ट करना (एंड-टू-एंड) या फ़ीड (शुरुआती) सेक्शन देखें).

सामान्य एसएफ़टीपी सर्वर पर दो अलग-अलग अपलोड किए जाने चाहिए:

  1. डिस्क्रिप्टर फ़ाइल: यह बताती है कि आपको कौनसा फ़ीड टाइप अपलोड करना है
  2. फ़ीड फ़ाइल(ें): इसमें असल फ़ीड का कॉन्टेंट होता है

डिस्क्रिप्टर फ़ील्ड तैयार करना

डिस्क्रिप्टर फ़ाइल अपलोड करने से, हमारे सिस्टम को यह जानकारी मिलती है कि आपने कौनसा फ़ीड टाइप अपलोड किया है. इससे हमें फ़ीड की पुष्टि करने और उसे सही तरीके से प्रोसेस करने में मदद मिलती है. डिस्क्रिप्टर फ़ाइल, फ़ीड के कॉन्टेंट से पहले अपलोड की जानी चाहिए. साथ ही, इसके नाम से जुड़ी इन ज़रूरी शर्तों का पालन किया जाना चाहिए:

  • डिस्क्रिप्टर फ़ाइल के लिए, .filesetdesc.json फ़ाइल एक्सटेंशन का इस्तेमाल करना ज़रूरी है.
  • हर डिस्क्रिप्टर फ़ाइल का नाम अलग होना चाहिए. साथ ही, इसे एक से ज़्यादा बार अपलोड नहीं किया जा सकता. हमारा सुझाव है कि फ़ाइल नाम में, जनरेशन टाइमस्टैंप और फ़ीड का नाम शामिल करें.
    • उदाहरण: offers_1524606581.filesetdesc.json
  • हर डिस्क्रिप्टर फ़ाइल में, संबंधित फ़ीड के नाम के लिए, सबसे नए फ़ीड की सभी डेटा फ़ाइलें शामिल होनी चाहिए.
message FilesetDescriptor {
  // The timestamp at which this feed was generated, in Unix time format
  // (seconds since the epoch). (required)
  int64 generation_timestamp = 1;

  // Identifies the name of this feed. (required)
  string name = 2;

  // Paths (relative to the dropbox root) specifying data files included in this
  // feed. (required)
  repeated string data_file = 3;
}

name फ़ील्ड के लिए ये वैल्यू इस्तेमाल की जा सकती हैं:

  • reservewithgoogle.entity
  • reservewithgoogle.action.v2

ऑफ़र फ़ीड के लिए, दो शार्ड वाली JSON डिस्क्रिप्टर फ़ाइल का उदाहरण यहां दिया गया है:

{
  "generation_timestamp": 1524606581,
  "name": "google.offer",
  "data_file": [
    "offers_1524606581_1.json",
    "offers_1524606581_2.json"
  ]
}

फ़ीड का कॉन्टेंट तैयार करना

डिस्क्रिप्टर फ़ाइल अपलोड करने के बाद, आपको उस फ़ीड डेटा टाइप की सभी फ़ीड फ़ाइलें अपलोड करनी होंगी जिसका नाम आपकी डिस्स्क्रिप्टर फ़ाइल में दिया गया है. फ़ाइल के नाम और पाथ की जगहें (एसएफ़टीपी सर्वर में रिलेटिव) वही होनी चाहिए जो data_file फ़ील्ड में शामिल की गई हैं. अगर कोई फ़ाइल मौजूद नहीं है, उसका नाम गलत है या उसे किसी दूसरी जगह पर अपलोड किया गया है, तो पूरे फ़ीड को प्रोसेस नहीं किया जाएगा.

इन फ़ीड डेटा फ़ाइलों का कॉन्टेंट, डिस्क्रिप्टर फ़ाइल में बताए गए फ़ीड के संबंधित स्पेसिफ़िकेशन के मुताबिक होना चाहिए.

हर फ़ीड फ़ाइल का नाम अलग होना चाहिए. साथ ही, इसे एक से ज़्यादा बार अपलोड नहीं किया जा सकता. हमारा सुझाव है कि फ़ाइल नाम में, जनरेशन टाइमस्टैंप और शार्ड नंबर (इंक्रीमेंटल आईडी) शामिल करें.

  • उदाहरण: offers_1524606581_1.json

फ़ीड फ़ाइल के साइज़ और अपलोड करने की फ़्रीक्वेंसी

  • फ़ीड फ़ाइल का साइज़, कंप्रेस करने के बाद 200 एमबी से कम रखें.
  • डिकंप्रेस की गई हर डेटा फ़ाइल का साइज़ दो जीबी से कम होना चाहिए.
  • ज़्यादातर इंटिग्रेशन के लिए, सिर्फ़ एक शार्ड का इस्तेमाल करना ज़रूरी होगा. आपको कम से कम शार्ड का इस्तेमाल करना चाहिए. हर फ़ीड के लिए, ज़्यादा से ज़्यादा 1,000 शार्ड इस्तेमाल किए जा सकते हैं.
  • यह ज़रूरी नहीं है कि एक शार्ड में भेजे गए अलग-अलग रिकॉर्ड, आने वाले समय में उसी शार्ड नंबर में भेजे जाएं.
  • बेहतर परफ़ॉर्मेंस के लिए, डेटा को शार्ड में बराबर-बराबर बांटें, ताकि सभी शार्ड फ़ाइलें एक ही साइज़ की हों.
  • अगर ज़रूरी हो, तो फ़ीड को कंप्रेस करने के लिए gzip का इस्तेमाल करें. हालांकि, ऐसा हर अलग-अलग फ़ीड शार्ड के लिए करें.

समस्या हल करना और डीबग करना

अपनी फ़ाइलें (डिस्क्रिप्टर और फ़ीड फ़ाइलें) अपलोड करने के बाद, Partner Portal पर इनजेशन व्यूअर (दस्तावेज़) पर जाएं. इसके लिए, इनजेशन > इतिहास पर जाएं. यहां आपको अपने फ़ीड इनजेशन की प्रोसेस की जानकारी मिलेगी.

अपना फ़ीड ढूंढने के लिए, "फ़ीड का नाम" कॉलम में, डिस्क्रिप्टर फ़ाइल में डाला गया name देखें.

फ़ीड इनजेस्ट होने के बाद (स्टेटस Success या Fail है), गड़बड़ियों और चेतावनियों की जानकारी देखने के लिए, उसकी लाइन पर क्लिक करें.