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

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

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

जेनेरिक एसएफ़टीपी सर्वर में, दो अलग-अलग अपलोड होते हैं:

  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 फ़ील्ड के लिए ये वैल्यू इस्तेमाल की जा सकती हैं:

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

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

फ़ीड के कॉन्टेंट को स्ट्रक्चर करना

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

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

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

  • उदाहरण: offers_1524606581_1.json

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

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

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

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

अपना फ़ीड ढूंढने के लिए, "फ़ीड का नाम" कॉलम में जाकर, वह name ढूंढें जिसे आपने डिस्क्रिप्टर फ़ाइल में डाला है.

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