खास जानकारी

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

ऑफ़र

ऑफ़र इंटिग्रेशन की मदद से, कारोबारी या कंपनी के प्रमोशन और खास समय पर खास सेवाओं पर लागू होने वाली छूट के बारे में स्ट्रक्चर्ड जानकारी दी जा सकती है. ऑफ़र में ये चीज़ें शामिल होती हैं: असल ऑफ़र (कीमत में प्रतिशत या डॉलर की छूट ...), वैधता की अवधि (खास समय, हफ़्ते के दिन ...), और लागू होने की शर्तें (ऑफ़र का इस्तेमाल सिर्फ़ कुछ सेवाओं पर किया जा सकता है). साथ ही, इसमें पाबंदियों के मुश्किल कॉम्बिनेशन भी शामिल होते हैं.

ऑफ़र के उदाहरण:

  • दिसंबर में बुधवार और गुरुवार को दोपहर 12 बजे से शाम 5 बजे तक, ऐपेटाइज़र पर 50% की छूट
  • मदर्स डे पर, शाम 6 बजे से रात 10 बजे के बीच डिनर करने पर, एक डेज़र्ट खरीदने पर एक डेज़र्ट मुफ़्त पाएं
  • हर रविवार सुबह 10 बजे से दोपहर 2 बजे तक, ब्रंच के मुख्य व्यंजन पर 5 डॉलर की छूट
  • स्टोर पर जाकर खरीदारी करने पर 10% की छूट. इसे प्रीमियम सदस्यों के लिए 5% की छूट के साथ जोड़ा जा सकता है. साथ ही, अगर कोई व्यक्ति आपके ऐप्लिकेशन से पेमेंट करता है, तो उसे 5% की छूट मिलती है.

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

ऑफ़र लागू करने की सुविधा

ऑफ़र इंटिग्रेशन में दो फ़ीड शामिल होते हैं. इन्हें हर दिन या ऐसी फ़्रीक्वेंसी पर अपलोड किया जाएगा जिससे सटीक जानकारी मिल सके. इसका मतलब है कि जानकारी पुरानी न हो:

OfferFeed

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
dataobject
(Offer) का कलेक्शन

ऑफ़र

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
offer_idस्ट्रिंग

ज़रूरी है

ऑफ़र का यूनीक आईडी. ज़रूरी है.
entity_idsस्ट्रिंग का कलेक्शन

उन कारोबारियों या कंपनियों की सूची जो इस ऑफ़र में हिस्सा ले रही हैं.
add_on_offer_applicable_to_all_entitiesबूलियन

अगर सही है, तो यह ऑफ़र एग्रीगेटर के तहत आने वाली सभी इकाइयों पर लागू होता है. यह सिर्फ़ ऐड-ऑन ऑफ़र पर लागू होता है.
offer_sourceenum
(OfferSource)

ज़रूरी है

ऑफ़र, एग्रीगेटर, कारोबारी या कंपनी या ऐड-ऑन के तौर पर तीसरे पक्ष की कंपनी दे सकती है. ज़रूरी है.
action_typeenum
(ActionType)

ज़रूरी है

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

ज़रूरी है

ऑफ़र का फ़ायदा पाने के तरीके - स्टोर पर जाकर, बुकिंग करके, ऑनलाइन वगैरह. ज़रूरी है.
offer_categoryenum
(OfferCategory)

ज़रूरी है

ऑफ़र की कैटगरी. ज़रूरी है.
source_assigned_priorityसंख्या

नॉन-नेगेटिव पूर्णांक ([1-100], जहां 1 का मतलब सबसे ज़्यादा प्राथमिकता है) जो सोर्स की ओर से असाइन किए गए ऑफ़र के प्राथमिकता लेवल को दिखाता है. जब एक ही कारोबारी या कंपनी के लिए कई ऑफ़र उपलब्ध होते हैं, तो यह ऑफ़र को रैंक करने के लिए एक सिग्नल होगा. 0 का मतलब है कि प्राथमिकता सेट नहीं की गई है.
offer_detailsobject
(OfferDetails)

ज़रूरी है

ऑफ़र की जानकारी, जैसे कि छूट, बुकिंग का शुल्क वगैरह. ज़रूरी है.
offer_restrictionsobject
(OfferRestrictions)

ज़रूरी है

इससे पता चलता है कि ऑफ़र पर किस तरह की पाबंदी है. जैसे, सदस्यता/पेमेंट का तरीका ज़रूरी है या नहीं, इस ऑफ़र को अन्य ऑफ़र के साथ इस्तेमाल किया जा सकता है या नहीं (और किस तरह के ऑफ़र के साथ), वगैरह. यह जानकारी देना ज़रूरी है.
couponobject
(Coupon)

कूपन की जानकारी. offer_category: OFFER_CATEGORY_ADD_ON_COUPON_OFFER के लिए ज़रूरी है.
payment_instrumentobject
(PaymentInstrument)

पेमेंट के तरीके की जानकारी. offer_category: OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER के लिए ज़रूरी है.
subscriptionobject
(Subscription)

सदस्यता की जानकारी. offer_category: OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER के लिए ज़रूरी है.
termsobject
(Terms)

ज़रूरी है

ऑफ़र के नियम और शर्तें. ज़रूरी है.
validity_periodsobject
(ValidityPeriod) का कलेक्शन

ज़रूरी है

ऑफ़र की वैधता अवधि. इससे पता चलता है कि ऑफ़र किस समयावधि के लिए मान्य है. इसमें शुरू और खत्म होने का समय, हफ़्ते के दिन वगैरह शामिल हैं. यह जानकारी देना ज़रूरी है.
offer_urlस्ट्रिंग

कारोबारी या कंपनी के ऑफ़र पेज का यूआरएल. offer_category: OFFER_CATEGORY_BASE_OFFER के लिए ज़रूरी है.
image_urlस्ट्रिंग

कारोबारी या कंपनी के ऑफ़र की इमेज का यूआरएल.
tagsenum
(OfferTag) की कैटगरी

ऑफ़र से जुड़े खास टैग. इस कुकी का इस्तेमाल, खास ऑफ़र की पहचान करने के लिए किया जाता है. जैसे, "त्योहारी सीज़न", "सबसे ज़्यादा रेटिंग वाला", "सबसे ज़्यादा बुक किया गया" वगैरह.

OfferDetails

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
offer_display_textस्ट्रिंग

ज़रूरी है

ऑफ़र देने वाला व्यक्ति या कंपनी, खोज नतीजों वाले पेज पर खरीदारों को ऑफ़र का जो टेक्स्ट दिखाना चाहती है. ज़रूरी है.
oneOf
(offer_specification)

ज़रूरी है

इस oneOf में मौजूद फ़ील्ड में से सिर्फ़ एक को सेट किया जा सकता है.
max_discount_valueobject
(Money)

ज़्यादा से ज़्यादा कितनी छूट मिल सकती है. उदाहरण के लिए, 100 डॉलर तक की खरीदारी पर 10% की छूट.
min_spend_valueobject
(Money)

छूट पाने के लिए, कम से कम इतना खर्च करना होगा. उदाहरण के लिए, कुल कीमत 100 डॉलर या इससे ज़्यादा होने पर 10% की छूट.
booking_costobject
(Money)

इस ऑफ़र को बुक करने की कीमत. उदाहरण के लिए, 15 डॉलर में टेबल बुक करने पर, फ़ाइनल बिल पर 100 डॉलर की छूट.
booking_cost_unitenum
(FeeUnit)

बुकिंग की लागत की इकाई. उदाहरण के लिए, हर व्यक्ति के हिसाब से, हर लेन-देन के हिसाब से.
convenience_feeobject
(Fee)

booking_cost_adjustableबूलियन

क्या बुकिंग की लागत को अडजस्ट किया जा सकता है. इसका मतलब है कि बुकिंग की लागत को फ़ाइनल बिल से घटा दिया जाता है. उदाहरण के लिए: टेबल बुक करने पर डिनर में 30% की छूट. सीट रिज़र्व करने के लिए 15 डॉलर का शुल्क लिया जाएगा. यह शुल्क, फ़ाइनल बिल में शामिल किया जाएगा. इसलिए, फ़ाइनल बिल: खर्च की गई कुल रकम - 30% - 15 डॉलर
additional_feesobject
(AdditionalFee) का कलेक्शन

उपयोगकर्ता से लिया जाने वाला अतिरिक्त शुल्क. उदाहरण: सुविधा, हैंडलिंग वगैरह.

पैसे

यह मुद्रा के टाइप के साथ-साथ, पैसे की रकम को दिखाता है.

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
currency_codeस्ट्रिंग

ISO 4217 में तय किया गया तीन अक्षर वाला मुद्रा कोड.
unitsस्ट्रिंग

राशि की पूरी यूनिट. उदाहरण के लिए, अगर currencyCode की वैल्यू "USD" है, तो एक यूनिट की कीमत एक डॉलर होगी.
nanosसंख्या

यह संख्या, रकम की नैनो (10^-9) यूनिट की होती है. वैल्यू, -999,999,999 और +999,999,999 के बीच होनी चाहिए. अगर units पॉज़िटिव है, तो nanos पॉज़िटिव या शून्य होना चाहिए. अगर units शून्य है, तो nanos पॉज़िटिव, शून्य या नेगेटिव हो सकता है. अगर units की वैल्यू नेगेटिव है, तो nanos की वैल्यू नेगेटिव या शून्य होनी चाहिए. उदाहरण के लिए, -1.75 डॉलर को units=-1 और nanos=-750,000,000 के तौर पर दिखाया जाता है.

शुल्क

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
unitenum
(FeeUnit)

typeenum
(FeeType)

oneOf
(cost)

इस oneOf में मौजूद फ़ील्ड में से सिर्फ़ एक को सेट किया जा सकता है.

MoneyRange

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
min_amountobject
(Money)

max_amountobject
(Money)

AdditionalFee

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
nameस्ट्रिंग

ज़रूरी है

अतिरिक्त शुल्क का नाम. उदाहरण: सुविधा शुल्क, हैंडलिंग शुल्क वगैरह. ज़रूरी है.
feeobject
(Fee)

OfferRestrictions

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
combinable_with_other_offersबूलियन

यह ऑफ़र, अन्य ऑफ़र के साथ इस्तेमाल किया जा सकता है या नहीं. अगर यह वैल्यू सही है, तो पार्टनर यह तय कर सकते हैं कि इस ऑफ़र को किन ऑफ़र के साथ जोड़ा जा सकता है. अगर combinable_offer_categories और combinable_offer_ids, दोनों सेट किए गए हैं, तो ऊपर दी गई किसी भी शर्त को पूरा करने वाला ऑफ़र, दूसरे ऑफ़र के साथ जोड़ा जा सकेगा.
combinable_offer_categoriesenum
(OfferCategory) की कैटगरी

ऑफ़र के टाइप की सूची, जिनके साथ इस ऑफ़र को जोड़ा जा सकता है. उदाहरण के लिए, इस ऑफ़र को अन्य कूपन के साथ इस्तेमाल किया जा सकता है. अगर combinable_with_other_offers की वैल्यू 'सही है' पर सेट है और इस फ़ील्ड की वैल्यू सेट नहीं है, तो सभी टाइप को एक साथ इस्तेमाल किया जा सकेगा.
combinable_offer_idsस्ट्रिंग का कलेक्शन

उन offer_id की सूची जिनसे इस ऑफ़र को जोड़ा जा सकता है. ऐसा हो सकता है कि कुछ ऑफ़र सिर्फ़ कुछ खास offer_id (इन्हें पैरंट ऑफ़र माना जा सकता है) के साथ इस्तेमाल किए जा सकें. अगर combinable_with_other_offers की वैल्यू 'सही है' पर सेट है और इस फ़ील्ड को सेट नहीं किया गया है, तो सभी ऑफ़र आईडी को एक साथ इस्तेमाल किया जा सकेगा.
inclusionsobject
(OfferCondition) का कलेक्शन

उन शर्तों की सूची जिन्हें पूरा करने पर ही ऑफ़र मान्य होगा. उदाहरण के लिए, बिना अल्कोहल वाली ड्रिंक, खाना).
exclusionsobject
(OfferCondition) का कलेक्शन

उन शर्तों की सूची जिनसे ऑफ़र अमान्य हो जाएगा. उदाहरण के लिए, बुफ़े, कॉम्बो ऑफ़र, और कॉकटेल.
min_guestसंख्या

ऑफ़र का फ़ायदा पाने के लिए, कम से कम इतने लोग होने चाहिए.
food_offer_restrictionsobject
(FoodOfferRestrictions)

खाने-पीने के ऑफ़र पर लागू होने वाली पाबंदियां.

OfferCondition

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
descriptionस्ट्रिंग

FoodOfferRestrictions

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
meal_typesenum
(MealType) की कैटगरी

खाने के टाइप, जिन पर ऑफ़र लागू किया जा सकता है. जैसे, दोपहर या रात का खाना. अगर इसे सेट नहीं किया गया है, तो ऑफ़र को हर तरह के खाने पर लागू किया जा सकता है.
restricted_to_certain_coursesबूलियन

क्या ऑफ़र सिर्फ़ कुछ कोर्स पर लागू किया जा सकता है.

कूपन

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
textस्ट्रिंग

यह कूपन का वह टेक्स्ट है जिसे ऑफ़र देने वाला व्यक्ति या कंपनी, लोगों को दिखाना चाहती है.
codeस्ट्रिंग

ज़रूरी है

ऑफ़र रिडीम करने के लिए कूपन कोड ज़रूरी है. ज़रूरी है.

PaymentInstrument

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
itemsobject
(PaymentInstrumentItem) का कलेक्शन

ज़रूरी है

पेमेंट के उन इंस्ट्रूमेंट की सूची जिनका इस्तेमाल करके ऑफ़र का फ़ायदा पाया जा सकता है. ज़रूरी है.
provider_nameस्ट्रिंग

ज़रूरी है

पेमेंट के तरीके की सुविधा देने वाली कंपनी का नाम. यह बैंकिंग पार्टनर, बैंक का नाम वगैरह हो सकता है. उदाहरण के लिए: American Express, HDFC, ICICI. ज़रूरी है.

PaymentInstrumentItem

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
typeenum
(PaymentInstrumentType)

ज़रूरी है

पेमेंट के तरीके का टाइप. ज़रूरी है.
nameस्ट्रिंग

ज़रूरी है

पेमेंट के तरीके के नाम की जानकारी. जैसे, क्रेडिट कार्ड का नाम. उदाहरण के लिए: एचडीएफ़सी इनफ़िनिया, अमेरिकन एक्सप्रेस प्लैटिनम. ज़रूरी है.

सदस्यता

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
nameस्ट्रिंग

ज़रूरी है

सदस्यता का नाम. ज़रूरी है.
subscription_auto_addedबूलियन

जब कोई उपयोगकर्ता इस ऑफ़र का फ़ायदा उठाता है, तो क्या सदस्यता अपने-आप जुड़ जाती है
costobject
(Money)

ज़रूरी है

सदस्यता का शुल्क. ज़रूरी है.
subscription_durationobject
(Duration)

ज़रूरी है

यह जानकारी देती है कि सदस्यता शुल्क में सदस्यता कितने समय के लिए मान्य है. ज़रूरी है.
terms_and_conditions_urlस्ट्रिंग

इस सदस्यता से जुड़े पार्टनर के नियमों और शर्तों का यूआरएल.

कुल समय

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
secondsस्ट्रिंग

समय के स्पैन के सेकंड. यह वैल्यू -315,576,000,000 से +315,576,000,000 के बीच होनी चाहिए. ध्यान दें: इन सीमाओं का हिसाब इस तरह लगाया जाता है: 60 सेकंड/मिनट * 60 मिनट/घंटा * 24 घंटे/दिन * 365.25 दिन/साल * 10,000 साल
nanosसंख्या

यह समय के स्पैन का नैनोसेकंड रिज़ॉल्यूशन होता है. इसमें एक सेकंड के छोटे से हिस्से को भी शामिल किया जाता है. एक सेकंड से कम अवधि को 0 seconds फ़ील्ड और पॉज़िटिव या नेगेटिव nanos फ़ील्ड से दिखाया जाता है. एक सेकंड या इससे ज़्यादा अवधि के लिए, nanos फ़ील्ड की वैल्यू शून्य नहीं होनी चाहिए. साथ ही, इसका चिह्न seconds फ़ील्ड के चिह्न के जैसा होना चाहिए. यह -999,999,999 से लेकर +999,999,999 के बीच होना चाहिए.

शर्तें

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
urlस्ट्रिंग

पार्टनर के नियमों और शर्तों का यूआरएल.
restricted_to_certain_usersबूलियन

क्या ऑफ़र सिर्फ़ कुछ उपयोगकर्ताओं के लिए उपलब्ध है.
terms_and_conditionsस्ट्रिंग

पार्टनर की ओर से उपलब्ध कराया गया मुख्य नियम और शर्तें.
additional_terms_and_conditionsस्ट्रिंग का कलेक्शन

पार्टनर की मुख्य शर्तों के अलावा, अन्य नियम और शर्तें.

ValidityPeriod

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
valid_periodobject
(ValidityRange)

शुरू और खत्म होने का टाइमस्टैंप, जिसके दौरान ऑफ़र मान्य है. ये समय अलग-अलग दिनों के होने चाहिए. इसका मतलब है कि शुरू होने का समय 00:00 (दिन की शुरुआत) होना चाहिए और खत्म होने का समय, वैधता अवधि खत्म होने के दिन 00:00 (एक्सक्लूसिव) होना चाहिए.
time_of_dayobject
(TimeOfDayWindow) का कलेक्शन

इससे यह पता चलता है कि किसी दिन ऑफ़र किस समयावधि के दौरान मान्य है और ऑफ़र किन दिनों में उपलब्ध है. उदाहरण के लिए: सोमवार: सुबह 10 बजे से शाम 5 बजे तक मंगलवार: सुबह 10 बजे से दोपहर 2 बजे तक मंगलवार: शाम 5 बजे से रात 7 बजे तक बुधवार, गुरुवार, शुक्रवार, शनिवार, रविवार: दोपहर 3 बजे से शाम 7 बजे तक अगर कोई भी समय सेट नहीं किया गया है, तो इसका मतलब है कि ऑफ़र valid_period में हर समय उपलब्ध है.
time_exceptionsobject
(ValidTimeException) का कलेक्शन

इससे ऊपर दी गई valid_period और valid_time_of_week के अपवादों के बारे में पता चलता है
date_exceptionsobject
(Date) का कलेक्शन

इससे ऊपर दिए गए valid_period और time_of_day के लिए, दिनों के अपवादों के बारे में पता चलता है

ValidityRange

टाइमस्टैंप की क्लोज़-ओपन रेंज.

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
valid_from_timeobject
(Timestamp)

ज़रूरी है

यह रेंज की शुरुआती संख्या है. रेंज में यह संख्या भी शामिल है. ज़रूरी है.
valid_through_timeobject
(Timestamp)

रेंज खत्म होने का समय (शामिल नहीं है). अगर इसे सेट नहीं किया जाता है, तो इसका मतलब है कि यह अवधि कभी खत्म नहीं होगी. ज़रूरी नहीं.

टाइमस्टैम्प

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
secondsस्ट्रिंग

यह Unix epoch 1970-01-01T00:00:00Z से यूटीसी समय के सेकंड को दिखाता है. वैल्यू, -62135596800 और 253402300799 के बीच होनी चाहिए. इसमें ये दोनों वैल्यू भी शामिल हैं. यह वैल्यू, 0001-01-01T00:00:00Z से 9999-12-31T23:59:59Z के बीच की तारीख और समय के हिसाब से होती है.
nanosसंख्या

नैनोसेकंड रिज़ॉल्यूशन पर, एक सेकंड के नॉन-नेगेटिव फ़्रैक्शन. यह फ़ील्ड, अवधि का नैनोसेकंड वाला हिस्सा है. यह सेकंड का विकल्प नहीं है. भिन्नात्मक वैल्यू वाली नेगेटिव सेकंड वैल्यू में, अब भी नॉन-नेगेटिव नैनोसेकंड वैल्यू होनी चाहिए. ये वैल्यू, समय के हिसाब से आगे बढ़ती हैं. यह 0 और 999,999,999 के बीच होना चाहिए. इसमें ये दोनों संख्याएं भी शामिल हैं.

TimeOfDayWindow

TimeWindow ऑब्जेक्ट एक कंपोज़िट इकाई है. यह उन विंडो की सूची के बारे में बताती है जिनमें उपयोगकर्ता का ऑर्डर प्लेस या पूरा किया जा सकता है.

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
time_windowsobject
(TimeOfDayRange)

ज़रूरी है

वह समयावधि जिसके दौरान ऑर्डर दिया जा सकता है या पूरा किया जा सकता है. ज़रूरी है.
day_of_weekenum
(DayOfWeek) की कैटगरी

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

TimeOfDayRange

क्लोज़-ओपन टाइम रेंज.

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
open_timeobject
(TimeOfDay)

यह एक ऐसा समय है जो रेंज के दिन की शुरुआत का समय दिखाता है. इसमें यह समय शामिल होता है. अगर इसे सेट नहीं किया जाता है, तो इसका मतलब 00:00:00 है. ज़रूरी नहीं.
close_timeobject
(TimeOfDay)

यह समय, रेंज के दिन के खत्म होने का समय दिखाता है. हालांकि, इसमें यह समय शामिल नहीं होता. अगर इसे सेट नहीं किया जाता है, तो इसका मतलब है कि समय 23:59:59 है. ज़रूरी नहीं.

TimeOfDay

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
hoursसंख्या

दिन के घंटे, 24 घंटे वाले फ़ॉर्मैट में. यह वैल्यू 0 से ज़्यादा या इसके बराबर होनी चाहिए. साथ ही, आम तौर पर यह वैल्यू 23 से कम या इसके बराबर होनी चाहिए. कोई एपीआई, कारोबार के बंद होने के समय जैसे मामलों के लिए "24:00:00" वैल्यू को अनुमति दे सकता है.
minutesसंख्या

एक घंटे के मिनट. यह वैल्यू 0 से ज़्यादा या इसके बराबर और 59 से कम या इसके बराबर होनी चाहिए.
secondsसंख्या

एक मिनट के सेकंड. यह 0 से ज़्यादा या इसके बराबर होनी चाहिए. आम तौर पर, यह 59 से कम या इसके बराबर होनी चाहिए. अगर कोई एपीआई लीप-सेकंड की अनुमति देता है, तो वह वैल्यू 60 की अनुमति दे सकता है.
nanosसंख्या

सेकंड के हिस्से, नैनोसेकंड में. यह 0 के बराबर या इससे ज़्यादा और 99,99,99,999 के बराबर या इससे कम होना चाहिए.

ValidTimeException

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
exceptional_periodobject
(ValidityRange)

शुरू और खत्म होने का वह टाइमस्टैंप जिसके लिए ऑफ़र मान्य नहीं है. ये समय अलग-अलग दिनों के होने चाहिए. इसका मतलब है कि शुरू होने का समय 00:00 (दिन की शुरुआत) होना चाहिए और खत्म होने का समय, छूट की अवधि खत्म होने के दिन 00:00 (एक्सक्लूसिव) होना चाहिए.

तारीख

यह पूरी या कुछ समय की कैलेंडर तारीख को दिखाता है. जैसे, जन्मदिन. दिन का समय और टाइम ज़ोन की जानकारी, कहीं और दी गई है या यह जानकारी काम की नहीं है. तारीख, ग्रेगोरियन कैलेंडर के हिसाब से होती है. यह इनमें से किसी एक को दिखा सकता है: * पूरी तारीख, जिसमें साल, महीने, और दिन की वैल्यू शून्य नहीं होनी चाहिए. * महीना और दिन, जिसमें साल शून्य हो (उदाहरण के लिए, सालगिरह). * सिर्फ़ साल, जिसमें महीने और दिन की वैल्यू शून्य होती है. * साल और महीना, जिसमें दिन की वैल्यू शून्य हो (उदाहरण के लिए, क्रेडिट कार्ड के खत्म होने की तारीख). मिलते-जुलते टाइप: * [google.type.TimeOfDay][] * [google.type.DateTime][] * [google.protobuf.Timestamp][]

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
yearसंख्या

तारीख का साल. यह 1 से 9999 के बीच होना चाहिए. अगर साल के बिना कोई तारीख तय करनी है, तो इसे 0 पर सेट करें.
monthसंख्या

साल का महीना. यह वैल्यू 1 से 12 के बीच होनी चाहिए. अगर आपको महीने और दिन के बिना साल की जानकारी देनी है, तो इसे 0 पर सेट करें.
dayसंख्या

महीने का दिन. यह 1 से 31 के बीच होना चाहिए. साथ ही, यह साल और महीने के लिए मान्य होना चाहिए. इसके अलावा, इसे 0 पर सेट करके सिर्फ़ साल या साल और महीने की जानकारी दी जा सकती है. ऐसा तब किया जाता है, जब दिन की जानकारी देना ज़रूरी न हो.

OfferSource

नामब्यौरा
OFFER_SOURCE_UNSPECIFIED
OFFER_SOURCE_AGGREGATOR

ActionType

नामब्यौरा
ACTION_TYPE_UNSPECIFIED
ACTION_TYPE_DINING

OfferMode

नामब्यौरा
OFFER_MODE_OTHER
OFFER_MODE_WALK_IN
OFFER_MODE_FREE_RESERVATION
OFFER_MODE_PAID_RESERVATION
OFFER_MODE_ONLINE_ORDER

OfferCategory

ऑफ़र की कैटगरी. बुनियादी ऑफ़र, सभी खरीदारों के लिए उपलब्ध एक स्टैंडर्ड ऑफ़र होता है. जैसे, 10,000 रुपये से ज़्यादा खर्च करने पर 10% की छूट. अगर किसी कूपन या पेमेंट के तरीके से बुनियादी ऑफ़र पर पाबंदी लगाई गई है, तो उससे जुड़े फ़ील्ड सेट किए जाएंगे. हमारे पास ऐड ऑन x ऑफ़र भी हैं, जैसे कि ADD_ON_PAYMENT_OFFER. ज़्यादा छूट पाने के लिए, इस तरह के ऑफ़र को अन्य ऑफ़र में जोड़ा जा सकता है.

नामब्यौरा
OFFER_CATEGORY_UNSPECIFIED
OFFER_CATEGORY_BASE_OFFER
OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER
OFFER_CATEGORY_ADD_ON_COUPON_OFFER
OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER

FeeUnit

नामब्यौरा
FEE_UNIT_UNSPECIFIED
FEE_UNIT_PER_GUEST
FEE_UNIT_PER_TRANSACTION

FeeType

नामब्यौरा
FEE_TYPE_UNSPECIFIED
FEE_TYPE_FIXED
FEE_TYPE_VARIABLE

MealType

नामब्यौरा
MEAL_TYPE_UNSPECIFIED
MEAL_TYPE_BREAKFAST
MEAL_TYPE_LUNCH
MEAL_TYPE_DINNER

PaymentInstrumentType

नामब्यौरा
PAYMENT_INSTRUMENT_TYPE_UNSPECIFIED
PAYMENT_INSTRUMENT_CREDIT_CARD
PAYMENT_INSTRUMENT_DEBIT_CARD
PAYMENT_INSTRUMENT_BANK_ACCOUNT
PAYMENT_INSTRUMENT_UPI
PAYMENT_INSTRUMENT_ONLINE_WALLET

DayOfWeek

यह हफ़्ते के किसी दिन को दिखाता है.

नामब्यौरा
DAY_OF_WEEK_UNSPECIFIEDहफ़्ते का दिन तय नहीं किया गया है.
MONDAYसोमवार
TUESDAYमंगलवार
WEDNESDAYबुधवार
THURSDAYगुरुवार
FRIDAYशुक्रवार
SATURDAYशनिवार
SUNDAYरविवार

OfferTag

नामब्यौरा
OFFER_TAG_NEW_YEAR_SPECIAL

offer_specification

यह छूट, प्रतिशत या कुल वैल्यू में से घटाई गई तय वैल्यू के तौर पर दी जा सकती है. उदाहरण के लिए: 1. फ़ाइनल बिल पर 10% की छूट. 2. ऑर्डर पर 15 डॉलर की छूट. कारोबारी या कंपनियां, 'एक के साथ एक मुफ़्त पाएं' जैसे कस्टम छूट भी दे सकती हैं. इसके लिए, उन्हें स्पेसिफ़िकेशन फ़ील्ड का इस्तेमाल करना होगा. ज़रूरी है.

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
discount_percentसंख्या

discount_value और other_offer_detail_text के साथ इस्तेमाल नहीं किया जा सकता

बिल का वह प्रतिशत जिस पर छूट दी गई है. [0, 100] पूरे खाने पर लागू होने वाले 1+1 या 50% की छूट वाले ऑफ़र के लिए (जैसे, बुफ़े पर 1+1, पूरे बिल पर 1+1, सेट मेन्यू पर 1+1), इस वैल्यू को 50 पर सेट किया जा सकता है.
discount_valueobject
(Money)

discount_percent और other_offer_detail_text के साथ इस्तेमाल नहीं किया जा सकता

छूट की तय वैल्यू.
other_offer_detail_textस्ट्रिंग

discount_percent और discount_value के साथ इस्तेमाल नहीं किया जा सकता

छूट के बारे में बताने के लिए फ़्री-फ़ॉर्म टेक्स्ट. खास तौर पर 1+1 ऑफ़र (जैसे, एक के साथ एक ड्रिंक मुफ़्त, एक के साथ एक मेन कोर्स मुफ़्त, 1+1 चुने गए मेन्यू आइटम) के लिए, यहां यह जानकारी दी जानी चाहिए.

लागत

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
amountobject
(Money)

amount_range के साथ म्यूचुअली एक्सक्लूसिव

amount_rangeobject
(MoneyRange)

amount के साथ म्यूचुअली एक्सक्लूसिव

फ़ीड को अपलोड करना

ऑफ़र फ़ीड को Generic फ़ीड एसएफ़टीपी सर्वर पर अपलोड करना ज़रूरी है. निर्देशों के लिए, जेनेरिक फ़ीड के एसएफ़टीपी सर्वर को इस्तेमाल करने का तरीका बताने वाला ट्यूटोरियल देखें. साथ ही, अपनी डिस्क्रिप्टर फ़ाइल में name को google.offer पर सेट करें.

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

आम तौर पर, Google को हर दिन एक फ़ीड अपलोड करने की ज़रूरत होती है. फ़ीड अपलोड करने की फ़्रीक्वेंसी को बढ़ाया या घटाया जा सकता है. यह इस बात पर निर्भर करता है कि आपकी ओर से ऑफ़र अपडेट करने की फ़्रीक्वेंसी क्या है. इससे यह पक्का किया जा सकेगा कि आपको लगातार सटीक नतीजे मिलें. अपने Google पीओसी से संपर्क करें.

यह डेटा, Google पर दिखने में कुछ घंटे लेगा.

वर्गीकरण की सुविधा

  • OFFER_CATEGORY_BASE_OFFER: ऐसे ऑफ़र जिन्हें किसी अन्य ऑफ़र के साथ जोड़े बिना, अलग से क्लेम किया जा सकता है. इसमें ये शामिल हैं:
    • पूरे बिल पर तय छूट (जैसे, 20% की छूट)
    • सदस्यता के ऑफ़र (जैसे, सदस्यता लेने पर मुफ़्त मिठाई)
    • ऐसे मामलों में पेमेंट के ऑफ़र जहां रेस्टोरेंट के लिए कोई अन्य बुनियादी ऑफ़र उपलब्ध नहीं हैं
  • ऐड-ऑन ऑफ़र: ऐसे ऑफ़र जिन्हें पाने के लिए, बुनियादी ऑफ़र को क्लेम करना ज़रूरी होता है. इनमें ये शामिल हैं:
    • OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER (उदाहरण के लिए, चुनिंदा क्रेडिट कार्ड से पेमेंट करने पर 10% की अतिरिक्त छूट)
    • OFFER_CATEGORY_ADD_ON_COUPON_OFFER (उदाहरण के लिए, किसी खास कूपन कोड के साथ मुफ़्त ड्रिंक)
    • OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER (उदाहरण के लिए, सदस्यों के लिए 10% की अतिरिक्त छूट)

ध्यान देने वाली अन्य बातें:

  • अगर किसी रेस्टोरेंट के लिए कोई मूल ऑफ़र सेट नहीं किया गया है, तो ऐड-ऑन ऑफ़र नहीं दिखेंगे. अगर कोई बुनियादी ऑफ़र नहीं है, तो पेमेंट, सदस्यता या कूपन से जुड़ा कोई भी ऐसा ऑफ़र जिसे किसी अन्य ऑफ़र के साथ जोड़े बिना ही क्लेम किया जा सकता है उसे OFFER_CATEGORY_BASE_OFFER के तौर पर टैग किया जाना चाहिए.
    • टाइप के आधार पर, PaymentInstrument, Subscription या Coupon के लिए ज़रूरी डेटा सेट किया जाना चाहिए.
    • पार्टनर को इन ऑफ़र की दो कॉपी देनी होंगी, ताकि उन स्थितियों को कवर किया जा सके जिनमें ये ऑफ़र, बुनियादी ऑफ़र और ऐड-ऑन ऑफ़र, दोनों के तौर पर काम करते हैं. इसके बाद, ऐड-ऑन ऑफ़र की कॉपी को कई रेस्टोरेंट के लिए सेट किया जा सकता है. इसके लिए, entity_ids या add_on_offer_applicable_to_all_entities का इस्तेमाल करें.
  • जब किसी रेस्टोरेंट के पास एक से ज़्यादा बुनियादी ऑफ़र होते हैं और उन्हें एक साथ इस्तेमाल किया जा सकता है, तो सभी बुनियादी ऑफ़र को OFFER_CATEGORY_BASE_OFFER के तौर पर टैग किया जाना चाहिए. साथ ही, पेमेंट, सदस्यता या कूपन वाले बुनियादी ऑफ़र को ऐड-ऑन ऑफ़र के टाइप के तौर पर भी भेजा जाना चाहिए.
  • ValidityPeriod का इस्तेमाल, ऐड-ऑन ऑफ़र को बुनियादी ऑफ़र के तौर पर सिर्फ़ तब चालू करने के लिए किया जाना चाहिए, जब कोई बुनियादी ऑफ़र चालू न हो.

उदाहरण के तौर पर:

  • किसी रेस्टोरेंट में, किसी खास क्रेडिट कार्ड से पेमेंट करने पर 5% की छूट मिलती है. साथ ही, किसी खास कूपन कोड का इस्तेमाल करने पर एक ड्रिंक मुफ़्त मिलती है

    • क्रेडिट कार्ड पर मिलने वाले 5% की छूट वाले ऑफ़र की दो कॉपी भेजी जानी चाहिए. एक कॉपी को OFFER_CATEGORY_BASE_OFFER के तौर पर और दूसरी कॉपी को OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER के तौर पर टैग किया जाना चाहिए. साथ ही, इसमें PaymentInstrument की जानकारी शामिल होनी चाहिए.
    • कूपन कोड के साथ मुफ़्त ड्रिंक का ऑफ़र, OFFER_CATEGORY_ADD_ON_COUPON_OFFER के तौर पर भेजा जाना चाहिए. इसमें Coupon की जानकारी शामिल होनी चाहिए.
  • एक रेस्टोरेंट, बिना बुकिंग के आने वाले लोगों को 10% की छूट देता है. साथ ही, किसी खास क्रेडिट कार्ड से पेमेंट करने पर 5% की छूट देता है. इन दोनों छूट को एक साथ इस्तेमाल किया जा सकता है.

    • स्टोर में जाकर खरीदारी करने पर मिलने वाले 10% के ऑफ़र को OFFER_CATEGORY_BASE_OFFER के तौर पर टैग किया जाना चाहिए.
    • क्रेडिट कार्ड से पेमेंट करने पर 5% की छूट वाले ऑफ़र की दो कॉपी होनी चाहिए. इनमें से एक को OFFER_CATEGORY_BASE_OFFER के तौर पर और दूसरी को OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER के तौर पर टैग किया जाना चाहिए.
  • एक रेस्टोरेंट, हफ़्ते के दिनों में सिर्फ़ दोपहर के खाने पर 10% की छूट देता है. साथ ही, किसी खास क्रेडिट कार्ड से पेमेंट करने पर, किसी भी समय 5% की छूट मिलती है.

    • 10% की छूट वाले ऑफ़र के लिए, ValidityPeriod को इस तरह सेट किया जाना चाहिए कि यह सिर्फ़ हफ़्ते के दिनों में, रेस्टोरेंट में दोपहर के खाने के समय दिखे.
    • क्रेडिट कार्ड पर मिलने वाली 5% की छूट का ऑफ़र, दो कॉपी के तौर पर भेजा जाना चाहिए.
      • एक कॉपी को OFFER_CATEGORY_BASE_OFFER के तौर पर टैग किया जाना चाहिए. साथ ही, इसमें PaymentInstrument की जानकारी शामिल होनी चाहिए. ValidityPeriod को इस तरह सेट किया जाना चाहिए कि हफ़्ते के दिनों में दोपहर के खाने के समय को बाहर रखा जा सके. ऐसा तब किया जाना चाहिए, जब दोपहर के खाने पर 10% की छूट वाला ऑफ़र चालू हो
      • एक कॉपी को OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER के तौर पर टैग किया जाना चाहिए. इसमें PaymentInstrument की जानकारी शामिल होनी चाहिए.
    • इस रेस्टोरेंट के लिए, पेमेंट से जुड़े अन्य सभी ऑफ़र को OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER के तौर पर टैग किया जाना चाहिए.

डेवलपमेंट और लॉन्च करने की प्रोसेस

इंटिग्रेशन के दौरान, Partner Portal आपके डेवलपमेंट के आधार पर, आपको जानकारी और सुझाव/राय देने या शिकायत करने में मदद कर पाएगा. डेवलपमेंट की प्रोसेस इस तरह होगी:

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

मॉनिटर करने के लिए

उपयोगकर्ताओं को बेहतर अनुभव देने के लिए, Google यह जांच करेगा कि दिए गए ऑफ़र मान्य हैं, सही हैं, और लॉन्च से पहले और बाद में हमारी नीति की शर्तों को पूरा करते हैं. इसके लिए, Google मैन्युअल तरीके से की जाने वाली समीक्षा और ऑटोमेटेड समीक्षा, दोनों तरीकों का इस्तेमाल करेगा. इन समीक्षाओं के नतीजे, Action Center के ऑफ़र डैशबोर्ड में देखे जा सकेंगे. यह सिर्फ़ प्रोडक्शन के लिए उपलब्ध है. इस मॉनिटरिंग के नतीजों का इस्तेमाल, ऑफ़र की रैंकिंग पर असर डालने के लिए किया जा सकता है.

पक्का करें कि ऑफ़र के साथ पूरा पेज लोड होने में पांच सेकंड से कम समय लगे. ऐसा न होने पर, इसे गड़बड़ी माना जाएगा और Bad link के तौर पर फ़्लैग किया जाएगा.

ऑटोमेटेड चेक (क्रॉलर)

Google की क्वालिटी टीम, क्रॉलर लागू करती है. क्रॉलर ऐसी स्क्रिप्ट होती हैं जो वेब ब्राउज़र को अपने-आप काम करने के लिए सेट करती हैं. इससे कुछ क्लिक किए जा सकते हैं और ऑफ़र की जानकारी निकाली जा सकती है. इनका इस्तेमाल सिर्फ़ क्वालिटी की जांच करने के लिए किया जाता है.

क्वेरी की संख्या

उदाहरण के लिए, अगर हमने हर दिन 5,000 जांचें भेजने का फ़ैसला किया है, तो इसका मतलब है कि हमारा क्रॉलर हर दिन 5,000 बार (दिन भर में समान रूप से, यानी हर 17 सेकंड में एक बार) ये सभी कार्रवाइयां करता है. ये कार्रवाइयां, कोई सामान्य उपयोगकर्ता करता है:

  • Google Search से शुरू करें और पार्टनर लिंक पर क्लिक करें.
  • ऑफ़र की जानकारी ढूंढें.
  • अगर ऑफ़र के लिए बुकिंग करना ज़रूरी है, तो बुकिंग फ़्लो जारी रहेगा. इससे यह पुष्टि की जा सकेगी कि ऑफ़र, तय किए गए समय पर उपलब्ध है या नहीं. हालांकि, कोई बुकिंग नहीं की जाएगी.

वेब स्क्रैपर का पता लगाने की सुविधा

यह पक्का करें कि वेब स्क्रैपर को बैन न किया जाए. ऐसा होने पर, वह यह तय कर सकता है कि ऑफ़र उपलब्ध नहीं हैं. इसके लिए, यह पक्का करें कि आपका सिस्टम, हमारे वेब स्क्रैपर को हर समय आपके पेज पर क्वेरी करने की अनुमति देता हो. हमारे वेब स्क्रैपर की पहचान करने के लिए:

  • वेब स्क्रैपर के यूज़र-एजेंट में "Google-Offers" स्ट्रिंग शामिल होगी:
    • उदाहरण: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko; Google-Offers) Chrome/104.0.5112.101 Safari/537.36
  • यह भी देखा जा सकता है कि कॉल, Google से आ रहे हैं या नहीं. इसके लिए, रिवर्स डीएनएस का इस्तेमाल करें. इसके बारे में "Googlebot और Google के अन्य क्रॉलर की पुष्टि करना" लेख में बताया गया है. हमारे खास मामले में, रिवर्स डीएनएस रिज़ॉल्यूशन इस पैटर्न के मुताबिक होता है: google-proxy-***-***-***-***.google.com.

तकनीकी व्यवहार

कैश मेमोरी में सेव करना

आम तौर पर, हमारे क्रॉलर को इस तरह कॉन्फ़िगर किया जाता है कि वे रिस्पॉन्स में मौजूद सभी स्टैंडर्ड एचटीटीपी कैशिंग हेडर का पालन करें. इससे पार्टनर की वेबसाइट पर लोड कम होता है. इसका मतलब है कि सही तरीके से कॉन्फ़िगर की गई वेबसाइटों के लिए, हम ऐसे कॉन्टेंट को बार-बार फ़ेच करने से बचते हैं जिसमें कभी-कभी बदलाव होता है. उदाहरण के लिए, JavaScript लाइब्रेरी. कैशिंग को लागू करने के बारे में ज़्यादा जानने के लिए, एचटीटीपी कैशिंग से जुड़ा यह दस्तावेज़ पढ़ें.